如何在python中输入数字,直到输入某个字符串

时间:2018-03-26 05:51:08

标签: python

当我遇到这个问题时,我正在完成一本python书中的问题。

  

编写一个重复读取数字的程序,直到用户输入"完成"。输入完成后,打印出数字的总数,计数和平均值。

我的问题是我不知道如何检查用户是否明确输入了字符串' done'而计算机明确检查数字。以下是我如何解决问题。

#Avg, Sum, and count program

total = 0
count = 0
avg = 0
num = None

# Ask user to input number, if number is 0 print calculations
while (num != 0):
    try:
        num = float(input('(Enter \'0\' when complete.) Enter num: '))
    except:
        print('Error, invalid input.')
        continue

    count = count + 1
    total = total + num

avg = total / count
print('Average: ' + str(avg) + '\nCount: ' + str(count) + '\nTotal: ' + str(total))

让用户输入'完成'而不是按照要求进行操作。为了完成程序,我使用整数(0)来查看用户是否输入了数字。

2 个答案:

答案 0 :(得分:2)

保持 Try-except 方法,您只需检查用户输入的字符串是否为done而不转换为float,并中断while循环。此外,指定要捕获的错误总是更好。在这种情况下ValueError

while True:
    num = input('(Enter \'done\' when complete.) Enter num: ')
    if num == 'done':
        break
    try:
        num = float(num)
    except ValueError:
        print('Error, invalid input.')
        continue

答案 1 :(得分:1)

我认为解决问题的更好方法如下:

env VIRTUALBOX_MEMORY_SIZE=4096 docker-machine ...

通过这种方式,您可以控制输入数字的情况和输入字符串的情况(不通过try / except方案)。