python字符串个数
❶ python如何在给定的字符串中,统计某个特定子串的数量
代码如下:【备注】:1. 用str.split(',')只能分隔逗号一种;如果涉及到多重分隔的话就需要使用re.split(',|:')。2. 原字符串以逗号分隔的,后面有一个或多个字符串,所以re.split(', | ')。3. 执行re.split(r', | ', S)操作之后,列表中会产生大量的'',就需要将filter过滤掉。4. 使用L.count(x) == 1 或者 L.count(x) > 1来保留重复项或,非重复项。5. set(L)则是保留列表中的唯一项,再用list()将其转换为列表。6. 使用', '.join(L),将列表拼接成我们想要的字符串。
❷ 用python从键盘输入一个字符串,统计其中大写小写字母以及数字的个数
#include <stdio.h>
int main()
{
char str[256];
char *p;
int upper = 0;
int lower = 0;
int space = 0;
int digit = 0;
int other = 0;
p = str; // P指针指向数组第一个元素 str[0]
gets(p);
while(*p) // P不为空的时候继续下面的
{
if(*p>='A' && *p<='Z') // 判断是否为大写
{
upper++; // 统计大写字母个数
}
else if(*p>='a' && *p<='z') //是否为小写
{
lower++; //统计小写个数
}
else if(*p == ' ') // 判断是否为“ ”
{
space++; //统计个数
}
else if(*p>='0' && *p<='9') // 判断是否为数字
{
digit++; // 统计数字个数
}
else
{
other++; //剩下的是其他字符的 统计个数
}
p++; //指针后移
}
printf("upper = %d ",upper); // 输出
printf("lower = %d ",lower); // 输出
printf("space = %d ",space);// 输出
printf("digit = %d ",digit);// 输出
printf("other = %d ",other);// 输出
return 0;
}
(2)python字符串个数扩展阅读:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
❸ python函数统计字符串中字母数学其他字符的个数
代码如下:
text = "Hello Python,Hello 2021."
letter = 0
digital = 0
other = 0
for i in text:
if i.isalpha():
letter += 1
elif i.isdigit():
digital += 1
else:
other += 1
print('字母:{} 数字:{} 其他:{}'.format(letter,digital,other))
输出:
字母:16 数字:4 其他:4
下面是Python内置关于判断字符串类型的方法介绍:
str.isalnum()
如果字符串中的所有字符都是字母或数字且至少有一个字符,则返回True, 否则返回False。 如果c.isalpha(),c.isdecimal(),c.isdigit(),或c.isnumeric()之中有一个返回True,则字符``c``是字母或数字。
str.isalpha()
如果字符串中的所有字符都是字母,并且至少有一个字符,返回True,否则返回False。字母字符是指那些在 Unicode 字符数据库中定义为 "Letter" 的字符,即那些具有 "Lm"、"Lt"、"Lu"、"Ll" 或 "Lo" 之一的通用类别属性的字符。 注意,这与 Unicode 标准中定义的"字母"属性不同。
str.isascii()
如果字符串为空或字符串中的所有字符都是 ASCII ,返回True,否则返回False。ASCII 字符的码点范围是 U+0000-U+007F 。
3.7 新版功能.
str.isdecimal()
如果字符串中的所有字符都是十进制字符且该字符串至少有一个字符,则返回True, 否则返回False。十进制字符指那些可以用来组成10进制数字的字符,例如 U+0660 ,即阿拉伯字母数字0 。 严格地讲,十进制字符是 Unicode 通用类别 "Nd" 中的一个字符。
str.isdigit()
如果字符串中的所有字符都是数字,并且至少有一个字符,返回True,否则返回False。 数字包括十进制字符和需要特殊处理的数字,如兼容性上标数字。这包括了不能用来组成 10 进制数的数字,如 Kharosthi 数。 严格地讲,数字是指属性值为 Numeric_Type=Digit 或 Numeric_Type=Decimal 的字符。
str.isidentifier()
如果字符串是有效的标识符,返回True,依据语言定义,标识符和关键字节。
调用keyword.iskeyword()来检测字符串s是否为保留标识符,例如def和class。
❹ Python中如何从键盘中输入字符串,统计字母,数字,符号和空格的个数
初学者的话确实可以通过 ascii table来判断字母和数字的区别。Python里面有两个内置函数 ord和 chr可用。
ascii table
通过判断其字的范围来确定是字母还是别的。确实可以达到你现在想要的目的。
不过我个人建议是,暂时不用太在意这种问题。这个也不是解决这些问题的理想方法。
当你以后学会使用正则表达式之后,回头看这个问题就十分简单了!
正则表达式才是解决字符串这类问题更理想的方法。这种方式的优势和能力之强等你学习到后就知道了。
❺ Python中如何使生成器函数来用元组返回一个字符串大写字母个数和小写字母个数
#如何使生成器函数来用元组返回一个字符串大写字母个数和小写字母个数
def getUorL(s):
# [A-Z]是匹配内容,str是待匹配的对象
rtn = f"大写字母个数: {len(re.findall('[A-Z]',s))}"
yield rtn
# [a-z]是匹配内容,str_是待匹配的对象
rtn = f"小写字母个数: {len(re.findall('[a-z]',s))}"
yield rtn
str = "10ABC23sD~45ffe67e;oo++"
#第一次返回大写
g = getUorL(str)
print(next(g))
#第二次返回小写
print(next(g))