0

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

ユーザーが値を入力した回数を合計する方法

4

2 に答える 2

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ます。

于 2013-01-08T00:30:30.210 に答える
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:~$ 
于 2013-01-08T02:04:53.057 に答える