如何计算循环中使用的尝试次数

时间:2013-01-08 00:25:39

标签: python macos loops while-loop

对于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

如何将用户输入值的次数加起来

2 个答案:

答案 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:~$