print("Welcome to Hangman! Guess the mystery word with less than 6 mistakes!")
words= ['utopian','fairy','tree','monday','blue']
while True:
try:
i = int(input("Please enter an integer number (0<=number<10) to choose the word in the list: "))
break
except ValueError:
if(i!=int):
print("Must be an integer input.")
else:
print("Empty input.")
开始处理我的Hangman程序的异常,我又遇到了另一个问题。你可以运行这个程序,看看我哪里出错了。在我有这样的代码之前,我希望值错误是特定的: 除了ValueError: 打印(“值错误!”) 但现在我希望它具体到错误是什么。因此,如果用户输入空输入,我希望程序告诉他们他们打印了一个空字符串。如果他们输入一个按字母顺序排列的字母,我想特别注意这个错误。当我们在它的时候,如果他们输入一个超出列表范围的整数,我希望那里有一个被捕获的索引错误。
答案 0 :(得分:0)
i
未在except块中定义。在尝试解析整数之前,应检查用户是否输入任何内容:
user_input = input("message")
if not user_input:
print("Empty input.")
else:
try:
i = int(user_input)
break
except ValueError:
print("Must be an integer input.")
答案 1 :(得分:0)
要检查i
是否为空,我首先会这样做:
answer = input() # Save the raw answer
if answer in (None, ''):
print('Value was empty!')
continue
然后你可以尝试把它变成一个整数:
try:
i = int(answer)
except ValueError:
print('Your answer was not an integer')
continue
最后,要检查单词列表中是否有i
,您可以轻松地执行以下操作:
try:
word = words[i]
except IndexError:
print("Value was out of range!)
else:
return word
将所有内容粘贴在一个函数中,您可以像我一样使用return word
轻松退出while True
循环,而不是担心破坏。