学Python数据科学,玩游戏、学日语、搞编程一条龙。
整套学习自学教程中应用的数据都是《三國志》、《真·三國無雙》系列游戏中的内容。
Python 中的条件语句根据特定布尔约束的计算结果为真或假,执行不同的计算或 *** 作。条件语句由 Python 中的 IF 语句处理。
到目前为止演示的代码都是由顺序执行组成的。但是实际情况是通常程序需要跳过一些语句,重复执行一系列语句,或者在要执行的备用语句集之间进行选择。
这就需要应用到 控制结构,控制结构指导程序中语句的执行顺序(称为程序的控制流)。
- if 语句
- 分组语句:缩进和块
- else 和 elif 子句
- 单行 if 语句
- 三元运算符条件表达式
- pass语句
if <布尔计算的表达式>:
<执行的python语句>
# 举例
x = 1
y = 2
if x < y: # 真
print('yes')
yes
if y < x: # 假
print('yes')
if x: # 假
print('yes')
if y: # 真
print('yes')
yes
if x or y: # 真
print('yes')
yes
if x and y: # 假
print('yes')
if '無雙' in '三國無雙': # 真
print('yes')
yes
if '郭嘉' in ['王異', '夏侯惇', '夏侯淵']: # 假
print('yes')
分组语句:缩进和块
评估条件为真的时候多条件选择情况。
过襄阳,诸葛亮说先主攻琮,荆州可有。先主曰:“吾不忍也。”——《三国志·蜀书·先主传》
如果曹 *** 攻打荆州,刘备有几个选择:
1.取琮而代之
2.向南撤离
3.联合孙权阻击曹 ***
4.直接投降。
if <布尔计算的表达式>:
<执行的python语句1>
<执行的python语句2>
<执行的python语句3>
Python 遵循一种称为越位规则的约定,遵守越位规则的语言通过缩进定义块。缩进是用来定义复合语句或块。
复合 if 语句如下所示。
if <布尔计算的表达式>:
<执行的python语句1>
<执行的python语句2>
...
<执行的python语句3>
<后续的语句>
if '孫尚香' in ['太史慈', '大喬', '丁奉']:
print('1')
print('2')
print('...')
print('n')
print('0')
else 和 elif 子句
else 语句
通过 else 子句评估一个条件并在它为真时执行一条语句。
if <布尔计算的表达式>:
<执行的python语句1>
else:
<执行的python语句2>
x = 20
if x < 50:
print('1111')
print('2222')
else:
print('2222')
print('1111')
1111
2222
x = 120
if x < 50:
print('1111')
print('2222')
else:
print('2222')
print('1111')
2222
1111
elif 语句
elif 可以指定任意数量的子句,有且只能有一个为真。
name = '孫権'
if name == '孫尚香':
print('{}!'.format(name))
elif name == '太史慈':
print('{}!'.format(name))
elif name == '孫権':
print('{}!'.format(name))
elif name == '大喬':
print('{}!'.format(name))
else:
print("谁啊?")
孫権!
还可以应用字典 *** 作数据的方法更加简单。
names = {
'孫権': '孫権!',
'太史慈': '太史慈!',
'大喬': '大喬!',
'孫尚香': '孫尚香!'
}
print(names.get('孫権', "谁啊?"))
孫権!
print(names.get('小喬', "谁啊?"))
谁啊?
单行 if 语句
if 的简写形式。
if <布尔计算的表达式>:
<执行的python语句>
# 等价于
if <布尔计算的表达式>: <执行的python语句>
if '三國無雙' in '真·三國無雙': print('真'); print('真'); print('真')
真
真
真
else 和 elif 也可以应用追加到单行的简写中。
x = 2
if x == 1: print('魏'); print('魏'); print('魏')
elif x == 2: print('蜀'); print('蜀')
else: print('晋'); print('晋')
蜀
蜀
三元运算符条件表达式
<执行的python语句1> if <布尔计算的表达式> else <执行的python语句2>
age = 27
s = '諸葛亮 未出山' if age < 21 else '諸葛亮 已出山'
s
'諸葛亮 已出山'
if else 标准语句。
if a > b:
m = a
else:
m = b
# 等价于
m = a if a > b else b
# <执行的python语句1> if <布尔计算的表达式> else <执行的python语句2>
x = y = 40
z = 1 + x if x > y else y + 2
z
42
# 如果<布尔计算的表达式>为真,<执行的python语句1>则返回并且<执行的python语句2>不执行。
z = (1 + x) if x > y else (y + 2)
z
42
# 如果<布尔计算的表达式>为假,<执行的python语句2>则返回并且<执行的python语句1>不执行。
x = y = 40
z = 1 + (x if x > y else y) + 2
z
43
pass语句
在不改变程序,pass用作占位符,是一个空的执行。
通常我们使用pass作为函数或条件子语句的占位符,表示具体的内容可以在未来进行填充。
if True:
pass
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)