这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzzcxy/SE |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10283 |
这个作业的目标 | 捡起很久没仔细写过的python代码,锻炼思维能力 |
作业正文 | 如下 |
其他参考文献 | 江李悦同学的随笔 https://www.cnblogs.com/qq1261275789/p/12264130.html,百度,哔哩哔哩github以及git库的搭建教学 |
我的github库:https://github.com/heyfzc/homework
git库搭建和建立修改文件(工作区-暂存区-git库)
大致对题目的想法:
因为好久没有认真写过Python了而且正好家里电脑之前安装了Python就选择了用Python写这次的作业,但是后来我才发现自己把自己坑了,第一是因为平时代码写得少,有了思路不知道怎么下笔,太多运行错误了,于是乎翻开提交了的同学的随笔江李悦同学和我一样使用Python写的最重要的是我看懂啦!仔细体会了一番,决定先把最基础的版本写好。自己写的时候因为太久没写导致很多细节的点都没有注意,就连最基础的用空格做分隔符都忘了写,返回值也忘了设置,没办法仔细对比再去百度查找用法最后好歹是写出来一个版本。自己没能完全独立自主写出代码确实挺丢脸的,自己基础比较差但是就算不会写也要去学学别人的思路,在百度仔细学习python函数用法,我觉得慢慢会追上来的,我对自己有信心。
样例一代码:
代码行数:128行
分析时间:2小时+
编码时间:12小时+
输入部分:
#输入函数:本来想写成数组不想一个一个输入,但是奈何死活跑不出来,退而求其次一句一句的输入吧!
def 输入():
str = input()
a = str.split()#以空格为间隔!
if len(a)>0:
#判断是否是第一句话,如果是将计算后输出的字符串t的第一个字符确定为“温度”
if a[0] == '整数':
t[0] = a[1]
#如果是判断和输出语句,则字符串t的第一个字符确定为“温度”
elif a[0] == '看看' or '如果':
t[0] = a[1]
#其他情况“温度”皆为首个字符,输入到t[0]
else:
t[0] = a[0]
return a #返回值,否则为空,血的教训!!!
else:
return None
中文数字转阿拉伯数字:
def 中文转阿拉伯(s):#首先输入的是中文,所以需要先把中文转化为阿拉伯数字进行运算。
if len(a) <= 2:#如果输入字符串长度不大于2,则对输入的字符串进行判断
a[1] = a[1]#字符串长度等于2说明输入的是“看看 温度”所以此温度不需要进行运算a[1]=温度,直接输出
#此时判断输入的第三个字符是否是数字(第二三句输入),否则继续判断。
elif a[2] == '零':#将中文转化为阿拉伯数字,下同。
a[2] = 0
elif a[2] == '一':
a[2] = 1
elif a[2] == '二':
a[2] = 2
elif a[2] == '三':
a[2] = 3
elif a[2] == '四':
a[2] = 4
elif s[2] == '五':
a[2] = 5
elif a[2] == '六':
a[2] = 6
elif a[2] == '七':
a[2] = 7
elif a[2] == '八':
a[2] = 8
elif a[2] == '九':
a[2] = 9
elif a[2] == '十':
a[2] = 10
#此处判断输入的字符串第四个字符是否是数字(第一句话)
elif a[3] == '零':#汉子转化为阿拉伯数字,下同。
a[3] = 0
elif a[3] == '一':
a[3] = 1
elif a[3] == '二':
a[3] = 2
elif a[3] == '三':
a[3] = 3
elif a[3] == '四':
a[3] = 4
elif a[3] == '五':
a[3] = 5
elif a[3] == '六':
a[3] = 6
elif a[3] == '七':
a[3] = 7
elif a[3] == '八':
a[3] = 8
elif a[3] == '九':
a[3] = 9
elif a[3] == '十':
a[3] = 10
return a #设置返回值!!!
阿拉伯数字转中文数字:
没有写负数和更高的范围,因为考虑到了这种情况但是两边没有界限不知道怎么控制(-10000我总不能写10000个判断),
我看到有的同学考虑了这一点,但是有的没看太懂有的方法我觉得不是我觉得不是最佳的解决方案(比如说范围写到亿),我今后还会仔细思考完善的。
def 阿拉伯转中文():
if t[1] == 0:#将运算后的温度的数值转化为汉字并存入t[3].
t[3] = '零'
elif t[1] == 1:
t[3] = '一'
elif t[1] == 2:
t[3] = '二'
elif t[1] == 3:
t[3] = '三'
elif t[1] == 4:
t[3] = '四'
elif t[1] == 5:
t[3] = '五'
elif t[1] == 6:
t[3] = '六'
elif t[1] == 7:
t[3] = '七'
elif t[1] == 8:
t[3] = '八'
elif t[1] == 9:
t[3] = '九'
elif t[1] == 10:
t[3] = '十'
return a #返回值!
运算过程:
def 运算过程(a):
#判断输入的是第一个字符串:整数 气温 等于 十
if (a[0]=='整数') and (a[2]=='等于'):
t[1] = a[3]
#判断输入的是第二个字符串:气温 减少 三
if a[1] == '减少':
t[1] = t[1] - a[2]
#判断输入的是第三个字符串:气温 增加 二
if a[1] == '增加':
t[1] = t[1] + a[2]
#判断输入的是第四个字符串:看看 气温
if a[0] == '看看':
阿拉伯转中文()
print(t[3])#输出转化后的中文数字。
#判断输入的是第五个字符串:如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
if a[0] == '如果':
if a[2] == '大于':
if t[1] > a[3]:#如果数值大于8,则输出:你好,世界
print(a[6])
else:
print(a[9])#否则输出:冻死我了
程序入口
t=['',0,0,''] #t字符串起到阿拉伯数字转换汉字时的中间转换工具。
while(1):
a=输入()
if a!=None:#a字符串不为空则继续运行
a=中文转阿拉伯(a)
运算过程(a)
else:#否则结束
print('结束')
break