鱼C论坛

 找回密码
 立即注册
查看: 2357|回复: 9

[已解决]请问怎样才能让用户在需要输入int的地方输入了str之后不报错?

[复制链接]
发表于 2020-8-31 06:09:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例如猜数小游戏,一旦输入了float 或者是 str,就会报错,整个程序崩溃
求助呀……
最佳答案
2020-8-31 06:33:54
本帖最后由 baige 于 2020-8-31 06:52 编辑

你可以不把它强制转换为int
input函数输入得到的是str类型就可以用isdigit()来判断它是不是整数
s为字符串s.isdigit()所有字符都是数字,为真返回 True,否则返回 False。
这些东西你学下去就会学到的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-31 06:33:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 baige 于 2020-8-31 06:52 编辑

你可以不把它强制转换为int
input函数输入得到的是str类型就可以用isdigit()来判断它是不是整数
s为字符串s.isdigit()所有字符都是数字,为真返回 True,否则返回 False。
这些东西你学下去就会学到的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 06:39:58 | 显示全部楼层
异常处理
try:
        输入语句
except:
        报错之后
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 08:12:00 | 显示全部楼层
try:

except:

finally:

用try可以设定出现某种异常时的行为,finally是无论前面出不出现异常最后都会执行的语句。具体可以看小甲鱼异常处理的那一讲。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 08:25:13 | 显示全部楼层
你可以先判断用户输入的是否为你想要的结果,比如想要用户输入一个整数,就可以使用 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('悄悄告诉你,幸运数字是一个整数哦!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 08:31:14 | 显示全部楼层
如果说需要在用户输入了不正确的数据类型之后,依然以原来的方式进行处理的话,可以自行定义比较函数。
当然,若是不会写或者懒得写定义的话,2至4楼的方法即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 20:45:45 | 显示全部楼层
有两种方法
一:异常处理
try:
    num = int(input('请输入一个数字:'))
except ValueError:
    print('输入有误!')
else:
    接下来的代码
二:isdigit()函数处理
num = input('请输入一个数字:')
if isdigit(num):
    接下来的代码
else:
    print('输入有误!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-4 22:05:26 | 显示全部楼层
try:
    q=int(input ('请输入:')) 
except:
    print('输错了') 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-24 21:16:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-24 21:17:01 | 显示全部楼层
鱼cpython学习者 发表于 2020-8-31 20:45
有两种方法
一:异常处理

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 05:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表