Python基础——Task02 条件与循环
写在前面
上一篇 Task01 变量、运算符与数据类型 是对Python语言中最基本元素,“终结符”总结;从这一篇开始总结“如何将这些终结符穿起来”的方式,即产生式的形式表达。
1. 条件判断/条件控制
Python中的条件控制只有泛·if类表达
一种。即“如果……那么……”形式。
- if 语句:(多)单层结构
- if 语句嵌套:多层结构
if 语句
elif
是else if
的缩写,完全可以有多个elif
语法结构
if condition_1:
statement_block_1
elif condition_2: # 可以不存在
statement_block_2
else:
statement_block_3
特别的:由于是对于表达式的Boolean判断——if
判断还可以简写:
if x:
print('True')
else
print('False')
注意:
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块(
一般一个缩进单位是4个空格
) - 在Python中没有switch – case语句
- 只能使用第一篇中2.2 列举的Python比较运算符
- 比较运算符构成的语句的返回值是Boolean值:
True
orFalse
if 语句嵌套
在嵌套 if 语句中,可以把 if…elif…else 结构放在另外一个 if…elif…else 结构中
语法结构
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
2. 循环语句
Python 中的提供的循环语句有两种:
- while 循环
- for 循环
while 循环
语法结构
while 判断条件:
语句
注意:
- 在 Python 中 没有 do…while循环
- 如果循环体只有一条语句,可以写在一行
while (myFlag): print ('Python_Basic_Practice')
I. while 无限循环
可以通过设置条件表达式永远不为 false 来实现无限循环:
while 1 :
print("I Love Python")
注:
以上的无限循环你可以使用 CTRL/COMMAND + C 来中断循环
II. while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块
语法结构
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
for 循环
Python for循环可以遍历任何序列的项目,e.g. 一个列表或者一个字符串
语法结构
for循环的一般格式如下:for <variable> in <sequence>:
<statements>
else:
<statements>
break语句
使用 break
语句:用于跳出当前循环体
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
continue语句
使用 continue
语句:跳过当前的这次循环,直接开始下一次循环
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
# 打印的是1,3,5,7,9
注:
- 同样的,可以使用 CTRL/COMMAND + C 来中断循环;强制结束Python进程也可以。
写在最后
有几点补充:
input() 语句
一般可以用input()读取用户的输入,但要注意:
input()
返回的数据类型是str
多需要使用 Python数据类型转换函数 进行转换:e.g. int(x [,base])
,str(x)
range()函数
- 需要遍历数字序列,可以使用内置range()函数,它会生成数列。
for i in range(5):
print(i)
- 可以使用range指定区间的值
for i in range(5,9) :
print(i)
- 也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做’步长’)
for i in range(0, 10, 3) :
print(i)
for i in range(-10, -100, -30) :
print(i)
- 可以结合range()和len()函数以遍历一个序列的索引
a = ['Google', 'Amazon', 'Facebook', 'Microsoft', 'LinkedIn']
for i in range(len(a)):
print(i, a[i])
- 可以使用range()函数来创建一个列表
a = list(range(5))
pass语句
Python pass是空语句/占位语句,是为了保持程序结构的完整性。
while True:
pass # 等待键盘中断