程序问题解决思路及其Python“温度转换”实例思考

当我们在面对编程问题的时候,我们可以采用一种思路进行方便的解决,过程如下:

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为已经确定的标识符,无法用这些来重复定义标识符
"""

其中红色为代码,其他则为相关注释,对于代码的相关解释。

#为单行注释,""" """,'''  '''为多行注释。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直再追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值