Python统计字符串中的中英文字符、数字空格,特殊字符

# -*- coding:utf8 -*-
import string
from collections import namedtuple

def str_count(s):
    ‘‘‘找出字符串中的中英文、空格、数字、标点符号个数‘‘‘
    count_en = count_dg = count_sp = count_zh = count_pu = 0

    s_len = len(s)
    for c in s:
        # 英文
        if c in string.ascii_letters:
            count_en += 1
        # 数字
        elif c.isdigit():
            count_dg += 1
        # 空格
        elif c.isspace():
            count_sp += 1
        # 中文
        elif c.isalpha():
            count_zh += 1
        # 特殊字符
        else:
            count_pu += 1

    total_chars = count_zh + count_en + count_sp + count_dg + count_pu
    if total_chars == s_len:
        return namedtuple(‘Count‘, [‘total‘, ‘zh‘, ‘en‘, ‘space‘, ‘digit‘, ‘punc‘])(s_len, count_zh, count_en,count_sp, count_dg, count_pu)
    else:
        print(‘Something is wrong!‘)
        return None

if __name__ == ‘__main__‘:
    str_l = "这是一个test字符串"
    count = str_count(str_l)
    print(str_l, end=‘\n\n‘)
    print(‘该字符串共有 {} 个字符,其中有 {} 个汉字,{} 个英文,{} 个空格,{} 个数字,{} 个标点符号。‘.format(count.total, count.zh, count.en, count.space,
                                                                           count.digit, count.punc))

原文地址:https://www.cnblogs.com/zihe/p/8323508.html

时间: 2024-10-07 18:55:24

Python统计字符串中的中英文字符、数字空格,特殊字符的相关文章

统计字符串中,各个字符的个数(回炉练习)

__author__ = 'ZHHT' #!/usr/bin/env python # -*- coding:utf-8 -*- #统计字符串中,各个字符的个数 #比如:"hello world" 字符串统计的结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1 a = "hello world" b = set(a) for i in b: if i == ' ': c = a.count(i) i = '空格' print("%s出现%d次

二叉排序树统计字符串中出现的字符及其次数

二叉排序树统计字符串 结点的类型: typedef struct tnode { char ch; //字符 int count; //出现次数 struct tnode *lchild,*rchild; } tnode,*BTree; 完整代码 //文件名:exp9-5.cpp #include<iostream> using namespace std; #define MAXWORD 100 typedef struct tnode // typedef tnode *BTree { c

python 提取字符串中的指定字符 正则表达式

例1: 字符串: '湖南省长沙市岳麓区麓山南路麓山门' 提取:湖南,长沙 在不用正则表达式的情况下: address = '湖南省长沙市岳麓区麓山南路麓山门' address1 = address.split('省') # 用“省”字划分字符串,返回一个列表 address2 = address1[1].split('市') # 用“市”字划分address1列表的第二个元素,返回一个列表 print(address1) # 输出 ['湖南', '长沙市岳麓区麓山南路麓山门'] print(ad

统计字符串中重复的字符个数及字符

做华为的试题,发现有很多需要字符串重复相关知识的.现在补上: #include <stdio.h> #include <stdlib.h> #include <string> #include <string.h> #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(int argc, char**

去除字符串中的中英文字符,用正则

import re somethings = "Rise to vote, sir." somethings=somethings.lower()somethings=re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,.??.[email protected]#¥%……&*()]+", "",somethings)print(somethings) 原文地址:https://www.cnblogs.c

python统计字符串中每个单词出现的个数【一行】

s = 'i am very very like you and like you' dict( [(i, s.split().count(i)) for i in s.split()] ) Out[2]: {'i': 1, 'am': 1, 'very': 2, 'like': 2, 'you': 2, 'and': 1} set( map(lambda x:(x, s.split().count(x)), s.split()) ) Out[6]: {('am', 1), ('and', 1)

统计字符串中数字,字母,空格的个数

这是C语言课后的一道习题,网上可以找到很多相关的代码,都可以很好的基本完成题目要求 但是,我发现很多的代码都无法实现统计字符串中大于10的数字(只局限于统计0-9之间的数字) 此程序可以改进具有十位,百位,千位,甚至更大的数字的统计: #include<stdio.h> int main() { char a[50] ="1 2 3 a b c d @ 15 21 19 88 r 78 100 189 1598 46"; int i,j; int d = 0, c = 0,

用python统计list中各元素出现的次数(同理统计字符串中各字符出现的次数)

统计list中各元素出现的次数,下面的方法也适用于统计字符串中各字符出现的次数 1.用字典的形式来处理 a = "abhcjdjje" a_dict = {}for i in a: a_dict[i] = a.count(i)print(a_dict) 2.用count函数直接打印出来 L = [2,4,5,6,2,6,0,4] for i in L: print("%d的次数:%d"%(i,L.count(i))) 3.用collections的Counter函数

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is