首页 新闻 会员 周边 捐助

python判断输入内容中有多少个字母

-1
[已解决问题] 解决于 2018-05-24 13:32
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) + "字母")

#但是这样汉字也会算一个字母,求大神解决
tootise的主页 tootise | 菜鸟二级 | 园豆:202
提问于:2018-05-22 16:45

貌似没有,用Ctrl加左键点开str源码,里面好像只有这一个isalpha(),但是平常使用的时候用的真的很少。

苦行僧95 6年前
< >
分享
最佳答案
1

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))

奖励园豆:5
小Var | 菜鸟二级 |园豆:207 | 2018-05-23 18:59
其他回答(1)
1

对于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))

 

苦行僧95 | 园豆:204 (菜鸟二级) | 2018-05-22 17:15

正则
/w 任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
用正则应该怎么写啊

支持(0) 反对(0) tootise | 园豆:202 (菜鸟二级) | 2018-05-22 17:48

@tootise: python中正则要引用re模块,具体怎么用,内容很多,你自己学习,不要什么都直接要现成的。

支持(0) 反对(0) 苦行僧95 | 园豆:204 (菜鸟二级) | 2018-05-22 17:53

@tootise:是该用反斜杠\

支持(0) 反对(0) 小Var | 园豆:207 (菜鸟二级) | 2018-05-23 19:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册