Python用整数填充列表,可以';t使用';退出';
我试图创建一个空列表,用户将用随机整数填充该列表,直到用户写入“exit”,然后程序应该计算整数的平均值(我应该在没有Python模块或函数(如Python用整数填充列表,可以';t使用';退出';,python,list,mean,Python,List,Mean,我试图创建一个空列表,用户将用随机整数填充该列表,直到用户写入“exit”,然后程序应该计算整数的平均值(我应该在没有Python模块或函数(如len())的帮助下执行此操作)。我的代码到目前为止: # Start with an empty list. numbers = [] # Set new_number to something other than 'exit'. new_number = '' # Start a loop that will run until the use
len()
)的帮助下执行此操作)。我的代码到目前为止:
# Start with an empty list.
numbers = []
# Set new_number to something other than 'exit'.
new_number = ''
# Start a loop that will run until the user enters 'exit'.
while new_number != 'exit':
new_number = int(input("Write a new number to the list, or enter 'exit': "))
# Add the new number to our list.
if new_number != 'exit':
numbers.append(new_number)
# Start calculating the mean of the numbers.
def average(numbers):
total = 0
count = 0
for num in numbers:
total += num
count += 1
return total / count
Numbmean = average(numbers)
print( 'The mean: ' + round(Numbmean ,2))
但是,我看到以下两种情况之一:
ValueError:invalid literal for int(),以10为基数:“exit”
),要么:TypeError:不支持+=:'int'和'str'的操作数类型
)如何解决此问题?第一个问题是由以下行引起的:
new_number = int(input("Write a new number to the list, or enter 'exit': "))
如果用户键入exit
,那么input将返回它,它自然无法转换为整数,从而导致ValueError
。您可以通过首先检查输入
返回值是否与退出
匹配来修复此问题,如果匹配,则中断循环。检查后,您可以将返回值转换为int并将其附加到列表中
# Start a loop that will run until the user enters 'exit'.
while True:
new_number = input("Write a new number to the list, or enter 'exit': ")
# Add the new number to our list.
if new_number == 'exit':
break
try:
numbers.append(int(new_number))
except ValueError:
print('Please enter number or exit')
这还可以修复您遇到的第二个错误,因为它可以确保
numbers
中的所有项目都是整数。在将数字添加到数字列表之前,将数字转换为整数。numbers.append(int(new_number))
谢谢,解决了这个问题!我不知道你可以这样指定。现在我明白你的其他评论的意思了。。。唉。谢谢你可以做new\u number=input(“某物”)
和number.append(int(new\u number))
。但是对于转换,如果您使用try…catch…
yes,则此代码不会“确保数字中的所有项目都是整数”。如果您输入整数或“exit”(例如带空格的“exit”)之外的任何内容,则此代码不会中断。您必须使用try确保添加了错误处理以使其完整,并删除了代码不处理整数和退出之外的其他输入的备注