输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾。
数据范围: ,其中每个数都满足
ff = [] fs = [] while True: try: s = int(input()) if s<0: fs.append(s) else: ff.append(s) except: print(len(fs)) sums = sum(ff) if len(ff)==0: print(0.0) else: averge = round(sums/len(ff),1) print(averge) break
def num_get(): ssr = [] while True: try: ssr.append(int(input())) except: break return ssr def code_end(): s = num_get() s0 = [x for x in s if x < 0] s1 = [x for x in s if x > 0] print(len(s0)) print(round(sum(s1)/len(s1), 1) if s1 else 0.0) code_end()
# 本题特殊的地方在于,要元素读取完之后,在except里break之前进行打印操作 #这个题需要注意对文件结束的处理。以往的题目都是有确定数量的输入, #可以在try里按既定数量获取input(),这一题是不定长的输出,只能判断文件结束符。 #方法见except p_l = [] #正数列表 n_l = [] #负数列表 while True: try: i = int(input()) if i >= 0: p_l.append(i) else: n_l.append(i) except EOFError: ###重点重点重点,在python中对文件结束符的判断,可以用except EOFError来获取。没有碰到结束符之前,只记录输入,碰到结束符之后,处理输出。 print(len(n_l)) if len(p_l)>0: print(round(sum(p_l)/len(p_l),1)) else: print('0.0') break #考点 : 列表存储
list1=[] while True: try: num=int(input()) list1.append(num) except: break negative=0 positive=[] for i in list1: if i<0: negative+=1 else: positive.append(i) ans=float(0.0) if len(positive)==0: ans=0.0 else: ans=round(float(sum(positive)/len(positive)),1) print(negative) print(ans)