条件语句
默认情况下,Python脚本中的语句从上到下依次执行。如果有逻辑处理需要,可以通过以下两种方式改变执行的顺序:
- 条件执行:如果某个表达式为真,则执行这个语句块;
- 重复执行:只要某个表式一直为真,则会重复执行一个语句或块。
在这节中,我们将学习到 if/else/elif 语句。因此前几节掌握的比较运算符和逻辑运算符在这里就会变得很有用。
if
在python和其他程序语言中,关键词 if
用于检查条件是否真,并依此结果决定是否执行代码块。记住冒号后换行代码要缩进。
# 语法形式
if condition:
this part of code runs for truthy conditions
演示例子:
a = 3
if a > 0:
print('A 是正数')
# A 是正数
if else
如果 if
条件是 true
那么第一个代码块将被执行,否则 else 条件将被运行。
# 语法形式
if condition:
this part of code runs for truthy conditions
else:
this part of code runs for false conditions
演示例子:
a = 3
if a < 0:
print('A 是负数')
else:
print('A 是正数')
上边的逻辑判断为假,因此else块被执行。但如果我们的田间超出两个呢?这时候就会用到 elif
if elif else
在日常生活中,我们每天都要做决定。其中一些结果我们不能通过一两个条件得出,而是通过检查多个条件。编程和生活一样,也是充满条件的。当我们有多个条件时,我们使用 elif
。
# 语法形式
if condition:
code
elif condition:
code
else:
code
演示例子:
a = 0
if a > 0:
print('A 是正数')
elif a < 0:
print('A 是负数')
else:
print('A 是零')
短条件语句
通常条件和语句块比较简单的时候,也可以使用短语句形式(类比其他语言中的三目运算符)。
# 语法形式
code1 if condition else code2
# 实际举例
a = 3
print('A is positive') if a > 0 else print('A is negative')
# 上边短条件语句满足第一个条件,“A是正的”将被打印
嵌套条件语句
条件语句是可以多层嵌套的
# 语法形式
if condition:
code
if condition:
code
# 具体举例
a = 0
if a > 0:
if a % 2 == 0:
print('A是一个正整数且是偶数')
else:
print('A是一个正整数)
elif a == 0:
print('A是零')
else:
print('A是负数')
但其实我们可以通过使用逻辑运算符,来避免过多的写嵌套条件代码。
if 条件 and 逻辑运算符
# 语法形式
if condition and condition:
code
将上边嵌套代码改写举例:
a = 0
if a > 0 and a % 2 == 0:
print('A是一个正整数且是偶数')
elif a > 0 and a % 2 != 0:
print('A是一个正整数')
elif a == 0:
print('A是零')
else:
print('A是负数')
if 条件 or 逻辑运算符
# 语法形式
if condition or condition:
code
演示举例:
user = 'James'
access_level = 3
if user == 'admin' or access_level >= 4:
print('权限通过!')
else:
print('无权限!')
🌕 你做得很好。永远不要放弃,因为伟大的事情需要时间。你刚刚完成了第9天的挑战,你在通往伟大的道路上前进了9步。现在为你的大脑和肌肉做一些锻炼。
第9天练习
练习1级
- 使用
input("输入你的年龄:")
获取用户输入。如果用户年龄在18岁以上,请给出反馈为:你的年龄可以学开车了。如果得到的年龄在18或以下,请给出还差几岁可以开车。 输出如:
输入你的年龄: 30
你的年龄可以学开车了。
输入你的年龄: 15
你还需要 3 年才可以学开车。
- 使用
if...else
比较my_age
和your_age
。谁的年龄更大呢?同样使用input来获取你的年龄,其中我的年龄内置。你可以使用嵌嵌套条件打印year
表示相差1岁,years表示相差更多,同时支持一个条件 my_age = your_age 即年龄相等。举例输出:
# 假设我的年龄是25
请输入你的年龄: 30
你比我大 5 years。
- 使用input获得两个数字。如果a比b大返回 a大于b,如果a比b小返回 a小于b,否则返回a与b相等。
输入第一个数字: 4
输入第二个数字: 3
比较结果:4 大于 3
练习2级
- 写一个段逻辑代码,并根据分数范围给出他们对应的等级。
80-100, A
70-89, B
60-69, C
50-59, D
0-49, F
- 检查季节是秋季、冬季、春季还是夏季。
- 如果用户输入为:September, October或November,则季节为Autumn;
- 如果输入是December、January或February,这个季节是Winter;
- March,April或May,季节则是Spring;
- June月,July或August,则季节是Summer。
- 以下列举了一些水果:
fruits = ['banana', 'orange', 'mango']
练习3级
- 这里我们有一个人物字典。当然值你可以根据情况自己定义。
person={
'name': 'MegaQi',
'is_marred': True,
'skills': ['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address': {
'street': ' 上海静安寺北京西路',
'zipcode': '200041'
}
}
- 然后分别分别实现下边条件判断要求:
- 检查人员字典是否有 skill 键,如果有打印出对应的列表值。
- 检查人员字典是否有 skill 键,如果有进一步检查这个人是否拥有Python技能,并打印出结果。
- 如果这个人技能树仅是JavaScript和React,则打印”他是个前端开发人员“。如果技能树有Node、Python和MongoDB,则打印“他是个后端工程师”,如果这个人会Recat、Node和MongoDB,请打印“他是个全栈开发人员”,否则打印“未知标题” - 为了结果更准确可以使用嵌套条件语句。