Python 3 Control Flow

Wafer Li ... 2016-12-12 Python
  • Python
  • 语言之路
大约 2 分钟

1. 概述
2. if 语句
3. while 语句
4. for 语句
5. 其他流程控制

# 1. 概述

控制流程包括 if forwhile

Python 的流程控制语句有些特殊

  1. 首先,关于流程控制不使用括号,只有函数和表达式才使用小括号
  2. 使用冒号指示语句块的开头

# 2. if 语句

下面是一个 if 语句的例子

#!/usr/bin/python
# Filename: if.py

number = 23
guess = int(input('Enter an integer : '))

if guess == number:
    print('Congratualtions, you guessed it!')
    print('But you do not win any prizes!')
elif guess < number:
    print('No, it is a little higher than that')
else:
    print('No, it is a little lower than that')
print('Done')
1
2
3
4
5
6
7
8
9
10
11
12
13
14

几个注意要点:

  1. Python 中为了减少缩进,使用 elif 来代替 if...else if...else
  2. 注意缩进,同样的缩进等级表示了同一个代码块
  3. Python 中没有 switch 语句,使用相应的 if..eles 结构来替代
  4. 注意不要漏掉冒号

# 3. while 语句

while 语句与其他语言无太大差别,讲几个注意事项

  1. 注意不要漏掉 while 语句末尾的冒号
  2. TureFalse 代表布尔类型
  3. while 可以有 else 语句,但一般不使用

# 4. for 语句

for 语句和其他语言有较大区别,以下是 Python 和 Java 语言的对比

# Python
for i in range(0, 4):
    print(i)
1
2
3

下面是等价的 Java

// Java
for(int i = 0; i < 4; i++) {
    System.out.println(i);
}
1
2
3
4

实际上 Python 的 for 语句更像 Java 中的 foreach 语句,下面是两种等价的语法形式

# Python
for word in wordList:
    print(word)
1
2
3

下面是 Java 语法表述

// Java
for(word : wordList) {
    System.out.println(word);
}
1
2
3
4

需要注意的几个要点:

  1. range() 函数的指示区间为左闭右开

  2. print() 函数会默认打印换行符

    通过指示 end 来进行单行打印 print(word, end='') 如果缓冲区中有字符,那么指定 flushTrue 来清除缓冲区 print(word, end='', flush=True)

# 5. 其他流程控制

breakcontinue 都和其他语言无异