python - 录入英语成绩,-1结束录入,求学生人数、总分、平均分。看到题目的瞬间,你是否会理错题?

print("录入英语成绩,回车,录入-1,结束录入")
number = 0

while 1:
    i = int(input("录入:"))
    if i == -1: break
    number += 1
    exec("i%i=%i" % (number, i))

n = number
sum = 0
while number > 0:
    exec("sum=sum+i%i" % number)
    number -= 1
print("总分:%s\n平均分:%s" % (sum, sum / n))

以上是错误掩饰,我是看到题目时,尽可能的不去看结果。于是看到这个题目时,我想的是,数据有意义并存储。其实就是没好好审题。那时我就在想,该题之前,书中还没提到exec吧!书上会怎么写呢?
码完上面一段字,改错两个地方,一个是输入那里加上int,一个是后面先给sum定义赋值。

i=int(input("录入英语成绩,-1结束录入:"))
sum=0
count=0
while i!=-1:
    sum=sum+i
    count+=1
    i=int(input("录入英语成绩,-1结束录入:"))
print("学生数:%s\n总分:%s\n平均分:%s\n"%(count,sum,sum/count))

和我一样审错题把问题搞复杂的,扣1

    c=a/b
    print(c)

    print(a/b)

其实还是和教材不一样,书上是第一种方法,我用的是下面那种。跑一下对比下吧!

6.030555486679077
5.635790586471558
5.659188747406006
5.736059904098511
5.660043954849243
5.7185959815979

5.9855797290802
5.738065004348755
5.7706990242004395
5.821998834609985
5.702195405960083
5.685034990310669

并没有决定性的差异。

于是去看一下禅吧!

简单优于复杂,
复杂优于凌乱,

我觉得print里,数值是公式还没乱

你可能感兴趣的:(python)