鱼C论坛

 找回密码
 立即注册
查看: 2502|回复: 4

[已解决]有没有去掉语文文字再统计其他字符类型的方法啊

[复制链接]
发表于 2020-3-1 20:22:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def geshu(x):
  2. #我这是统计输入的一串字符中分别共有字母,数字空格和其他字符的多少
  3.     b = list(x)
  4.     zimu = 0
  5.     kongge = 0
  6.     shuzi = 0
  7.     qita = 0
  8.     for i in b:
  9.         if i=='':
  10.             kongge+=1
  11.         elif i.isalpha():
  12.             zimu+=1
  13.         elif i.isdigit():
  14.             shuzi+=1
  15.         else :
  16.             qita+=1
  17.     print('传入的字符串参数中一共有%d个英文字母,%d个空格,%d个数字和%d个其他字符'% (zimu,kongge,shuzi,qita))
  18. x = input('请输入一串字符,统计相应参数的多少:')
  19. geshu(x)
复制代码

我发现用了isalpha()这个它是连中文文字也算进去的,能去掉中文文字然后统计单纯的字母吗,求解
最佳答案
2020-3-1 21:13:26
看看我的代码吧,这个好理解点
  1. def countstr(*mstr):
  2.     chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  3.     nums = '0123456789'
  4.     whites = ' '
  5.     length = len(mstr)
  6.     for count in range(length):
  7.         con_s = 0
  8.         con_c = 0
  9.         con_n = 0
  10.         con_w = 0
  11.         for each in mstr[count]:
  12.             if each in chars:
  13.                 con_c += 1
  14.             elif each in nums:
  15.                 con_n += 1
  16.             elif each in whites:
  17.                 con_w += 1
  18.             else:
  19.                 con_s += 1
  20.         print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (count + 1, con_c, con_n, con_w, con_s))
复制代码

调用这个函数即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-1 20:58:07 | 显示全部楼层
有ascii码来判断,用ord(),值在65-90、97-122之间就是大小字,。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 21:09:35 From FishC Mobile | 显示全部楼层
语文文字,比较有意思的话
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 21:13:26 | 显示全部楼层    本楼为最佳答案   
看看我的代码吧,这个好理解点
  1. def countstr(*mstr):
  2.     chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  3.     nums = '0123456789'
  4.     whites = ' '
  5.     length = len(mstr)
  6.     for count in range(length):
  7.         con_s = 0
  8.         con_c = 0
  9.         con_n = 0
  10.         con_w = 0
  11.         for each in mstr[count]:
  12.             if each in chars:
  13.                 con_c += 1
  14.             elif each in nums:
  15.                 con_n += 1
  16.             elif each in whites:
  17.                 con_w += 1
  18.             else:
  19.                 con_s += 1
  20.         print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (count + 1, con_c, con_n, con_w, con_s))
复制代码

调用这个函数即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 21:35:14 | 显示全部楼层
wuqramy 发表于 2020-3-1 21:13
看看我的代码吧,这个好理解点

调用这个函数即可。

我其实就是不想打这些字母,也行吧这样,谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-14 03:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表