Python isalpha(),isdigit(),isalnum()函数详解

一,isalpha()

isalpha()可以判断 字符串 中是否只含有 字母。 (在Python中可以将字母默认为英文字母与汉字以及其他国家语言)

string.isalpha()

输出为:

  • 字符串中,所有字符都是字母返回True
  • 否则返回False
  •  例如:    (字母包含大小写)

    print("Hello".isalpha())

    输出为:True

    若包含一切标点符号或数字:  (注意:空格也会当做标点符号)

    print("你好".isalpha())
    print("Hello5".isalpha())
    print("Ni,hao".isalpha())
    print("Ni hao".isalpha())

    输出为:

    True
    False
    False
    False

     

    二,isdigit()

    isdigit()可以判断至少有一个字符的 字符串 中所有字符是否为数字。

    (注意:带圈圈的数字也算是数字,返回结果也为True)

    如:X.isdigit()中所有字符都是数字就会返回True;否则就是False

    print("555555".isdigit())
    print("①②".isdigit())
    print("你好!".isdigit())
    print("Hello".isdigit())
    print("Hello5".isdigit())
    

    运行:

    True
    True
    False
    False
    False

    三,isalnum()

    isalnum()可以判断 字符串 中所有字符是否为字母数字。

    如:X.isalnum()中所有字符都是字母数字就会返回True;否则就是False

    print("Hello".isalnum())
    print("Hello555".isalnum())
    print("555555".isalnum())
    print("你好".isalnum())   #汉字以及其他国家语言也被算作字母哦!
    print("Hello!".isalnum())
    print("你好!".isalnum())
    print("$%$#".isalnum())

    运行:

    True
    True
    True
    True
    False
    False
    False

    所以,若是字符串中含有 标点符号 就会返回False。

     

    注意:字母,数字的定义

    一:Python官方中定义的字母默认为英文字母+汉字以及他国语言即可。

    二:Python官方中定义的数字默认为阿拉伯数字+带圈数字即可。

    【案例】个人信息录入

    在课本中有这么一个案例:

    try:
        name = input("姓名:")
        if name.strip()=="":
            raise Exception("无效姓名")
        gender = input("性别:")
        if gender != "男" and gender != "女":
            raise Exception("无效性别")
        age = input("年龄:")
        age = int(age)
        if age < 18 or age > 30:
            raise Exception("无效年龄")
        i = i + 1
        print(name, gender, age)
    except Exception as err:
        print(err)

    按照教材运行代码,在录入信息时会发现居然可以录入数字,然而现实生活中肯定是没有人叫做数字的吧,那我们运用刚学到的知识,把它修改成以下这样:

    try:
        name = input("姓名:")
        if name.isdigit():
            raise Exception("无效姓名")
        gender = input("性别:")
        if gender != "男" and gender != "女":
            raise Exception("无效性别")
        age = input("年龄:")
        age = int(age)
        if age < 18 or age > 30:
            raise Exception("无效年龄")
        i = i + 1
        print(name, gender, age)
    except Exception as err:
        print(err)

    这样,我们就可以避免输入纯数字名字了,然而还有一个 问题,若是输入过程中意外多打了个符号或数字的话也能正常录入(张三5,张三@),那这可不正常了,这时候就需要把代码再次修改成这样:

    try:
        name = input("姓名:")
        if name.isalpha()==False:
            raise Exception("无效姓名")
        gender = input("性别:")
        if gender != "男" and gender != "女":
            raise Exception("无效性别")
        age = input("年龄:")
        age = int(age)
        if age < 18 or age > 30:
            raise Exception("无效年龄")
        i = i + 1
        print(name, gender, age)
    except Exception as err:
        print(err)

    最后再加个while循环就大功告成了

    i=1
    while i<2:
        try:
           name=input("姓名:")
           if name.isalpha()==False:
               raise Exception("无效姓名")
           gender=input("性别:")
           if gender!="男" and gender!="女":
            raise Exception("无效性别")
           age=input("年龄:")
           age=int(age)
           if age<18 or age>30:
            raise Exception("无效年龄")
           i=i+1
           print(name,gender,age)
        except Exception as err:
            print(err)

    大家可以试着复制所有代码运行一遍,自己运行一遍后才会发现问题所在。

    参考文章

    ​​​​【python:isdigit()、isalpha()、isalnum() 三个函数的区别和注意点 – CSDN App】

    【Python isalpha()函数详解 – CSDN App】

     

    作者:子轩大魔王

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python isalpha(),isdigit(),isalnum()函数详解

    发表回复