【Python】【demo實驗18】【練習實例】【統計輸入字符串中,數字的個數、英文字母的個數及其他符號的個數】


原題:

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

 

(本題暫時不支持中文字符及漢字)

我的代碼:

#!/usr/bin/python
# encoding=utf-8
# -*- coding: UTF-8 -*-

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

a = input("please input string:\n")
space_ = 0
number_ = []
EnglishLetter = []
otherString = []

for i in a:
    if i == " ":    #空格比較特殊,先判斷空格
        space_ = space_ +1
    elif ("0" <=  i  <= "9"):
        number_.append(i)
    elif ("a" <=  i  <= "z") or ("A" <=  i  <= "Z"):
        EnglishLetter.append(i)
    else :
        otherString.append(i)

# "1" 和 "a" 也是可以比較的;";" 和 "a" 也是可以比較的;
print(space_,number_,EnglishLetter,otherString)
print(space_,len(number_),len(EnglishLetter),len(otherString))

 

 

 

輸出結果:

 

 

 

可識別“\t”

 

因為我用的是python自帶的IDLE,不支持輸入的字符串中帶有回車,但是如果字符中直接包含\n 或\t的,都會當做兩個字符看待;  如果手動輸入“  ” \t  ,則能識別出;

 

原題使用的是string 庫,如下:

 

 

 

 

 

其實,我想了下,這題還有另外一種解法,對着ASCII表進行比對,

或直接將所有字符轉換為ASCII編碼對應的數值

或先建立一個 數字列表、字符串列表、空格列表和其他字符列表;

如果要考慮轉義字符,可以判斷字符是否為"\",如果是,則查看下一個字符在是什么;這個時候得知道Python的所有轉義字符;

 

總之,這題還是應該關注轉義字符的,並熟悉String庫的使用;

 

 

關於中文漢字的識別,后續再考慮吧;

 


————————(我是分割線)————————

參考:

1. RUNOOB.COM:https://www.runoob.com/python/python-exercise-example17.html

 

 

備注:

初次編輯時間:2019年9月30日16:24:16

環境:Windows 7   / Python 3.7.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原題給出的解答方式:

 


免責聲明!

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



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