程永康 发表于 2020-8-31 06:09:32

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

例如猜数小游戏,一旦输入了float 或者是 str,就会报错,整个程序崩溃
求助呀……

baige 发表于 2020-8-31 06:33:54

本帖最后由 baige 于 2020-8-31 06:52 编辑

你可以不把它强制转换为int
input函数输入得到的是str类型就可以用isdigit()来判断它是不是整数
s为字符串s.isdigit()所有字符都是数字,为真返回 True,否则返回 False。
这些东西你学下去就会学到的

liuzhengyuan 发表于 2020-8-31 06:39:58

异常处理

try:
      输入语句
except:
      报错之后

求资专用 发表于 2020-8-31 08:12:00

try:

except:

finally:

用try可以设定出现某种异常时的行为,finally是无论前面出不出现异常最后都会执行的语句。具体可以看小甲鱼异常处理的那一讲。

F–Social 发表于 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('悄悄告诉你,幸运数字是一个整数哦!')

阴阳神万物主 发表于 2020-8-31 08:31:14

如果说需要在用户输入了不正确的数据类型之后,依然以原来的方式进行处理的话,可以自行定义比较函数。
当然,若是不会写或者懒得写定义的话,2至4楼的方法即可。

鱼cpython学习者 发表于 2020-8-31 20:45:45

有两种方法
一:异常处理
try:
    num = int(input('请输入一个数字:'))
except ValueError:
    print('输入有误!')
else:
    接下来的代码
二:isdigit()函数处理
num = input('请输入一个数字:')
if isdigit(num):
    接下来的代码
else:
    print('输入有误!')

革命年 发表于 2020-9-4 22:05:26

try:
    q=int(input ('请输入:'))
except:
    print('输错了')

程永康 发表于 2020-10-24 21:16:31

革命年 发表于 2020-9-4 22:05


谢谢!

程永康 发表于 2020-10-24 21:17:01

鱼cpython学习者 发表于 2020-8-31 20:45
有两种方法
一:异常处理



谢谢!
页: [1]
查看完整版本: 请问怎样才能让用户在需要输入int的地方输入了str之后不报错?