目录
一,分析:
1.需求:
摄氏度:中国等世界大多数国家使用
以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
华氏度:美国、英国等国家使用
以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画
导向:
- 摄氏度转换为华氏度
- 华氏度转换为摄氏度
2.问题分析:
-理解1:直接将温度值进行转换
- 理解2:将温度信息发布的声音或图像形式进行理解和转换
- 理解3:监控温度信息发布渠道,实时获取并转换温度值
- 输入:带华氏或摄氏标志的温度值
- 处理:根据温度标志选择适当的温度转换算法
- 输出:带摄氏或华氏标志的温度值
- 输入输出格式设计
标识放在温度最后,F表示华氏度,C表示摄氏度
82F表示华氏82度,28C表示摄氏28度
设计算法:
根据华氏和摄氏温度定义,利用转换公式如下:
C = ( F – 32 ) / 1.8
F = C * 1.8 + 32
其中, C表示摄氏温度, F表示华氏温度
二,编程设计
算法分析:
1.字符串:
由0个或多个字符组成的有序字符序列
- 字符串由一对单引号或一对双引号表示
"请输入带有符号的温度值: "或者 ‘C’ - 字符串是字符的有序序列,可以对其中的字符进行索引
“请” 是 "请输入带有符号的温度值: " 的第0个字符
2.字符串的序号
正向递增序号 和 反向递减序号
0 1 2 3 4 5 6 7 8 9 10 11
‘请 输 入 带 有 符 号 的 温 度 值 :’
-12-11-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
正向递增序号
3.数字类型
整数和浮点数都是数字类型
- 整数:数学中的整数
32 或者 -89 - 浮点数:数学中的实数,带有小数部分
4.列表类型
由0个或多个数据组成的有序序列
- 列表使用[ ]表示,采用逗号(,)分隔各元素
[‘F’,‘f’]表示两个元素’F’和’f’ - 使用保留字 in 判断一个元素是否在列表中
TempStr[-1] in [‘C’,‘c’]判断前者是否与列表中某个元素相同
5.评估函数 eval()
去掉参数最外侧引号并执行余下语句的函数
eval()函数的基本使用格式:
eval(<字符串或字符串变量>)
三,编程实现
1.基础版代码部分:
temperature=input('请输入带有单位的温度值:')
if temperature[-1] in ['f','F']:
t=(eval(temperature[0:-1])-32)/1.8
print("输出的摄氏温度是{:.3f}C".format(t))
elif temperature[-1] in ['c','C']:
f=1.8*eval(temperature[0:-1])+32
print("输出的华氏温度是{:.3f}F".format(f))
else:
print("你的输入有误!")
运行效果:
2.进阶版代码部分(可循环在终端窗口或一般运行窗)
while True:
print("*"*10+'\n')
temperature=input('请输入带有单位的温度值(输入break退出):')
if temperature[-1] in ['f','F']:
t=(eval(temperature[0:-1])-32)/1.8
print("输出的摄氏温度是{:.3f}C".format(t))
elif temperature[-1] in ['c','C']:
f=1.8*eval(temperature[0:-1])+32
print("输出的华氏温度是{:.3f}F".format(f))
elif temperature=='break':
break
else:
print("你的输入有误!")
print("*"*10+'\n')
运行效果:
最后,文中如有不足,欢迎指正!
后期也会增加其他的内容!学习永无止步!