为一个作业创建了一个程序,该程序要求我们创建一个程序,用户输入20个数字,并给出最高,最低等。我有程序的主要部分工作。我觉得这是一个白痴问这个,但我已经尝试了一切设置最大数量的条目和我尝试的一切仍然让用户提交超过20.任何帮助将是伟大的!我尝试了max_numbers = 20,然后在范围(max_numbers)等中做_,但仍然没有骰子。
代码:
numbers = []
while True:
user_input = input("Enter a number: ")
if user_input == "":
break
try:
number = float(user_input)
except:
print('You have inputted a bad number')
else:
numbers.append(number)
for i in numbers:
print(i, end=" ")
total = sum(numbers)
print ("\n")
print("The total amount is {0}".format(str(total)))
print("The lowest number is {0}".format(min(numbers)))
print("The highest number is {0}".format(max(numbers)))
mean = total / len(numbers)
print("The mean number is {0}".format(str(mean)))
答案 0 :(得分:1)
你的问题可以更好地呈现,但从你所说的看起来你需要修改while条件。
while len(numbers) < 20:
user_input = input("Enter a number:" )
....
现在,一旦你将20个项目附加到数字列表中,脚本就会突破while循环,你可以打印最大值,最小值,平均值等。
答案 1 :(得分:0)
每次用户输入输入时,将1
添加到变量中,如下所示:
numbers = []
entered = 0
while entered < 20:
user_input = input("Enter a number: ")
if user_input == "":
break
else:
numbers.append(number)
try:
number = float(user_input)
except:
print('You have inputted a bad number')
continue
for i in numbers:
print(i, end=" ")
total = sum(numbers)
print ("\n")
print("The total amount is {0}".format(str(total)))
print("The lowest number is {0}".format(min(numbers)))
print("The highest number is {0}".format(max(numbers)))
mean = total / len(numbers)
print("The mean number is {0}".format(str(mean)))
entered+=1
每次while
循环完成后,1
都会添加到变量entered
中。在entered
= 20
后,while
循环中断,您可以继续使用您的程序。另一种方法是检查列表numbers
的长度,因为每次循环完成时,都会向列表中添加一个值。您可以使用内置函数len()
调用长度,该函数返回列表或字符串的长度:
>>> numbers = [1, 3, 5, 1, 23, 1, 532, 64, 84, 8]
>>> len(numbers)
10
注意:我的观察是根据我确定的缩进进行的,因此可能存在一些误解。下次,请尝试适当缩进。