gpt4 book ai didi

python-3.x - 类型标识和转换,以便在python中捕获错误

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

我正在编写一个程序以生成随机数,然后要求您猜测已经生成的数字。
但是,作为扩展任务,我被要求即使输入中输入字母也要使程序正常工作,因此我创建了一个while循环来检查变量猜测中日期的类型。但是我不知道如何获取它来识别python中字母和数字之间的差异。

我需要找到一种检查字符串的方法,以查看它是否仅包含数字,如果需要,则需要将该变量转换为int,以便程序可以继续运行,但是如果它不仅包含数字,我需要它要求用户再次输入数字

这是我的伪代码:

while type(guess) != type(int)
if type(guess) == type (**number**):
guess = int(guess)
else:
guess = input('You did not input a number try again: ')

我想用它代替下面的粗体代码,但是我需要知道要放什么而不是数字,以使猜测成为一个整数,这样我就可以摆脱while循环。

这是我的原始代码:(我要替换的代码是 * * 突出显示的第一个while循环
import random
x=random.randint(1,100)
print (x)
guess = (input('Can you guess what it is? '))
num_guess=1
***while type(guess) != type(int):
if type(guess) == type(int):
guess = int(guess)
else:
guess = input('You did not input a number try again: '***)
while guess != x:
if guess < x:
print ('No, the number I am thinking of is higher than ' + str(guess))
guess = int(input('Guess again: '))
elif guess > x:
print ('No, the number I am thinking of is lower than ' + str(guess))
guess = int(input('Guess again: '))
else:
guess = int(input('Guess again: '))
num_guess = num_guess +1

print ('Well done! The answer was ' + str(x) + ' and you found it in ' + str(num_guess) + ' guesses.')

提前致谢

最佳答案

如果您检查文档。 https://docs.python.org/3/library/stdtypes.html#str.isnumeric

这里列出了一些方法,例如str.isnumeric,可以帮助您确定字符串中的内容。

至于您的代码,如果您使用的是python 2,则应使用raw_input而不是input。这将为您提供所有输入作为字符串供您使用。如果要确认答案,则必须将其转换为数字。

另外值得一提的是,在python中进行类型检查时,应使用isinstance https://docs.python.org/2/library/functions.html#isinstance
这是更pythonic的,并且在涉及子类化时,您会遇到一些奇怪的错误。

关于python-3.x - 类型标识和转换,以便在python中捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40486060/

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