[英]How to print a list of numbers and their average?
对于我的作业,我必须创建一个程序,让用户输入多个数字。 我还想创建一个包含所有数字及其平均值的列表。
但是,如何为数字列表创建代码?
我应该以0或-999之类的数字退出。
一行语法无效。
print (number_list[i], end = " ")
这是我的代码。
number_list = []
sum = 0.0
user_number = eval(input("Please enter a number (-999 quits): "))
# Loop until the user is ready to quit
while (user_number != -999):
number_list.append(user_number)
sum = sum + user_number
user_number = eval(input("Please enter a number (-999 quits): "))
# Make sure the user entered something
if (len(number_list) != 0):
# Compute average
average = sum / len(number_list)
# Do output
print ("Using the numbers:")
for i in range(len(number_list)):
# Note the end = " " at the end will keep the output on
# the same line
print (number_list[i], end = " ")
# Note the \n at the start of this line is needed because
# the previous print statement ended with a comma. This
# \n will move the cursor to the next line
print ("\nThe average is:", average)
else:
print ("No values were entered")
由于Python的缩进规则,任何复合语句都必须在其后至少缩进一个语句。
让我们关注代码的这一部分:
for i in range(len(number_list)):
print (number_list[i], end = " ")
print ("\nThe average is:", average)
else:
print ("No values were entered")
for
循环是一个复合语句,因为它需要缩进的内容。 您需要相应地缩进。 就像是:
for i in range(len(eggs)):
print(eggs[i])
遍历内容的pythonic方法只是使用值而不是获取索引然后找到它。 Python的for
循环更像是foreach
循环,而不是实际的for
循环。 重新制作看起来像:
for spam in eggs:
print(spam)
另外,您还要检查是否没有数字。 为此使用普通的if
语句,而不是循环中的一个。 在else
一个循环后面将运行时的主要部分( while
或for
)没有完成break
。
这个:
for spam in eggs:
print(spam)
else:
print("Nothing")
与此不同:
if eggs:
for spam in eggs:
print(spam)
else:
print("Nothing")
这是固定部分:D
# If statement to check if list is truthy (nonempty)
if number_list:
# Note the for loop's target 'number'
for number in number_list:
# Note indentation.
print(number, end=" ")
print("\nThe average is:", average)
else:
print("No values were entered")
编辑:本节上方的while
循环后,您也有缩进错误。 我会留给你修复:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.