丸步堂870
2021-04-09 20:56
采纳率: 100%
浏览 70

python统计字符个数

s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0  # 汉字个数
m = 0  # 标点符号个数

____①____ # 在这里补充代码,可以多行

print("字符数为{},标点符号数为{}。".format(n, m))
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳

    试试这个

    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))
    点赞 评论
  • bobdu.cc 2021-04-09 21:09
    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

    该方案可以兼容各种包括标点符号的句子

    点赞 评论
  • Roc-xb 2021-04-09 21:09
    # 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))
    
    点赞 评论

相关推荐 更多相似问题