凯什么欧文 发表于 2021-12-7 20:20:11

请问这个代码错在哪

实在找不出来
代码如下:
a=eval(input())
count=0
sum=0
while a!="":
    sum=sum+a
    count=count+1
    eva=sum/count
    a=eval(input())
print("该歌手的最终成绩为:{}".format(eva))

深谙流年 发表于 2021-12-7 20:49:39

为什么要用eval?

傻眼貓咪 发表于 2021-12-7 21:22:47

深谙流年 发表于 2021-12-7 20:49
为什么要用eval?

比较帅吧{:5_99:}{:5_99:}{:5_99:}{:5_99:}{:5_99:}

jackz007 发表于 2021-12-7 21:25:17

本帖最后由 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>

傻眼貓咪 发表于 2021-12-7 21:32:01

score = []
while True:
    try:
      s = input()
      score.append(float(s))
    except:
      break
print(f"该歌手最终成绩为{sum(score)/len(score):.1f}")

凯什么欧文 发表于 2021-12-7 22:21:12

傻眼貓咪 发表于 2021-12-7 21:32


所以我的代码是错在哪呢

xtxzs 发表于 2021-12-8 09:22:45

sum = 0
lind = 0
while True:
    number = input()
    if number=="":
      break
    else:
      lind+=1
      sum+=float(number)
print("该歌手最终成绩为{:.1f}".format(sum/lind))

Tutu007 发表于 2021-12-8 09:36:46

错在: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]
查看完整版本: 请问这个代码错在哪