请问这个代码错在哪
实在找不出来代码如下:
a=eval(input())
count=0
sum=0
while a!="":
sum=sum+a
count=count+1
eva=sum/count
a=eval(input())
print("该歌手的最终成绩为:{}".format(eva))
为什么要用eval?
深谙流年 发表于 2021-12-7 20:49
为什么要用eval?
比较帅吧{:5_99:}{:5_99:}{:5_99:}{:5_99:}{:5_99:} 本帖最后由 jackz007 于 2021-12-7 21:26 编辑
c , d = 0 , 0
while True:
x = input() . strip()
if x:
c , d = c + 1 , d + eval(x)
else:
break
print("该歌手的最终成绩为:{:.1f}".format(d / c))
运行实况:
D:\00.Excise\Python>python x.py
10
8.5
9.4
6.7
8
该歌手的最终成绩为:8.5
D:\00.Excise\Python> score = []
while True:
try:
s = input()
score.append(float(s))
except:
break
print(f"该歌手最终成绩为{sum(score)/len(score):.1f}") 傻眼貓咪 发表于 2021-12-7 21:32
所以我的代码是错在哪呢
sum = 0
lind = 0
while True:
number = input()
if number=="":
break
else:
lind+=1
sum+=float(number)
print("该歌手最终成绩为{:.1f}".format(sum/lind)) 错在:eval在处理空字符串时会返回EOF错误。在循环里面a=eval(input()),输入空时,报错出不来了。
所以用一个try..except,在输入空时让程序继续处理。(下面是用的你的原代码)
a = eval(input())
count1 = 0
sum1 = 0
while a != "":
try:
a = eval(input())
sum1 = sum1+a
count1 = count1+1
eva = sum1/count1
except:
break
print("该歌手的最终成绩为:{:.1f}".format(eva))
页:
[1]