qq1206015724 发表于 2019-1-14 09:47:04

为什么输入整数也不行?还是会报错


temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
# 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
while type(temp) != type(1):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")
输入整数也是报错,不理解,小白求解

sunrise085 发表于 2019-1-14 10:18:30

因为input()函数返回值是字符串string,不管你输入什么内容,都会将之作为字符串赋给temp,所以你这样写是不对的。

若是你想判断是不是整形数字,可以用isdecimal()函数。这个函数是判断字符串中是不是只包含十进制数字,若包含其他字符,返回值为False。

这段程序应该这样写:temp=input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
while not temp.isdecimal():
        print('抱歉,输入不合法,',end='')
        temp=input('请输入一个整数')

PS:下次提问请贴代码,而不是上传图片,这样回答者还需要敲一遍程序,很麻烦的。

BngThea 发表于 2019-1-14 11:08:08

input返回的始终是str
要判断输入的这个str是不是数字,可以调用str的函数
temp.isdigit()
页: [1]
查看完整版本: 为什么输入整数也不行?还是会报错