小黑狼5 发表于 2020-7-17 15:11:50

python如何检测用户输入的是数字还是字符?

a = input()
这个语句,不论用户输入的东西,是数字还是文字,都会转化成一个字符串赋值给a。

那么,有什么函数可以检测用户输入的,到底是数字还是字符串吗?

不考虑a= int(input())这种方式,因为这样输入文字程序会报错,我不要程序报错。

lhgzbxhz 发表于 2020-7-17 15:16:06

a = input()
if a.isdigit():
    print("是数字!")
else:
    print("不是数字!")

sccswow 发表于 2020-7-17 15:18:08

a.isalnum()
a.isalpha()
a.isdigit()
第五课的课后习题了解一波

Twilight6 发表于 2020-7-17 15:42:06



用字符串方法, Python 旧版第五课时甲鱼哥有介绍:
s 为字符串

s.isalnum()所有字符都是数字或者字母,为真返回 True,否则返回 False。

s.isalpha()   所有字符都是字母,为真返回 True,否则返回 False。

s.isdigit()   所有字符都是数字,为真返回 True,否则返回 False。

s.islower()    所有字符都是小写,为真返回 True,否则返回 False。

s.isupper()   所有字符都是大写,为真返回 True,否则返回 False。

s.istitle()      所有单词都是首字母大写,为真返回 True,否则返回 False。

s.isspace()   所有字符都是空白字符,为真返回 True,否则返回 False。

这些方法是判断字符串内的字符,是否为某种类型

如果你想判断,是否输入的是整数类型的字符串就可以这么写代码:user_input = input('请输入一个整数:')
while not user_input.isdigit():# 如果输入的不是整数就要重新输入
    user_input = input('抱歉,你输入的不是一个整数,请重新输入:')
print('你输入的是一个整数!该整数为:',user_input)



jackz007 发表于 2020-7-17 16:02:48

本帖最后由 jackz007 于 2020-7-17 16:04 编辑

    当输入内容是负数时,字符串的 isdigit() 方法不能正确识别
    楼主试试下面的代码
#-*-coding:gbk-*-
f = False
while True:
    s = input('请输入一个整数:') . strip()
    if s :
      try:
            n = int(s)
            f = True
            break
      except:
            print('你键入的不是一个有效的整数!\n')
    else:
      break
if f:
    print('你键入的整数是:' , n)
   

小黑狼5 发表于 2020-7-17 16:13:38

lhgzbxhz 发表于 2020-7-17 15:16


感谢。4楼更全面,所以设置了4楼最佳。还是很感谢{:10_254:}
页: [1]
查看完整版本: python如何检测用户输入的是数字还是字符?