python基礎練習題(題目 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數)


day10

---------------------------------------------------------------

實例017:字符串構成

題目 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

分析:看看string模塊的使用

str.isalpha
如果字符串中至少有一個字符且所有字符均為字母則返回真值,否則返回假值。
str.isspace
如果字符串中至少有一個字符且所有字符均為空白字符則返回真值,否則返回假值。
str.isdigit
如果字符串中至少有一個字符且所有字符均為數字字符則返回真值,否則返回假值。

 問題不大,直接上答案吧

 1 string=input("輸入字符串:")
 2 alp=0
 3 num=0
 4 spa=0
 5 oth=0
 6 for i in range(len(string)):
 7     if string[i].isspace():
 8         spa+=1
 9     elif string[i].isdigit():
10         num+=1
11     elif string[i].isalpha():
12         alp+=1
13     else:
14         oth+=1
15 print('space: ',spa)
16 print('digit: ',num)
17 print('alpha: ',alp)
18 print('other: ',oth)

試了下不用range()函數也可以,目前沒發現有什么問題

 1 string = input("請輸入字符串:")
 2 alp=0
 3 num=0
 4 spa=0
 5 oth=0
 6 for i in string:
 7     if i.isspace():
 8         spa+=1
 9     elif i.isdigit():
10         num+=1
11     elif i.isalpha():
12         alp+=1
13     else:
14         oth+=1
15 print('space: ',spa)
16 print('digit: ',num)
17 print('alpha: ',alp)
18 print('other: ',oth)

來一個加強版的,采用正則的re.findall()

1 import re
2 
3 s = input('請輸入一串字符:')
4 char=re.findall(r'[a-zA-Z]',s)#以列表類型返回全部能匹配的子串
5 num=re.findall(r'[0-9]',s)
6 blank=re.findall(r' ',s)
7 chi=re.findall(r'[\u4E00-\u9FFF]',s)#漢字的Unicode編碼范圍
8 other = len(s)-len(char)-len(num)-len(blank)-len(chi)
9 print('字母',len(char),'\n數字',len(num),'\n空格',len(blank),'\n中文',len(chi),'\n其他',other)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM