请问怎样才能让用户在需要输入int的地方输入了str之后不报错?
例如猜数小游戏,一旦输入了float 或者是 str,就会报错,整个程序崩溃求助呀…… 本帖最后由 baige 于 2020-8-31 06:52 编辑
你可以不把它强制转换为int
input函数输入得到的是str类型就可以用isdigit()来判断它是不是整数
s为字符串s.isdigit()所有字符都是数字,为真返回 True,否则返回 False。
这些东西你学下去就会学到的 异常处理
try:
输入语句
except:
报错之后 try:
except:
finally:
用try可以设定出现某种异常时的行为,finally是无论前面出不出现异常最后都会执行的语句。具体可以看小甲鱼异常处理的那一讲。 你可以先判断用户输入的是否为你想要的结果,比如想要用户输入一个整数,就可以使用 isdigit()函数,用于判断用户输入是否为整数,如果输入不合法,则打印错误信息,重新让用户输入。例如:
import random
answer = random.randint(1,10) #答案范围
time = 3
while time > 0:
en_number = input('猜猜今天的幸运数字是多少:')
if en_number.isdigit(): #判断输入是否为整数
guess = int (en_number)
if guess == answer:
print('真棒,这都猜对了,看来今天幸运女神会来到你的身边哦,期待吧ovo')
break
else:
if guess < answer:
print('猜小了呢,再试试吧')
else:
print('猜大了哦,再试试')
time -= 1
else: #不是整数时打印错误信息
print('悄悄告诉你,幸运数字是一个整数哦!')
如果说需要在用户输入了不正确的数据类型之后,依然以原来的方式进行处理的话,可以自行定义比较函数。
当然,若是不会写或者懒得写定义的话,2至4楼的方法即可。 有两种方法
一:异常处理
try:
num = int(input('请输入一个数字:'))
except ValueError:
print('输入有误!')
else:
接下来的代码
二:isdigit()函数处理
num = input('请输入一个数字:')
if isdigit(num):
接下来的代码
else:
print('输入有误!') try:
q=int(input ('请输入:'))
except:
print('输错了') 革命年 发表于 2020-9-4 22:05
谢谢! 鱼cpython学习者 发表于 2020-8-31 20:45
有两种方法
一:异常处理
谢谢!
页:
[1]