-1

嗨,我刚开始学习 python,这太令人兴奋了!

我正在读这本书: https ://automatetheboringstuff.com

而且,如果我按照说明进行操作,一切都会好起来的,但是我尝试自己修改一些东西,有时似乎找不到逻辑。

在第 2 章有这个练习:

name = ''
while not name:
    print('Enter your name:')
    name = input()
print('How many guests will you have?')
numOfGuests = int(input())
if numOfGuests:
    print('Be sure to have enough room for all your guests.')
print('Done')

它工作正常,但是如果 numOfGuests 不是数字,我会收到此错误:

ValueError: invalid literal for int() with base 10: ''

我的逻辑想法是,我也可以使用 while 命令将该块包含在循环中,并告诉程序如果 numOfGuests != int 它应该继续并返回打印('你有多少客人?')部分。

有人可以帮助我了解如何使其工作吗?

谢谢!

4

1 回答 1

0

这是您可以实施以确保您的用户输入有效数字的方法:

numOfGuests = -1
while(True):
   try:
       numOfGuests = int(input("Please enter number of guests: "))
       break
    except ValueError:
       print("Please enter a valid number")

正如 tdelaney 所提到的,您可以在https://docs.python.org/3/tutorial/errors.html了解有关处理多种类型错误的更多信息 。

于 2020-04-10T03:26:54.257 回答