嵩天python123测试答案第⼋周_【测验8编程题】:程序设计
⽅法学(第8周)
第⼀题 英⽂字符的鲁棒输⼊
描述
符号常量和变量的区别是什么获得⽤户的任何可能输⼊,将其中的英⽂字符进⾏打印输出,程序不出现错误。
输⼊输出⽰例
仅给出输出格式⽰例,⾮正确答案。
输⼊
输出
*&^123abc0e
abce
解答代码
思路:⼀开始⾃⼰直接⼿动输⼊26个字母,存为集合,然后进⾏判断。参考答案后,进⾏改进如下。
# 英⽂字符的鲁棒输⼊
chars = set()
# ⽣成26个字母的⼤⼩写,并存为集合
for i in range(26):
chars.add(chr(ord('a') + i))
chars.add(chr(ord('A') + i))
s = input()
for i in s:
if i in chars:
print(i, end='')
第⼆题 数字的鲁棒输⼊
datetime库不存在
描述
获得⽤户输⼊的⼀个数字,可能是浮点数或复数,如果是整数仅接收⼗进制形式,且只能是数字。对输⼊数字进⾏平⽅运算,输出结果。要求:
(1)⽆论⽤户输⼊何种内容,程序⽆错误;
cms内容管理系统是什么
(2)如果输⼊有误,请输出"输⼊有误"。
输⼊输出⽰例
以下是⼀个格式⽰例,不是最终结
输⼊
输出
1+2j
(-3+4j)
abd
输⼊有误
解答代码
思路:⾃⼰⼀开始⽤了三个try…excep去判断整数、浮点数、复数三种情况。后来参考答案后,发现参考答案简单很多。
这⾥的坑在于:不能直接使⽤eval(),否则,⽤户可以通过输⼊表达式(如100**2)输⼊数字,与要求不同(在实际应⽤中带来安全隐患)。# 版本⼀,不够简洁
s = input()
ok = False
while not ok:
try:
ajax大全
n = int(s)
ok = True
break
except:
pass
try:
n = float(s)
ok = True
python基础知识测试break
except:
pass
try:
n = complex(s)
ok =True
break
except:
pass
break
if ok:
print(n**2)
else:
print("输⼊有误")
# 版本⼆,参考答案简洁很多,只有⼀个pt
s = input()
try:
if complex(s) == complex(eval(s)):
修改存储过程的sql语句
print(eval(s)**2)
except:
print("输⼊有误")
说明:题⽬来⾃北理嵩天⽼师【Python语⾔程序设计 (第8期)】课程,如有侵权,⽴删。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。