1. 控制流的元素
控制流语句的开始通常是条件,之后跟一个代码块,称为子句。
条件求值为布尔值,True 或 False, 控制流语句根据条件来决定做什么。
几乎所有控制流语句都使用条件。
代码块的3条规则:
①缩进增加时,代码块开始。
②代码块可以包含其他代码块。
③缩进减少为零,或减少为外面包围代码块的缩进时,代码块结束。
所有控制流语句都是以冒号结尾,后面跟一个新的代码块(子句)。
2. 控制流语句
- if 语句
if 语句的子句,在条件为 True 时执行;如果条件为 False,语句将跳过。
if name == 'Alice':
print('Hi Alice.')
- else 语句
if 子句后面有时也会跟着 else 子句,只有 if 语句的条件为 False 时,else 语句才会执行。
if name == 'Alice':
print('Hi Alice.')
else:
print('Hello, stranger.')
- elif 语句
elif 语句是“否则如果”,常跟在 if 语句或另一条 elif 语句后面。
它提供了另一个条件,仅在前面的条件为 False 时才检查这个条件。
if name == 'Alice':
print('Hi Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
如果 name == ‘Alice’ 为 False 并且 age <12 时,elif 语句就会执行。
如果两个条件都为 False,那么两个子句都会跳过,不执行。
如果有很多 elif 语句,仅有一条或者零条语句会被执行。
一旦一个语句的条件为 True,剩下的 elif 语句都不会执行,而自动跳过。
如下 :
if name == 'Alice':
print('Hi Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
elif age > 2000:
print('Unlike you, Alice is not an undead,immortal vampire.')
elif age > 100:
print('You are not Alice, grannie.')
同时,elif 语句的次序很重要,一旦找到一个 True 条件时,剩余的子句会自动跳过。
对于 elif 语句,最多只有一个子句被执行。
if name == 'Alice':
print('Hi Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
elif age > 100:
print('You are not Alice, grannie.')
elif age > 2000:
print('Unlike you, Alice is not an undead,immortal vampire.')
可以在最后的 elif 语句后面加上 else 语句,保证至少有一个且只有一个子句被执行。
也就是,如果每一个 if 语句和 elif 语句的条件都为 False,那么就执行 else 语句。
if name == 'Alice':
print('Hi Alice.')
elif age < 12:
print('You are not Alice, kiddo.')
else:
print('You are neither Alice nor a kiddo.')
- while 语句
只要 while 语句的条件为 True,while 子句中的代码就会执行。这一点和 if 语句类似,不同的是它们的行为。
if 子句结束时,程序继续执行 if 语句之后的语句;
但是 while 子句结束时,程序执行跳回到 while 语句开始处,常被称为"while 循环"
spam = 0
if spam < 5:
print('Hello, world.')
spam = spam +1
在while循环中,条件总是在每次“迭代”开始时检查(也就是每次循环执行时)。
如果条件为True,子句就会执行,然后,再次检查条件。
当条件第一次为False时,while子句就跳过。
spam = 0
while spam < 5:
print('Hello,world.')
spam = spam +1
- break 语句
如果遇到 break 语句,会马上退出 while 子循环。
在代码中,break 语句仅包含 break 关键字。
while True:
print('Pleaase type your name.')
name = input()
if name == 'your name':
break
print('Thank you!')
- continue 语句
和 break 语句一样,continue 语句用于循环内部。
如果程序遇到 continue 语句,就马上跳回到循环开始处,重新对循环条件求值(这同时也是执行到达循环末尾时发生的事)
while True:
print('Who are you?')
name = input()
if name != 'Joe':
continue
print('Hello, Joe. What is the password?')
password = input()
if password == 'swordfish':
break
print('Access granted.')
在用于条件时,0、0.0 和 ’ ’ (空字符串) 被认为是False,其他值被认为是 True
name = ''
while not name:
print('Enter your name:')
name = input()
print('How many guests will you have?')
numOfGuests = int(input())
if numOfGuests:
print('Be sure to have enough room for all your guests.')
print('Done')
Ctrl-C 终止循环
- for 循环和 range() 函数
for 循环和 range() 函数可以让让一个代码块执行固定次数。
fiveTimes-for.py
print('My name is')
for i in range(5):
print('Jimmy Five Times (' + str(i) +' )')
fiveTimes-while.py
print('My name is')
i = 0
while i < 5:
print('Jimmy Five Times (' + str(i) + ')')
i = i + 1
在 for 循环中使用 continue 语句时,continue 语句让 for 循环变量继续下一个值,和程序执行达到循环的末尾并返回开始一样。
只能在 while 和 for 循环内部使用 continue 和 break 语句。如果试图在别处使用这些语句,Python 将报错。
计算 0-100 的整数之和:
total = 0
for num in range(101):
total = total + num
print(total)
(End)