运算符形式
语句1 if 表达式 else 语句2
注意:条件运算符不包含冒号,与 if 语句是有区别的。
流程解析:首先对 if 后的表达式进行判断,如果表达式的判断结果为True,则执行语句1,反之,则执行语句2。
执行流程如下图:
# 求a和b之间的最大值
a = 40
b = 30
m = a if a > b else b # 如果 a > b, 就把a赋值给m,反之则把b赋值给m
print('a和b中的较大值是:', m)
这里给出一个简单但很经典的代码样例:
a = 2 or 3 and 4
print('a = ', a)
运算符优先级分析情况如下:
结果为2,说明 and 运算符的优先级比 or 高。
python3.9 官方文档链接
https://docs.python.org/3.9/
在首页点击Language Reference,页面跳转后点击6.17-Operator precedence,即能看到以下内容:
表中运算符的优先级越往下越高,比如 and 的优先级比 or 高,括号 ((), [], {}) 的优先级通常是很高的。运算符的优先级一样高时,按照从左往右的顺序执行程序。
if 语句形式
if 条件表达式:
代码块
流程解析:if语句在执行时,会先对条件表达式进行求值判断,如果为True,则执行if后的语句;如果为False,则不执行。
示例代码:
num = 30
if num > 20:
print(num, '比20大')
运行结果:
代码块的概念
在默认情况下,if 语句只会控制紧跟其后的那条语句;
如果希望 if 语句可以控制多条语句,则可以在 if 后面跟一个代码块;
代码块中保存着一组代码,要么都执行,要么都不执行;
代码块要以缩进4个空格(1个Tab键)开始,直到代码恢复到之前的缩进级别时结束;
代码块就是⼀种为代码分组的机制。
# 获取用户输入的名字,如果名字是python,输出提示‘欢迎访问’
name = input('请输入名字:')
if name == 'python':
print('欢迎访问')
运行结果:
再次强调,input() 函数返回的是str类型,如需改用其他类型,一定要进行类型转换。
示例代码:
# 让用户输入工资
salary = input('请输入您的月收入:')
if salary >= 2000:
print('您能自食其力了')
运行结果:
报错提示,int 和 str 不能进行比较。在input() 返回的结果上加一个强制类型转换,正确代码修改如下:
# 让用户输入工资
salary = int(input('请输入您的月收入:'))
# salary = int(salary)
if salary >= 2000:
print('您能自食其力了')
运行结果:
if-else 语句形式
if 条件表达式:
代码块
else:
代码块
流程解析:if语句在执行时,会先对条件表达式进行求值判断,如果为True,则执行if后的语句;如果为False,则执行else后的代码块。
示例代码:
# 让用户输入工资
salary = int(input('请输入您的月收入:'))
# salary = int(salary)
if salary >= 2000:
print('您能自食其力了')
运行结果:
首先输入2500,验证 if 后的语句是否执行:
然后输入1500,验证 else 后的语句是否执行:
if-else 语句形式
if 条件表达式:
代码块
elif 条件表达式:
代码块
else:
代码块
流程解析:
# 让用户输入工资
salary = int(input('请输入您的月收入:'))
if salary >= 20000:
print('您的生活相当滋润')
elif salary >= 10000:
print('您已经本小康了')
elif salary >= 5000:
print('您能自食其力了')
else:
print('您要加油了')
练习题目:输入狗的年龄,将狗的年龄转化为人类对应的年龄,然后输出。转换规则如下:狗的前两岁,每一年相当于人类的10.5岁,之后每增加一岁,相当于人类增加四岁。
编写代码:
# 编写程序,获取狗的年龄,计算对应的人类年龄。
# 如果用户输入的是负数,输出一个提示信息
dog_age = float(input('请输入狗的年龄:'))
person_age = 0.0
# 输入年龄大于0才执行
if dog_age > 0.0:
# 如果狗小于2岁
if dog_age <= 2.0:
# 直接将年龄乘以10.5
person_age = dog_age*10.5
else:
# 先计算2岁以内的年龄
person_age = 2.0*10.5
# 计算2岁以外的年龄,再和之前计算的值相加
person_age += (dog_age-2.0)*4.0
print(dog_age,'岁的狗,年纪相当于',person_age,'岁的人')
# 用户输入负数,输出提示信息
else:
print('狗的年龄不能小于0')
运行结果:
首先验证,正常情况下计算是否正确:
输入一个负数,验证 else 控制的语句执行情况:
循环语句可以使指定的代码块重复指定的次数。循环语句分成两种,while循环和 for循环。
while 语句形式
while 条件表达式:
代码块
else:
代码块
流程解析:
循环三要素:
示例代码:
# 初始化表达式,初始化循环变量
i = 0
# 条件表达式,用于设置循环执行的条件
while i < 10:
print(i)
# 更新条件表达式,修改初始化变量的值
i += 1
else:
print('这里是else语句中的代码')
运行结果:
练习题目:求100以内所有偶数之和。
编写代码:
# 初始化循环变量
i = 0
# 定义一个变量,保存求和的结果
r = 0
# 设置条件表达式
while i < 100:
# 更新条件表达式
i += 1
# 判断整数是否是偶数
if i % 2 == 0:
r += i
print('r = ', r)
另外一种简便写法,从0开始,每次加2就是偶数,无需再次判断。代码改为:
# 初始化循环变量
i = 0
# 定义一个变量,保存求和的结果
r = 0
# 设置条件表达式
while i < 100:
# 从0开始,每加2就是一个偶数
i += 2
r += i
print('r = ', r)
运行结果: