gpt4 book ai didi

python - Python3 Try/Except block

转载 作者:行者123 更新时间:2023-12-03 08:54:27 25 4
gpt4 key购买 nike

有人可以帮我了解以下问题吗?

我在简单的数字猜谜游戏中执行try/except块时遇到问题。如果删除初始输入的整数部分,则包含错误处理的函数可以正常工作。但是,如果这样做,游戏的其余部分将无法正常工作,因为据我了解,Python3接受输入并将其存储为字符串。那么如何获取我的异常(exception)来执行?任何帮助深表感谢。

谢谢,

# number game
import random




print ("Welcome to the guessing number game!\n\n")

winning_number= random.randrange(1, 11)
guess = int(input("Can you guess the lucky number.\nHint it's between 1 and 10!\n"))


def is_number(guess):
try:
int(guess)
except ValueError:
print ('You need to type a number\n')
guess = int((input("Please input a number\n")))
game(guess)



def compare(guess):
if guess > winning_number:
print ("Wrong, you're guess is too high.\n")
guess = int(input("Guess againn\n"))
game(guess)
else:
print ("Wrong, you're guess is too low.\n")
guess = int(input("Guess again\n"))
game(guess)



def game(guess):
is_number(guess)
if guess == winning_number:
print ("You win!, You guessed the number!")
else:
compare(guess)

game(guess)

这是我输入除整数以外的任何内容时得到的...

欢迎来到猜数字游戏!

你能猜出幸运数字吗?
提示它在1到10之间!
F
追溯(最近一次通话):
在第10行中输入文件“C:/Users/mickyj209/PycharmProjects/Practice/NumberGuess.py”
guess = int(input(“您能猜出幸运数字吗?\ n提示它在1到10之间!\ n”)
ValueError:int()以10为底的无效文字:“f”

流程以退出代码1完成

最佳答案

您忘记了保存该时间的值(guess = int(guess)),没有在其中存储return的任何内容,只是让程序运行该函数,但没有根据结果做出决定。您还可以在异常处理中添加一个int(input(...,它本身可能会生成一个不会被捕获的异常。最初的猜测也不在try块中。

您可以重构该程序:

def game():

print ("Welcome to the guessing number game!\n\n")

winning_number = random.randrange(1, 11)
print("Can you guess the lucky number?\nHint: it's between 1 and 10!\n")
while 1:
try:
guess = int(input("Please input a number\n"))
except ValueError:
continue
if guess > winning_number:
print('Wrong - your guess is too high.')
elif guess < winning_number:
print('Wrong - your guess is too low.')
else:
print('You win! You guessed the number!')
break

关于python - Python3 Try/Except block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com