试图自己解决这个问题,但是代码中存在错误。希望有人能帮助我。
def integer_list_input():
print('Enter test scores between 0 and 100.')
scores=[]
while True:
scores=input('Enter test scores: ')
if scores>100 or scores<0:
print('Invalid input. Score couldn\'t be negative or heigher')
elif scores=='':
break
scores.remove(min(scores))
return min(scores)
q=sum(scores)/len(scores)
return q
这里问题要做什么:
编写一个不断要求用户输入测试分数的程序。有效分数必须介于0到100之间,并且对用户可以输入的分数没有限制。从下面列出的要求中可以清楚地看出,无法处理得分,而是必须将用户输入的得分保存到列表中。当用户输入测试分数后,他们只需在程序提示符下输入下一个分数,然后程序执行以下计算:
1)找到列表中的最小分数(您可能需要查看函数min()并阅读其文档)。
2)从列表中删除最小的分数
3)计算并打印剩余分数的平均值(即将它们相加并除以剩余分数的数量)
答案 0 :(得分:2)
您需要先将输入转换为int。
输入实际上是一个字符串,因此您需要先将其转换为int。
然后将数字添加到列表中。
您可以更改此代码:
def integer_list_input():
print('Enter test scores between 0 and 100.')
scores=[]
while True:
score=input('Enter test scores: ')
if score=='':
break
elif int(score)>100 or int(score)<0:
print('Invalid input. Score couldn\'t be negative or heigher')
else :
scores.append(int(score))
scores.remove(min(scores))
q=sum(scores)/len(scores)
print('Minimum is ':, min(scores))
print('Average is ':, q)
return [q, min(scores)]
答案 1 :(得分:0)
你的代码有很多问题,我只是介绍有关输入的部分:
input()
函数返回一个字符串。您无法将字符串与数字进行比较。作为参考,这是一个函数,它读取一个数字,检查限制并返回None
如果用户只按下回车:
def readNumber(prompt, min, max):
while True:
raw = input(prompt)
if raw == '':
return None
try:
number = int(raw)
if number < min or max < number:
print('Please enter a number between ' + str(min) + ' and ' + str(max) + '.')
else:
return number
except ValueError:
print('Please enter an integer.')
x = readNumber('Enter score: ', 0, 100)