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)输入数字,与要求不同(在实际应用中带来安全隐患)。

原文地址:https://www.cnblogs.com/coderzjz/p/12692807.html