1. python編寫函數計算任意字元串出現次數
python本身就有一個count()函數可以用來統計字元串中單個字母出現次數
def fun(s):
count = string.count('a')
return count
string = input('請輸入字元串:')
a = input('請輸入你要查找的字元:')
print(fun(a))
2. python中如何統計字元串中各個字母的個數
用字元串count函數計算出現次數,防止重復,可以用字典來搜集結果:
運行結果
3. 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。
4. python統計各字母個數
一、實現思路
需要統計字元串中每個字母出現的次數;如果字母是第一次出現的話,就把次數置為1,如果字母非第一次出現的話,就需要在原字母已保存次數上加1;仔細思考一下,需要保存字母和出現次數,然後相同字母出現多次的話,需要在原字母保存的次數加1;字典這種數據類型可以實現這種需求。
二、代碼實現
2.1 統計字母出現次數
統計字元串每個字母出現次數源碼:
def count_each_char(str):
dict = {}
for i in str:
if i not in dict:
dict[i] = 1
else:
dict[i] += 1
return dict
if __name__ == "__main__":
res = count_each_char("abdefdcsdf")
print(res)
簡化版統計字元串字母出現次數源碼:
dict[i] 表示的是字典中字母對應的value(出現次數)
dict.get(i,0)+1 表示的是從字典獲取字母,如果字典中沒有查找到對應字母,則將字母i,次數1存入字典
def count_each_char(str):
dict = {}
for i in str:
dict[i]=dict.get(i,0)+1
return dict
運行結果:2.2 按字母出現次數排序
根據字母出現次數倒序排列源碼:
def count_each_char_sort_value(str):
dict = {}
for i in str:
dict[i] = dict.get(i, 0) + 1
# sorted 方法會生成一個排序好的容器
# operator.itemgetter(1) 獲取字典第一維的數據進行排序
# reverse 表示倒序排列
dict=sorted(dict.items(),key= operator.itemgetter(1),reverse=True)
return dict
if __name__ == "__main__":
res = count_each_char_sort_value("abdefdcsdf")
print(res)
運行結果:
從運行結果可以看出,通過調用sorted方法,已經根據指定的key進行倒序排序了
5. 用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;
}
(5)計算字元串中字母的數量python擴展閱讀:
字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。