s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0 # 汉字个数
m = 0 # 标点符号个数
____①____ # 在这里补充代码,可以多行
print("字符数为{},标点符号数为{}。".format(n, m))
试试这个
import pandas as pd
import numpy as np
s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0 # 汉字个数
m = 0 # 标点符号个数
n=s.count(',')+s.count('?')
m=len(s)-n
print("字符数为{},标点符号数为{}。".format(n, m))
import string
def is_chinese(ch):
if '\u4e00' <= ch <= '\u9fff':
return True
return False
for i in s:
if is_chinese(i):
n += 1
elif i in string.punctuation:
m += 1
该方案可以兼容各种包括标点符号的句子
# coding=utf-8
import string
s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0 # 汉字个数
m = 0 # 标点符号个数
for ch in s:
# 是英文
if ch in string.ascii_letters:
pass
# 是数字
elif ch.isdigit():
pass
# 是空格
elif ch.isspace():
pass
# 是中文
elif ch.isalpha():
n = n + 1
# 特殊字符
else:
m = m + 1
print("字符数为{},标点符号数为{}。".format(n, m))