Python中判断input()输入的数据的类型

在pyhton中,经常会用到input()语句,但是input()语句输入的内容只能时字符串类型,而我们经常要输入int类型的数据等,那么就需要用到int()方法给输入的内容强制转换为int类型:

a = int(input())

但是这样就会有一个问题,一旦我输入的不是数字,而是字母、标点等,这样就会报错,因为字母灯是不能转成int类型的,所以我们就要判断一下,输入的内容为什么:

str = input()
if str.isdigit() :
	a = int(str)

这样就可以判断输入的是不是数字,还是字母、符号等

方法:
str.isdigit()为True表示输入的所有字符都是数字
str.isalnum()为True表示输入的所有字符都是数字或者字母
str.isalpha()为True表示输入的所有字符都是字母
str.isdigit()为True表示输入的所有字符都是数字
str.islower()为True表示输入的所有字符都是小写
str.isupper()为True表示输入的所有字符都是大写
str.istitle()为True表示输入的所有单词都是首字母大写,像标题
str.isspace()为True表示输入的所有字符都是空白字符、\t、\n、\r

更新一下:
注意,用isdigit()来判断小数,比如3.14就会返回FALSE。
isdigit()只是判断输入的是不是纯数字,不是判断你输入的是不是一个数,这个方法只是判断你输入的是什么字符,并不是判断你输入的是什么类型,因为无论如何,输入的值都为字符串类型,小数中有小数点,当然会返回FALSE了。
如何判断输入是不是小数,首先判断输入有没有小数点,几个小数点,小数点的位置、再按照小数点进行切片,切为两片,判断每一片是否都为纯数字

下面是一个类型转换的方法,将输入的字符串转换为int或float类型的数据:

# 将字符串转为int或float类型
def change_type(str):
    # 先判断输入是不是字符串类型,是的话就继续,不是的话就将输入返回
    if type(str) == type("123"):
        # 判断输入是不是纯数字
        if str.isdigit() :
            # 将输入转为int类型并返回
            result = int(str)
            print(result,"是整数 类型是",type(result))
            return result
        else :
            # 判断字符串中是否只有一个小数点、小数点是不是不在字符串的开始或结尾
            if str.count(".")==1 and not str.startswith(".") and not str.endswith("."):
                # 将字符串按小数点切为两片,整数部分与小数部分
                # 整数部分
                left = str.split('.')[0]
                # 小数部分
                right = str.split('.')[1]
                # 判断切片的部分是不是纯数字
                if left.isdigit() & right.isdigit():
                    # 将输入转为float类型并返回
                    result = float(str)
                    print(result,"是小数 类型是",type(result))
                    return result
    else:
        # 返回字符串
        print("输入的变量不是字符串类型")
        result = str
        return result
  • 13
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值