这次我们通过解读下面这个温度转换的代码来学习:
#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("输入格式有误")
1注释
单行注释#
多行注释''' '''
'''
此脚本的功能是实现温度单位的转换。
用户输入带有符号的温度值,脚本会根据符号判断是华氏温度还是摄氏温度,
并将其转换为另一种温度单位输出。
如果输入格式不符合要求,脚本会给出相应提示。
'''
2保留字
python中有特定功能的字符,不能乱用
3字符串的使用
使用[ ]获取字符串中字符
索引:获取字符串里特定位置的字符
- 在大多数编程语言中,字符串的索引是从 0 开始的,第一个字符的索引为 0,第二个字符的索引为 1,依此类推。
- 此外,还可以使用负索引,负索引从字符串的末尾开始计数(导数),最后一个字符的索引为 -1,倒数第二个字符的索引为 -2
string = "Hello, World!" # 定义一个字符串
# 使用正索引访问字符
print(string[0]) # 输出: H
print(string[4]) # 输出: o
# 使用负索引访问字符
print(string[-1]) # 输出: !
print(string[-6]) # 输出: W
切片:获取字符串中一部分字符
切片的语法格式一般为 [start:stop:step]
, start
是起始索引(包含),stop
是结束索引(不包含),step
是步长(可选,默认值为 1)
# 定义一个字符串
string = "Hello, World!"
# 切片操作
print(string[0:5]) # 输出: Hello
print(string[:5]) # 输出: Hello 从字符串的开头开始,到索引 5 结束(不包含)
print(string[7:]) # 输出: World! 从索引 7 开始(包含),一直到字符串的末尾
print(string[::2]) # 输出: Hlo ol! 从字符串的开头开始,到字符串的末尾结束,步长为 2。即每隔一个字符取一个字符
print(string[::-1]) # 输出: !dlroW ,olleH 从字符串的末尾开始,到字符串的开头结束,步长为 -1。即反转字符串
我们来数一下 Hello, World!每个字母的顺序,可以看到:
- ,后有空格
- 标点也计入位数
看一下这行代码:
print("转换后的温度是{:.2f}C".format(C))
{ } 表示槽,后续变量填充到槽中
{:-2 }表示将C变量填充到这个位置时取小数点后2位
eval()去除引号
result = eval("2 + 3")
print(result) # 输出: 5
解读10行代码:
#TempConvert.py 注释华氏温度和摄氏温度互相转换
#用户输入温度值(带单位)
TempStr = input("请输入带有符号的温度值:")
#如果输入值带F f
if TempStr[-1] in ['F', 'f']:
#去掉单位进行摄氏转换计算
C = (eval(TempStr[0:-1]) - 32) / 1.8
#输出带单位摄氏温度(保留两位小数)
print("转换后的温度是{:.2f}C".format(C))
#如果输入值带C c
elif TempStr[-1] in ['C', 'c']:
#去掉单位进行华氏温度转换计算
F = 1.8 * eval(TempStr[0:-1]) + 32
#输出带单位华氏温度(保留两位小数)
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式有误")