# 程序结构分类:

- 顺序:程序中语句按照先后顺序执行

- 分支:程序根据测试条件执行不同的代码

- 循环:程序重复执行相同代码

# 分支

## 基本if语句

- 分支的基本语法

if 条件表达式:

语句1

语句2

语句3

·····

- 注意:

* 条件的表达式就是计算结果必须为布尔值的表达式。

* 表达式后面必须由冒号 :。

* 注意if后面出现的语句,如果属于if语句块,则必须同一个缩进等级。

* Python程序语言指定任何非0和非空(null)值为true,0 或者 null为False。

- 执行流程:

* (1)对布尔条件表达式进行判断。

* (2)条件为True:执行if后缩进的语句;条件为Flase:忽略if下方的缩进代码。

## if-else语句

- 基本形式为:

if 判断条件:

执行语句……

else:

执行语句……

- 执行流程:

* (1)对布尔条件表达式进行判断

* (2)条件为True:执行if后缩进的语句,继续执行程序的其他部分。

* (3)条件为Flase:执行else下方的缩进代码,继续执行程序的其他部分。

## elif语句:

- 基本形式为:

if 判断条件1:

执行语句1……

elif 判断条件2:

执行语句2……

elif 判断条件3:

执行语句3……

else:

执行语句4……

- 执行流程:

* 它检查多个表达式是否为真,并判断结果为真时执行特定代码块中的代码。

* 从上往下判断,某个判断为True,则执行该判断对应的语句,而忽略剩下的elif和else。

* 所有条件判断为Flase时,执行else下的语句。

name = "China"
age = 18
if name == "China":
print("China")
if name == "China" and age ==17:
print("if")
else:
print("else")
# 结果
China
else
a, b, c = 5, 2, 3
if a
print(a)
elif b
print(b)
else:
print(c)
# 结果
2

# 循环

## for 循环

- 形式:

for var in object:

循环体语句块

else:

语句块

- 执行过程:

- for循环依次把列表或元组中的每个元素迭代出来。

- else可以省略。for执行时,依次将可迭代对象object中的赋值给变量var。

- var每赋值一次,则执行循环体语句块一次。

- 循环执行结束后,如果有else部分,则执行对应的语句块。

- else部分只在正常结束循环时执行,用break跳出循环,则不会执行else语句块。

for i in [1, 2, 3, 4, 5]:
print(i)
if i == 2:
print("这是two")
else:
print("这不是two")
else :
print("over")
# 结果
1
这不是two
2
这是two
3
这不是two
4
这不是two
5
这不是two
over

- range(): 生成一个数字序列,具体范围可以设定

for i in range(1,10):
print(i,end="")
print("\n")
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代,判断是否除了自身外还有其他数字时公因子
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print ("%d 等于 %d * %d"%(num,i,j))
break # 跳出当前循环
else: # 循环的 else 部分
print (num, "是一个质数")
# 结果
123456789
10 等于 2 * 5
11 是一个质数
12 等于 2 * 6
13 是一个质数
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一个质数
18 等于 2 * 9
19 是一个质数

## while循环

- 基本形式:

while 测试条件:

循环体

else:

语句块

- 执行过程:

- 与for循环类似,可在循环体中使用break,continue语句。else也可以省略。

- 表示当测试成立时,就循环,循环次数不确定

- 执行语句可以是单个语句或语句块。

- 测试条件可以是任何表达式,任何非零、或非空(null)的值均为true。

- 当判断条件假false时,循环结束。

i = 0
while (i < 5):
print("the i is:%d" % i)
i =i + 1
else:
print("over")
# 结果
the i is:0
the i is:1
the i is:2
the i is:3
the i is:4
over
## break、pass、continue
- break 语句 在语句块执行过程中终止循环,并且跳出整个循环
i = 0
while (i < 9):
print("the i is:%d" % i)
i =i + 1
if i == 5:
break
else:
print("over")
# 结果
the i is:0
the i is:1
the i is:2
the i is:3
the i is:4
- continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
for letter in "python":
if letter == 'h':
continue
print ("当前字母 :", letter)
# 结果
当前字母 : p
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n
- pass 语句 pass是空语句,是为了保持程序结构的完整性。(占位符)
for i in range(10):
pass
print(i,end=" ")
# 结果
0 1 2 3 4 5 6 7 8 9