統計字符串中指定類型字符的個數
描述
假設所有字符分為三類:字母,數字及其他字符。
編寫一個函數,判斷指定字符的類型,並統計字符串中該類型字符的個數。
主程序輸入一個字符串及一個字符,調用上述函數統計該字符同類型字符在該字符串中的個數。
輸入格式
第一行輸入一個字符串,第二行輸入一個字符,不要任何提示信息。
輸出格式
輸出指定字符類型的個數,如依次輸入a8kw#2和-,輸出為“與-同類型的字符有1個。”
解題代碼:
def function(s, ch): a=b=c=0 for i in s: if ord('a')<=ord(i)<=ord('z') or ord('A')<=ord(i)<=ord('Z'): a=a+1 elif ord('0')<=ord(i)<=ord('9'): b=b+1 else: c=c+1 if ord('a')<=ord(ch)<=ord('z') or ord('A')<=ord(ch)<=ord('Z'): return a elif ord('0')<=ord(ch)<=ord('9'): return b else: return c #--------在以下空行處編寫function函數代碼----------------# #以下為主程序 s=input() ch=input() print("與%c同類型的字符有%d個。"%(ch,function(s,ch)))
分析:本題主要的問題是如何識別輸入的字符是何種類型的,是字母,數字還是其他字符類型。眾所周知,每一個字符都有對應的阿斯克碼值Ascii,且相同類型的字符的Ascii相鄰
,因此,我們可以通過這個方法來識別。
這里我們得用到ord()函數。ord() 函數是 chr() 函數(對於8位的ASCII字符串)或 unichr() 函數(對於Unicode對象)的配對函數,它以一個字符(長度為1的字符串)作為參數,返回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字符超出了你的 Python 定義范圍,則會引發一個 TypeError 的異常。
通過for循環可以依次遍歷字符串的每一個字符,並且分辨字符類型和計數,再通過if條件判斷語句,判斷要查詢的字符類型並返回該類型的個數。
運行結果: