python中isdigit()isalpha()用于判断字符串的类型问题
isdigit() isalpha()用于判断字符串的类型
要求1
统计某个字符串中的数字数量并输出,例如字符串为“adsfsd1adf23sdfa12”
思路:遍历字符串,用isdigit()方法判断是否为数字,如果为数字,统计+1
代码如下:
str=input("请输入任意字符串")
num=0 #统计基数
for i in str: #遍历字符串
if i.isdigit(): #判断是否为数字
num+=1
print(num)
要求2
在要求1的基础中统计出现数字的次数,比如12dsd23dsddf1,其中出现数字12,23,1共3次。
思路:此时如果利用上述思路,无法实现要求,故转换思路。
- 1.遍历字符串,用 isalpha()判断字符串类型是否Wie字符串
- 2.将字符串中的字符都换成空格,此时字符串中只有数字和空格
- 3.将原有字符串用split()转换为列表
- 4.统计列表元素长度
代码如下:
s=input("")
num=0 #统计基数
for i in s: #遍历字符串
if i.isalpha(): #判断是否为字符串
s=s.replace(i," ") #如果是字符串,替换为空格
b=s.split() #拆分字符串
print(len(b)) #统计字符串长度
isdigit()、isalpha()、isalnum() 三个函数的区别和注意点
一、isdigit()
python关于 isdigit() 内置函数的官方定义:
S.isdigit() -> bool
Return True if all characters in S are digits
and there is at least one character in S, False otherwise.
翻译:
S.isdigit()返回的是布尔值:True False
S中至少有一个字符且如果S中的所有字符都是数字,那么返回结果就是True;否则,就返回False
S1 = '12345' #纯数字
S2 = '①②' #带圈的数字
S3 = '汉字' #汉字
S4 = '%#¥' #特殊符号
print(S1.isdigit())
print(S2.isdigit())
print(S3.isdigit())
print(S4.isdigit())
# 执行结果:
True
True
False
False
二、isalpha()
python关于 isalpha() 内置函数的官方定义:
S.isalpha() -> bool
Return True if all characters in S are alphabetic
and there is at least one character in S, False otherwise.
翻译:
S.isalpha()返回的是布尔值:True False
S中至少有一个字符且如果S中的所有字符都是字母,那么返回结果就是True;否则,就返回False
S1 = 'abc汉字' #汉字+字母
S2 = 'ab字134' #包含数字
S3 = '*&&' #特殊符号
print(S1.isalpha())
print(S2.isalpha())
print(S3.isalpha())
#执行结果
True
False
False
三、isalnum()
python关于 isalnum() 内置函数的官方定义:
S.isalnum() -> bool
Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.
翻译:
S.isalnum()返回的是布尔值:True False
S中至少有一个字符且如果S中的所有字符都是字母数字,那么返回结果就是True;否则,就返回False
S1 = 'abc汉字1' #字母+汉字+数字
S2 = '①②③' #带圈的数字
S3 = '%……&' #特殊符号
print(S1.isalnum())
print(S2.isalnum())
print(S3.isalnum())
#执行结果
True
True
False
注意点:
1.python官方定义中的字母:大家默认为英文字母+汉字即可
2.python官方定义中的数字:大家默认为阿拉伯数字+带圈的数字即可
相信只要理解到这两点,这三个函数的在使用时的具体返回值,大家就很明确了~~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341