zoukankan      html  css  js  c++  java
  • 第一次个人编程作业——汉字编程

    这个作业属于哪个课程 软件工程
    这个作业要求在哪里 点我
    这个作业的目标 用汉字编程
    作业正文 如下
    其他参考文献 ...
    • 代码行数:258
    • 分析时间:>1h
    • 编码时间:>6h

    人生苦短,我用Python

    需求分析

    • 看完题目要求,得知需要定义四种情况:
      • “整数”开头的句子
      • “变量名”开头的句子
      • “看看”开头的句子
      • “如果”开头的句子
    • 看完样例及注意事项,还需注意:
      • 用空格隔开词
      • 数字的转换(目前还只考虑数字0-10)
      • 交互式

    一步步分析

    输入句子input()

    句子分割:看到输入的句子是用空格隔开的,那就很容易想到用.split()函数。

    字符转换定义两个函数,trans_to_cn()函数把阿拉伯数字转为中文数字,trans_to_nums()另一个则相反。(目前还只考虑数字0-10)

    /* 以零和0为例 */
    def trans_to_nums(cn):
    	if cn == "零":
    		return 0
    
    def trans_to_cn(num):
    	if num == 0:
    		return "零"
    

    交互式:用while True(死循环)将核心代码包起来。

    “整数”开头的句子:如“整数 气温 等于 十”。这就相当于变量名为 气温,赋值为10,我一开始想到的是用exec()函数来动态定义变量。

    /* python可以用中文来定义变量名 */
    exec("{}={}".format("气温", trans_to_nums("十")))
    气温 += 5
    print(气温)
    /* 输出为15 */
    

    之后我发现用字典就可以,还省事,pycharm也不会在 气温 下有报错的红线(因为要在运行中才会定义 气温 变量,所以在未运行时,pycharm会划红线提示未定义变量。)
    首先定义一个空字典,之后添加“气温”为key,10为value的键值对。后续代码中都用字典。

    names = {}
    names["气温"] = 10
    print(names)
    /* 输出为{'气温': 10} */
    

    “变量名”开头的句子:如果前面用的是exec(),那么这里用globals()函数来判断“变量名”是否定义,globals()函数会以字典类型返回当前位置的全部全局变量。

    /* 接着前面exec()的例子 */
    if "气温" in globals():
        print(气温)
    /* 输出为15 */
    

    如果前面用的是字典,那么这里只要判断“变量名”是否在key里即可。

    /* 接着前面字典的例子 */
    if "气温" in names.keys():
    	print(names["气温"])
    /* 输出为10 */
    

    之后要考虑“增加”“减少”这两个运算关键词。如“气温 增加 三”或“气温 减少 三”

    no = input()
    if no.split()[1] == "减少":
    	names[no.split()[0]] -= trans_to_nums(no.split()[2])
    elif no.split()[1] == "增加":
    	names[no.split()[0]] += trans_to_nums(no.split()[2])
    

    “看看”开头的句子:如 “看看 气温”,就是打印key为气温的值,不要忘了转成中文数字就好了。

    “如果”开头的句子:需要讨论很多种,如下图:

    根据这几种情况可概括为下图(以“如果 气温 大于 八 则”开头为例):

    然后就可以开写了,这里就不写了。
    需要特别注意的是,“否则”后的判断语句需要按照数字从小到大依次写,不然可能产生列表越界报错,比如先写第十个的判断语句,可是“如果”语句并没有第十个,就会产生列表越界报错。

    到此也就差不多了。
    之后我还增加了:

    • 判断“乘以”、“除以”
    • “除以”可判断除数为0,除后结果为小数时可提示还原结果或者强制转换为整数
    • 退出功能
    • 捕获几个常见异常

    Git镜像(官网下载实在慢):https://npm.taobao.org/mirrors/git-for-windows/
    Git教程(廖雪峰牛逼!):https://www.liaoxuefeng.com/wiki/896043488029600

    我的Github仓库地址:https://github.com/SunJC911/rjgc

    还在持续改进中···

  • 相关阅读:
    Mac下持续集成-查看占用的端口及kill
    windons模拟linux终端工具----cmder
    windows中使用django时报错:A server error occurred. Please contact the administrator.
    Pycharm和Navicat免费全功能版资源(即破解版)
    git常用命令
    pycharm常用的快捷键
    CSS3的媒体查询
    CSS列表中与list-style=none等价的样式
    CSS3中的mouse事件(mouseleave,mouseenter,mouseout,mouseover)
    CSS层级(浮动,定位的层级提升)
  • 原文地址:https://www.cnblogs.com/sunjc911/p/12275283.html
Copyright © 2011-2022 走看看