Break not Stopping 简单的 While 循环 Python
Break not Stopping Simple While Loop Python
Python 菜鸟在这里。我正在尝试创建一个包含用户输入的数字的列表,然后在 while 循环中最后对列表中的数字进行一些简单的计算。输入 'done' 时,While 循环不会中断。它只是打印 'Invalid input.'
list = []
while True:
try:
n = int(input('Enter a number: '))
list.append(n)
except:
print('Invalid input')
if n == 'done':
break
print(sum.list())
print(len.list())
print(mean.list())
如果用户输入 done
,您将尝试转换为 int
,这将引发您随后捕获的异常。
相反,在尝试将其转换为整数之前执行检查。
这是因为 int() 函数试图将您的输入转换为整数,但它引发了错误,因为字符串 'done' 无法转换为整数。还有一点,sum()、mean()、len()是函数,不是lists. Also mean() is not a built in function in python, it must be import with numpy的属性。像这样尝试:
from numpy import mean
list = []
while True:
try:
n = input('Enter a number: ')
list.append(int(n))
except:
if n!='done':
print('Invalid input')
if n == 'done':
break
print(sum(list))
print(len(list))
print(mean(list))
您必须将接收用户输入与检查 "done" 与转换为数字和附加到列表分开。在将输入转换为整数之前,您必须检查 "done"。
尝试这样的事情:
list_of_numbers = []
while True:
user_input = input("Enter a number or 'done' to end: ")
if user_input == "done":
break
try:
number = int(user_input)
except ValueError:
print("invalid number")
continue
list_of_numbers.append(number)
print(list_of_numbers)
# further processing of the list here
在添加到列表之前,您必须检查是否可以将输入转换为整数。您可以使用 try/except 来捕获输入变量是否可转换为整数。如果不是,那么您可以检查 done
并退出。
list = []
while True:
n = input('Enter a number: ')
try:
n = int(n)
list.append(n)
except ValueError:
if n == 'done':
break
print('Invalid input')
total = sum(list)
length = len(list)
mean = total/length
print('sum:', total)
print('length:', length)
print('mean:', mean)
互动示例
Enter a number: 12
Enter a number: 3
Enter a number: 4
Enter a number:
Invalid input
Enter a number: 5
Enter a number:
Invalid input
Enter a number: done
sum: 24
length: 4
mean: 6.0
Python 菜鸟在这里。我正在尝试创建一个包含用户输入的数字的列表,然后在 while 循环中最后对列表中的数字进行一些简单的计算。输入 'done' 时,While 循环不会中断。它只是打印 'Invalid input.'
list = []
while True:
try:
n = int(input('Enter a number: '))
list.append(n)
except:
print('Invalid input')
if n == 'done':
break
print(sum.list())
print(len.list())
print(mean.list())
如果用户输入 done
,您将尝试转换为 int
,这将引发您随后捕获的异常。
相反,在尝试将其转换为整数之前执行检查。
这是因为 int() 函数试图将您的输入转换为整数,但它引发了错误,因为字符串 'done' 无法转换为整数。还有一点,sum()、mean()、len()是函数,不是lists. Also mean() is not a built in function in python, it must be import with numpy的属性。像这样尝试:
from numpy import mean
list = []
while True:
try:
n = input('Enter a number: ')
list.append(int(n))
except:
if n!='done':
print('Invalid input')
if n == 'done':
break
print(sum(list))
print(len(list))
print(mean(list))
您必须将接收用户输入与检查 "done" 与转换为数字和附加到列表分开。在将输入转换为整数之前,您必须检查 "done"。
尝试这样的事情:
list_of_numbers = []
while True:
user_input = input("Enter a number or 'done' to end: ")
if user_input == "done":
break
try:
number = int(user_input)
except ValueError:
print("invalid number")
continue
list_of_numbers.append(number)
print(list_of_numbers)
# further processing of the list here
在添加到列表之前,您必须检查是否可以将输入转换为整数。您可以使用 try/except 来捕获输入变量是否可转换为整数。如果不是,那么您可以检查 done
并退出。
list = []
while True:
n = input('Enter a number: ')
try:
n = int(n)
list.append(n)
except ValueError:
if n == 'done':
break
print('Invalid input')
total = sum(list)
length = len(list)
mean = total/length
print('sum:', total)
print('length:', length)
print('mean:', mean)
互动示例
Enter a number: 12
Enter a number: 3
Enter a number: 4
Enter a number:
Invalid input
Enter a number: 5
Enter a number:
Invalid input
Enter a number: done
sum: 24
length: 4
mean: 6.0