python统计字符个数

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