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