7000r 发表于 2022-9-30 19:47:53

刚学Python,不会这题☹麻烦好心人帮忙看看

题目:从键盘输入若干名学生一门课成绩,计算并输出最高分最低分和平均分(保留小数两位)。输入负数结束运行。
我写的代码(是错的,怎么写才能符合题意啊{:10_262:}

scores=[]
min_score=100
max_score=0
sum_score=0
for i in scores:
    if i<min_score:
      min_score=i
    if i>max_score:
      max_score=i
    sum_score+=i   
print("最高分:",max_score)
print("最低分:",min_score)
print("平均分:{:.2f}".format(sum_score/len(scores)))


jackz007 发表于 2022-9-30 20:04:29

本帖最后由 jackz007 于 2022-9-30 20:05 编辑

scores , n = [] , 0
while True:
    x = int(input('输入成绩:'))
    if x >= 0 :
      scores . append(x)
      n += 1
    else:
      break
scores . sort()
print('最高分:%d' % scores[-1])
print('最低分:%d' % scores)
print('平均分:%.2f' % (sum(scores) / n))
      运行实况:
D:\\Python>python x.py
输入成绩:34
输入成绩:56
输入成绩:78
输入成绩:88
输入成绩:98
输入成绩:23
输入成绩:5
输入成绩:7
输入成绩:66
输入成绩:-1
最高分:98
最低分:5
平均分:50.56

D:\\Python>

7000r 发表于 2022-9-30 20:10:44

jackz007 发表于 2022-9-30 20:04
运行实况:

刚刚在IDLE里试了:

输入成绩:70,80,90
(然后报错了)
Traceback (most recent call last):
File "C:\Users\acer\Desktop\题目.py", line 3, in <module>
    x = int(input('输入成绩:'))
ValueError: invalid literal for int() with base 10: '70,80,90'
请问该怎么解决这样的情况啊?

7000r 发表于 2022-9-30 20:13:22

jackz007 发表于 2022-9-30 20:04
运行实况:

明白了,要一次次输入数据,谢谢您的答案

jackz007 发表于 2022-9-30 20:13:56

7000r 发表于 2022-9-30 20:10
刚刚在IDLE里试了:

输入成绩:70,80,90


你得这么输入:
70
80
90
-1

迦勒底的doctor 发表于 2022-10-1 16:10:44

jackz007 发表于 2022-9-30 20:13
你得这么输入:
70
80


scores , n = [] , 0
大佬,请问下这第一句是什么意思

jackz007 发表于 2022-10-1 16:14:29

本帖最后由 jackz007 于 2022-10-1 16:15 编辑

迦勒底的doctor 发表于 2022-10-1 16:10
scores , n = [] , 0
大佬,请问下这第一句是什么意思

       实际就是
scores = []
n = 0
      两句合并为一句,Python 允许这么写。

迦勒底的doctor 发表于 2022-10-2 10:20:44

jackz007 发表于 2022-10-1 16:14
实际就是

      两句合并为一句,Python 允许这么写。

万分感谢
页: [1]
查看完整版本: 刚学Python,不会这题&#9785;麻烦好心人帮忙看看