免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6041 | 回复: 10
打印 上一主题 下一主题

判断字母 [复制链接]

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-16 22:25 |只看该作者 |倒序浏览
本帖最后由 tomer 于 2014-11-16 22:26 编辑

统计字母出现的次数

  1. #!coding=utf-8
  2. import string
  3. import sys
  4. def tongji(str):
  5.     str1=list(str)
  6.     str2={}
  7.     for string in str1:
  8.         if string.isalpha()==True:
  9.            str2[string]=str2.get(string,0)+1
  10.     for string in str2:
  11.         print("{0} occur {1}".format(string,str2[string]))   
  12. if __name__=='__main__':
  13.   f=open("d:\\file.txt","r")
  14.   for eachline in f:
  15.      tongji(eachline)
复制代码
file.txt的内容为:adfeife df的发疯erqapfdanfeiurepoefu832k
f运行结果

  1. e occur 6
  2. d occur 3
  3. n occur 1
  4. r occur 2
  5. 发 occur 1
  6. o occur 1
  7. p occur 2
  8. f occur 7
  9. 疯 occur 1
  10. 的 occur 1
  11. q occur 1
  12. u occur 2
  13. i occur 2
  14. k occur 1
  15. a occur 3
复制代码
string.isalpha()把字符"的""疯"都判断成字母了?

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
2 [报告]
发表于 2014-11-17 08:51 |只看该作者
>>> "啊".isalpha()
True
>>>
string.isalpha()不是判断是否为字母吗?

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
3 [报告]
发表于 2014-11-17 09:44 |只看该作者
sky-MacBook-Pro➜  /tmp  ᐅ  cat 1.py
#!/usr/bin/env python
#coding: utf-8
print "啊".isalpha()
sky-MacBook-Pro➜  /tmp  ᐅ  python 1.py
False
sky-MacBook-Pro➜  /tmp  ᐅ  echo $LANG
zh_CN.UTF-8

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
4 [报告]
发表于 2014-11-17 09:59 |只看该作者
>>> # -*- coding=UTF-8 -*-
...
>>> "啊".isalpha()
True
>>>

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
5 [报告]
发表于 2014-11-17 10:55 |只看该作者
回复 3# bikong0411


    [root@VM ~]# export LANG=zh_CN.UTF-8
[root@VM ~]# python 3.py
  File "3.py", line 2
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuation byte
[root@VM ~]# more 3.py
#coding=utf-8
print("你".isalpha())
[root@VM ~]#

论坛徽章:
0
6 [报告]
发表于 2014-11-17 11:04 |只看该作者
本帖最后由 love_shift 于 2014-11-17 12:39 编辑

try:
string.letters
  1. >>> from collections import Counter
  2. >>> import string
  3. >>> s = 'adfeife df的发疯erqapfdanfeiurepoefu832k'
  4. >>> n = [ x for x in s if x in string.letters ]
  5. >>> for k,v in Counter(n).iteritems():
  6. ...     print k,v
  7. ...
  8. a 3
  9. e 6
  10. d 3
  11. f 6
  12. i 2
  13. k 1
  14. o 1
  15. n 1
  16. q 1
  17. p 2
  18. r 2
  19. u 2
复制代码

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
7 [报告]
发表于 2014-11-17 15:25 |只看该作者
  1. import string
  2. import sys
复制代码
第一行,已经告诉过你,python自带的str已经有很多功能,包括你要用到的功能,你没有先吧python的基础学好了,就学人家用什么库。

第二个,你知道是什么意思吗?你的代码里就没有用到这个库,你为毛要加这样一行?好玩?

论坛徽章:
5
巨蟹座
日期:2014-08-28 18:12:342015年迎新春徽章
日期:2015-03-04 10:01:4415-16赛季CBA联赛之江苏
日期:2016-04-28 09:43:3115-16赛季CBA联赛之吉林
日期:2016-06-22 10:34:4315-16赛季CBA联赛之山西
日期:2016-08-16 16:29:55
8 [报告]
发表于 2014-11-17 17:24 |只看该作者
本帖最后由 Linux_manne 于 2014-11-17 17:25 编辑

回复 7# ssfjhh


    说得好。。 我实在是看不下去了..... 碰到问题 自己都不先动动脑子.....

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
9 [报告]
发表于 2014-11-17 17:29 |只看该作者
回复 7# ssfjhh


    加上了,报错与这个有关系吗

论坛徽章:
3
天秤座
日期:2014-10-29 11:37:572015元宵节徽章
日期:2015-03-06 15:50:39NBA常规赛纪念章
日期:2015-05-04 22:32:03
10 [报告]
发表于 2014-11-17 17:36 |只看该作者
回复 6# love_shift

  1. #coding=utf-8
  2. from collections import Counter
  3. import string
  4. s = 'adfeife df吓到 erqapfdanfeiurepoefu832k'
  5. n = [ x for x in s if x in string.letters ]
  6. for k,v in Counter(n).iteritems():
  7.      print(k,v)
复制代码
Traceback (most recent call last):
  File "E:\pythonspace\p\src\t2.py", line 5, in <module>
    n = [ x for x in s if x in string.letters ]
  File "E:\pythonspace\p\src\t2.py", line 5, in <listcomp>
    n = [ x for x in s if x in string.letters ]
AttributeError: 'module' object has no attribute 'letters'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP