PandaLi 发表于 2020-4-12 17:31

python一个小编程题

除了空格还有其他符号怎么排除呀   求大佬写个程序

笑厌。 发表于 2020-4-12 17:54

ASCII试试看

bp946 发表于 2020-4-12 17:57

s = "hello, everybody, I'm a student."
import re
s = +', s) if i]
print(len(s))

有什么符号自己往[]里加

jidesheng6 发表于 2020-4-12 18:08

isalpha方法

jidesheng6 发表于 2020-4-12 18:14

a="hello i am student"
l=a.split(" ")
print(len(i))
如果没有要求就这么写就可以

yao5201478 发表于 2020-4-12 18:19

本帖最后由 yao5201478 于 2020-4-12 18:46 编辑

如果输入标准的英语格式(标点符号后面都有一个空格),只需要用 python 的 split(' ') 分割,再用len() 统计个数就行了

你说的问题可以用 re 模块 的 sub 方法解决

``` python
import re


exp = 'Most certainly, you can borrow my pencil.'
# 将标点符号换为空格,再分割,所以结果中会包含空的字符串
r = re.sub('[.?,;:!]', ' ', exp).split(' ')
# 遍历结果,如果是空字符串则移除
for i in r:
    if not i:
      r.remove(i)
# 输出列表长度即单词数量
print(len(r))

# 如果要排除重复出现的单词就用set去重
print(len(set(r)))
```

Zhk 发表于 2020-4-12 18:35

bp946 发表于 2020-4-12 17:57
s = "hello, everybody, I'm a student."
import re
s = +', s) if i]


不太好,最简单方式是吧字母放到集合中,排除不是字母的。

bp946 发表于 2020-4-12 18:47

Zhk 发表于 2020-4-12 18:35
不太好,最简单方式是吧字母放到集合中,排除不是字母的。

有什么区别吗?

jinting 发表于 2020-4-12 19:03

嘿嘿,这个我正好做过【Python计算30年考研英语真题单词-词频统计】https://mp.weixin.qq.com/s/zgA4ZpcmVvJ9PblRQf5M3Q

PandaLi 发表于 2020-4-12 20:42

yao5201478 发表于 2020-4-12 18:19
如果输入标准的英语格式(标点符号后面都有一个空格),只需要用 python 的 split(' ') 分割,再用len() 统 ...

非常感谢
页: [1] 2
查看完整版本: python一个小编程题