程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

【测验8 编程题】: 程序设计方法学 (第8周)

发布于2019-08-05 19:00     阅读(1966)     评论(0)     点赞(3)     收藏(0)


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27283619/article/details/91441275

第一题 英文字符的鲁棒输入

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

获得用户的任何可能输入,将其中的英文字符进行打印输出,程序不出现错误。

输入输出示例

仅给出输出格式示例,非正确答案。

输入 输出
*&^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='')

第二题 数字的鲁棒输入

描述

获得用户输入的一个数字,可能是浮点数或复数,如果是整数仅接收十进制形式,且只能是数字。对输入数字进行平方运算,输出结果。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

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

(1)无论用户输入何种内容,程序无错误;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

(2)如果输入有误,请输出"输入有误"。

输入输出示例

以下是一个格式示例,不是最终结

输入 输出
1+2j (-3+4j)
abd 输入有误

解答代码

思路:自己一开始用了三个try…excep去判断整数、浮点数、复数三种情况。后来参考答案后,发现参考答案简单很多。
这里的坑在于:不能直接使用eval(),否则,用户可以通过输入表达式(如100**2)输入数字,与要求不同(在实际应用中带来安全隐患)。

# 版本一,不够简洁
s = input()
ok = False
while not ok:
    try:
        n = int(s)
        ok = True
        break
    except:
        pass

    try:
        n = float(s)
        ok = True
        break
    except:
        pass

    try:
        n = complex(s)
        ok =True
        break
    except:
        pass
    
    break
if ok:
    print(n**2)
else:
    print("输入有误")
# 版本二,参考答案简洁很多,只有一个try...except
s = input()
try:
    if complex(s) == complex(eval(s)):
        print(eval(s)**2)
except:
    print("输入有误")

说明:题目来自北理嵩天老师【Python语言程序设计 (第8期)】课程,如有侵权,立删。



所属网站分类: 技术文章 > 博客

作者:我想吃火锅

链接:https://www.pythonheidong.com/blog/article/6708/67c1dfaf0ff09dd8ca66/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)