当我们在面对编程问题的时候,我们可以采用一种思路进行方便的解决,过程如下:
1.分析问题:分析问题的计算部分,想清楚。
2.划分边界:划分问题的功能区边界,规划IPO,即input(输入),process(过程),output(输出)。
3.设计算法:设计问题的求解算法,关注算法。
4.编写程序:编写问题的计算程序,编程序。
5.调试测试:调试程序使正常运行,运行调试。
6.升级维护:适应问题的升级维护,更新完善。
下来我们根据具体事例进行分析,温度转换实例如下:
问题如下:
温度刻画的两种不同体系有摄氏度(中国等世界大多数国家使用,以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画)和华氏度(美国、英国等国家使用,以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画)将两种温度体系进行温度转换。
(1)分析问题:
温度转换,即摄氏度转换为华氏度,华氏度转换为摄氏度。
当看到此题目的第一时候,先进行思考,进行理解题目,理解如下:
理解一:直接将温度值进行转换
理解二:将温度信息发布的声音或图像形式进行理解和转换。
理解三:监控温度信息发布渠道,实时获取并转换温度值。
本题按照理解一进行解决题目。
(2)划分边界(IPO)
输入 (input) 带华氏或摄氏标志的温度值
处理 (process) 根据温度标志选择适当的温度转化算法
输出(output) 带摄氏或华氏标志的温度值
输入输出格式设计
标识放在温度最后,C表示摄氏度,F表示华氏度。
(3)设计算法
根据华氏和摄氏温度的定义,利用转换公式如下:
C=(F-32)/1.8
F=C*1.8+32
(4)编写程序
#TempConvert.py TempStr=input("请输入带有符号的温度值:") if TempStr[-1]in['F','f']: C=(eval(TempStr[0:-1])-32)/1.8 print("转换后的温度是{:.2f}C".format(C)) elif TempStr[-1]in['C','c']: F=1.8*eval(TempStr[0:-1])+32 print("转换后的温度是{:.2f}F".format(F)) else: print("输入格式错误")
(5)调试测试
调试结果如下:
针对温度转换的实例研究,我们对其中的代码进行了·详细的解释。
#TempConvert.py TempStr=input("请输入带有符号的温度值:") ''' TempStr、C、F为变量,所谓变量,就是某一值赋给这个由标识符命名的变量名,其中变量命名规则为1.由字母、数字或者下划线,还有汉字(基本不用)组成, 且不能以数字开头。 2.标识符区分大小写。 同时他的命名规范:常量名使用大写的单个单词或由下划线连接的多个单词;(ORDER、ORDER_LIST_LIMIT) 模块名、函数名使用小写的单个单词或由下划线连接的多个单词。(low、low_with_under) 类名使用大写字母开头的单个或多个单词,无下划线连接(CapWorld、Cat) 赋值语句:由赋值符号构成的一行代码。 函数:根据输入参数产生不同输出的功能过程。 函数格式:<函数名>(<参数>) print("输入格式错误") ''' if TempStr[-1]in['F','f']: """ 用保留字in判断一个元素是否在列表中,判断两者是否与列表中某个元素相同 意义即为输入的温度值赋给TempStr变量,然后判断输入的温度值的最后一个字符是否有F或者f。 TempStr[-1],获取变量字符串的最后一个字符。 if语句,如果条件为True,则执行冒号后语句;如果条件为false,则冒号后语句会被跳过。 """ """ 字符串是一个由单引号、双引号或者三引号包裹的有序的字符集合。(由0个或多个字符组成的有序字符序列) 字符串是字符的有序序列,可以对其中的字符进行索引。 序号体系为编号从0开始。 序号体系有正向递增序号(从左边的第一个0开始到最后一个)和反向递减序号(从右边的最后一个开始到-1) 字符串的使用:索引和切片。 索引:返回字符串单个字符,<字符串>[0]例如:"请输入带有符号的温度值:"[0]结果为请 切片:返回字符串中一段字符子串,<字符串>[1:3]例如:"请输入带有符号的温度值:"[1:3]结果为输入。 TempStr[0:-1],即第一个字符到最后一个字符之前,相当于把最后一个字符去掉。 """ C=(eval(TempStr[0:-1])-32)/1.8 """ eval函数(评估函数,作用为去掉参数最外侧引号并执行余下语句的函数,比如eval("1") 输出为1;eval("1+2") 输出为3; eval('printf("5")') 输出为5.即去掉最外侧引号后即可变成python可以识别的语句。 在这里的引用为TempStr为字符串类型,结果示例为"12.5",去掉最外侧引号为12.5。同时如果用户输入82F,即去掉最后一个字符为82。 其中前面空格为缩进,一般用四个空格或者一个Tab键,但不是必须用这个,也可以用其他数量级的空格表达缩进, 在单一程序内,缩进的长度是相同的 整数和浮点数都是数字类型,整数即为数学中的整数(32),浮点数为数学中的实数带有小数部分(1.8)。 列表类型:[],列表元素元组中的元素以逗号分隔,由0个或多个数据组成的有序序列。 """ print("转换后的温度是{:.2f}C".format(C)) """ {}表示槽,后续变量填充到槽中。将format函数中的变量的值填充到槽中 {:.2f}表示将变量C填充到这个位置时取小数点后2位。 """ elif TempStr[-1]in['C','c']: F=1.8*eval(TempStr[0:-1])+32 print("转换后的温度是{:.2f}F".format(F)) else: print("输入格式错误") """ 分支语句:由判断条件决定程序运行方向的语句 使用if elif else 构成条件判断的分支结构 其中if elif in else为已经确定的标识符,无法用这些来重复定义标识符 """
其中红色为代码,其他则为相关注释,对于代码的相关解释。
#为单行注释,""" """,''' '''为多行注释。