接第四天。
实列1
#e1.1TempConvert.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、赋值语句
程序中产生或计算新数据值的代码称为表达式,类似数学中的计算公式。表达式以表达单一功能为目的,运算后产生运算结果,运算结果的类型由操作符或预算符决定,如上述实例1中的第2、4、7等行都包含表达式。
Python语言中,“=”表示“赋值”,即将等号右侧的计算结果赋给左侧变量,包含(=)的语句称之为赋值语句。实例1中第2行表示将等号右侧input()函数的结果赋值给左侧变量TempStr。
此外,还有一种同步赋值语句,可以同时给多个变量赋值,基本格式如下:
<变量1>,…,<变量N>=<表达式1>,...,<表达式N>
同步赋值语句并非等同于简单的将多个单一赋值语句进行组合,因为,Python在处理同步赋值时首先运算右侧的N个表达式,同时将表达式的结果赋值给左侧N个变量。例如,互换变量x和y的值,如果采用单一语句,需要一个额外变量辅助,代码如下:
>>>t = x
>>>x = y
>>>y = t
如果采用同步赋值,一行语句即可:
>>>x,y = y,x
同步赋值语句可以使赋值过程变得更简洁,通过减少变量的使用,简化语句表达,增加程序的可读性。但是,应尽量避免将多个无关的单一赋值语句组合成同步赋值语句,否则会降低程序可读性。那么,如何判断多个单一赋值语句是否相关呢?一般来说,如果多个单一赋值语句在功能上表达了相同或相关的含义,或者在程序中属于相同的功能,都可以采用同步赋值语句。
2、input()函数
实例1中第二行使用了一个input()函数从控制台获得用户输入,无论用户在控制台输入什么内容,input()函数都以字符串类型返回结果。
TempStr = input("请输入带有符号的温度值:")
在获得用户输入之前,input()函数可以包含一些提示性文字,使用方法如下:
<变量> = input(<提示性文字>)
需要注意的是,无论用户输入的是字符或者是数字,input()函数统一按照字符串类型输出。在如下例子中,当用户输入数字1024.256时,input()函数以字符串形式输出。
>>>input("请输入:")
请输入:python
‘python’
>>>input("请输入:")
请输入:1024.56
'1024.56'
3、分支语句
分支语句是控制程序运行的一类重要语句,他的作用是根据判断条件选择程序的执行路径,使用方法如下:
if<条件1>:
<语句块1>
elif<条件2>:
<语句块2>
...
else:
<语句块N>
其中,if、elif、else都是保留字,else后面不增加条件,表示不满足其他if语句的所有其余情况。实例1中3、6、9行采用了“if-elif-else”类型的分支语句,如下:
if TempStr[-1] in ['F','f']:
elif TempStr[-1] in ['C','c']:
else:
其中,第三行if语句包含第一个条件表达式:
TempStr[-1] in ['F','f']
该表达式由保留字in组成,表示判断字符串TempStr的最后一个字符(TempStr[-1])是否在一个由'F'或者'f'组成的集合中,即TempStr[-1]是否等于'F'或者'f'。如果相等,则返回True,否则返回False。
对于if语句来说,当in表达式返回True时,执行第4、5行语句,如果返回False,则执行第六行的elif语句,判断下一个条件。第3行语句在程序语义上是判断用户输入的温度值是否是华氏度。
同理,第6行elif语句判断字符串TempStr的最后最后一个字符(TempStr[-1])是否在一个由'C'或者'c'组成的集合中,如果条件成立,则继续执行第七八行语句,否则执行第9行语句。第6行语句在程序语义上是判断用户输入的温度值是否是摄氏度。
第9行else语句没有判断条件,表示当if、elif条件都不满足时所执行的语句。该语句表示用户输入的内容不符合预定义的摄氏温度值或华氏温度值格式。对于该程序来说,用户输入错误。