Python isalpha(),isdigit(),isalnum()函数详解
一,isalpha()
isalpha()可以判断 字符串 中是否只含有 字母。 (在Python中可以将字母默认为英文字母与汉字以及其他国家语言)
string.isalpha()
输出为:
例如: (字母包含大小写)
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】
作者:子轩大魔王