q = 0
w = 0
v = input("请输入内容>>>")
for item in v:
if item.isdigit() == True:
q += 1
if item in str.isalpha():
w += 1
print("一共输入" + str(q) + "个数字和" + str(w) + "字母")
#但是这样汉字也会算一个字母,求大神解决
q = 0
w = 0
v = input("请输入:")
for item in v:
if item.isalnum():
if item.isdecimal():
q += 1
elif item.isalpha():
if item >= u'\u4e00' and item <= u'\u9fa5': #判断是否是汉字
pass
else:
w += 1
print("有%d个数字,有%d个字母" % (q, w))
对于unicode string,string.isalpha
会根据字符串中的字符是否属于Unicode编码的LETTER区域来判断是否都由字母组成。所以得出的结果为True,不一定表示只有26个英文字母。反正这个不是很准确,常用的是正则,也可以采用下面一看就懂的方式:
q = 0 w = 0 v = input("请输入内容>>>") for item in v: if item > "0" and item < "9": q += 1 if (item > "a" and item < "z") or (item > "A" and item < "Z"): w += 1 print("一共输入%s个数字和%s字母" % (q, w))
正则
/w 任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
用正则应该怎么写啊
@tootise: python中正则要引用re模块,具体怎么用,内容很多,你自己学习,不要什么都直接要现成的。
@tootise:是该用反斜杠\
貌似没有,用Ctrl加左键点开str源码,里面好像只有这一个isalpha(),但是平常使用的时候用的真的很少。
– 苦行僧95 6年前