对于python作业,我需要让用户输入数字,直到他们输入负数。到目前为止,我有:
print("Enter a negative number to end.")
number = input("Enter a number: ")
number = int(number)
import math
while number >= 0:
numberagain = input("Enter a number: ")
numberagain = int(numberagain)
while numberagain < 0:
break
如何将用户输入值的次数加起来
答案 0 :(得分:3)
i = 0
while True:
i += 1
n = input('Enter a number: ')
if n[1:].isdigit() and n[0] == '-':
break
print(i)
str.isdigit()
函数对于检查输入是否为数字非常有用。这可以防止尝试转换时出现错误,例如'foo'
为int
。
答案 1 :(得分:2)
import itertools
print('Enter a negative number to end.')
for i in itertools.count():
text = input('Enter a number: ')
try:
n = int(text)
except ValueError:
continue
if n < 0:
print('Negative number {} entered after {} previous attempts'.format(n, i))
break
上面的解决方案对于奇怪的输入应该是健壮的,例如尾随空格和非数字内容。
这是一个快速演示:
wim@wim-desktop:~$ python /tmp/spam.py
Enter a negative number to end.
Enter a number: 1
Enter a number: 2
Enter a number: foo123
Enter a number: i am a potato
Enter a number: -7
Negative number -7 entered after 4 previous attempts
wim@wim-desktop:~$