python練習 英文字符的魯棒輸入+數字的魯棒輸入


魯棒 = Robust 健壯

英文字符的魯棒輸入

描述

獲得用戶的任何可能輸入,將其中的英文字符進行打印輸出,程序不出現錯誤。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

輸入輸出示例

輸入 輸出
示例 1 *&^123abc0e abce

解法一

alpha = []
for i in range(26):
    alpha.append(chr(ord('a') + i)) #把a~z先放到列表中
    alpha.append(chr(ord('A') + i)) #再把A~Z也放進去
s = input()
for c in s:
    if c in alpha:  #直接判斷
        print(c, end="")

解法二

s = input()
for c in s:
    c = str(c)  #轉成字符串
    if 'z'>=c>='a' or 'Z'>=c>="A": #逐個字符拿來比較 不另開列表 
        print(c, end="")

數字的魯棒輸入

描述

獲得用戶輸入的一個數字,可能是浮點數或復數,如果是整數僅接收十進制形式,且只能是數字。對輸入數字進行平方運算,輸出結果。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

要求:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

(1)無論用戶輸入何種內容,程序無錯誤;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

(2)如果輸入有誤,請輸出"輸入有誤"。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

輸入輸出示例

輸入 輸出
示例 1 1+2j (-3+4j)
示例2 abd 輸入有誤

解法

s = input()
try:   # 這里用到了 try except 異常處理
    if complex(s) == complex(eval(s)):
        print(eval(s)**2)
except:
    print("輸入有誤")

其中complex()complex(eval())之間的比較將能夠排除非數字類型的輸入。

注意:不能直接使用eval(),否則,用戶可以通過輸入表達式(如100**2)輸入數字,與要求不同(在實際應用中帶來安全隱患)。


免責聲明!

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



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