一、isalpha () 方法
1. 核心功能
判断一个字符串是否全部由字母组成(且字符串非空),满足则返回 true,否则返回 false。
2. 语法格式
string.isalpha()
- 无参数,仅通过字符串对象调用。
- 字母范围:包含大小写英文字母(
a-z、a-z),中文 / 其他语言文字也会被识别为 “字母”(这是 python 对 unicode 字符的兼容)。
3. 典型示例
# 示例1:纯英文字母(大小写) s1 = "python" print(s1.isalpha()) # 输出:true # 示例2:包含数字/符号/空格 s2 = "python123" s3 = "python-" s4 = "python " print(s2.isalpha()) # 输出:false(含数字) print(s3.isalpha()) # 输出:false(含符号) print(s4.isalpha()) # 输出:false(含空格) # 示例3:空字符串 s5 = "" print(s5.isalpha()) # 输出:false(空字符串) # 示例4:中文(unicode 字符) s6 = "编程" print(s6.isalpha()) # 输出:true(python 识别中文为字母类字符)
4. 常见使用场景
- 校验用户输入的 “姓名”“昵称” 是否仅含文字(无数字 / 符号);
- 筛选文本中的纯字母字符串(如提取英文单词)。
二、isdigit () 方法
1. 核心功能
判断一个字符串是否全部由数字字符组成(且字符串非空),满足则返回 true,否则返回 false。
2. 语法格式
string.isdigit()
- 无参数,仅通过字符串对象调用。
- 数字范围:包含 0-9 的阿拉伯数字,还支持 unicode 数字字符(如①、² 等),但不识别小数点、负号、科学计数法符号。
3. 典型示例
# 示例1:纯阿拉伯数字 s1 = "123456" print(s1.isdigit()) # 输出:true # 示例2:包含小数点/负号/空格/字母 s2 = "123.45" s3 = "-123" s4 = "123 " s5 = "123a" print(s2.isdigit()) # 输出:false(含小数点) print(s3.isdigit()) # 输出:false(含负号) print(s4.isdigit()) # 输出:false(含空格) print(s5.isdigit()) # 输出:false(含字母) # 示例3:空字符串 s6 = "" print(s6.isdigit()) # 输出:false(空字符串) # 示例4:unicode 数字字符 s7 = "①②③" # 中文数字序号 s8 = "²³⁴" # 上标数字 print(s7.isdigit()) # 输出:true print(s8.isdigit()) # 输出:true
4. 常见使用场景
- 校验用户输入的 “手机号”“身份证号(纯数字段)”“验证码” 是否为纯数字;
- 筛选文本中的纯数字字符串(如提取数据中的数字编码)。
三、关键对比与避坑点
| 特性 | isalpha() | isdigit() |
|---|---|---|
| 核心判断 | 全字母 | 全数字(含 unicode 数字) |
| 空字符串 | 返回 false | 返回 false |
| 包含空格 / 符号 | 返回 false | 返回 false |
| 中文 / 其他语言文字 | 返回 true | 返回 false |
| 小数点 / 负号 | 无影响(本身非字母) | 返回 false |
避坑提醒
isdigit() 不识别 “小数”“负数”:若要校验小数 / 负数,需手动处理(如 try-except 转浮点数):
def is_number(s):
try:
float(s)
return true
except valueerror:
return false
print(is_number("123.45")) # 输出:true
print(is_number("-123")) # 输出:true中英文数字区别:isdigit() 识别 ① 但不识别 一,isalpha() 识别 一 但不识别 ①。
四、实战案例:用户输入校验
# 校验用户名(仅字母/中文,长度3-8)
username = input("请输入用户名(仅文字,3-8位):")
if username.isalpha() and 3 <= len(username) <= 8:
print("用户名合法")
else:
print("用户名非法(需仅含文字,长度3-8)")
# 校验验证码(6位纯数字)
code = input("请输入6位数字验证码:")
if code.isdigit() and len(code) == 6:
print("验证码合法")
else:
print("验证码非法(需6位纯数字)")总结
isalpha():校验字符串全为字母 / 文字(含中文),空字符串 / 含数字 / 符号均返回 false;isdigit():校验字符串全为数字字符(0-9/unicode 数字),空字符串 / 含小数点 / 负号 / 字母均返回 false;- 若需校验 “数值(小数 / 负数)”,不要用
isdigit(),改用try-except转数值类型的方式。
到此这篇关于python中isalpha () 和 isdigit ()的区别小结的文章就介绍到这了,更多相关python isalpha isdigit内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论