python04
python循环语句
## 01. 程序的三大流程
* 在程序开发中,一共有三种流程方式:
* **顺序** —— **从上向下**,顺序执行代码
* **分支** —— 根据条件判断,决定执行代码的 **分支**
* **循环** —— 让 **特定代码 重复** 执行
以下案例主要以while为主
语法
初始条件设置 —— 通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件(计数器 + 1)
案例1
_date_ = '2018/10/6 16:54' 'yuyang' # 定义一个变量 i = 0 # 使用while语句循环执行重复代码块 # 语法格式关键字while 条件 循环次数 while i <= 5: # >1、条件为真就执行 print("Hello World") # >2、处理结果集 i += 1 print("输入i= %d 的次数" % i)
注意:循环结束后,之前定义的计数器条件的数值是依旧存在的
#### 死循环
> 由于程序员的原因,**忘记** 在循环内部 **修改循环的判断条件**,导致循环持续执行,程序无法终止!
_date_ = '2018/10/6 16:54' 'yuyang' # 定义一个变量 i = 0 # 使用while语句循环执行重复代码块 # 语法格式关键字while 条件 循环次数 while i <= 5: # >1、条件为真就执行 print("Hello World") # >2、处理结果集 # i += 1 print("输入i= %d 的次数" % i)
赋值运算符
| 运算符 | 描述 | 实例 | | --- | --- | --- | | = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c | | += | 加法赋值运算符 | c += a 等效于 c = c + a | | -= | 减法赋值运算符 | c -= a 等效于 c = c - a | | *= | 乘法赋值运算符 | c *= a 等效于 c = c * a | | /= | 除法赋值运算符 | c /= a 等效于 c = c / a | | //= | 取整除赋值运算符 | c //= a 等效于 c = c // a | | %= | 取 **模** (余数)赋值运算符 | c %= a 等效于 c = c % a | | **= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
python计数方式
常见的计数方法有两种,可以分别称为:
* **自然计数法**(从 `1` 开始)—— 更符合人类的习惯
* **程序计数法**(从 `0` 开始)—— 几乎所有的程序语言都选择从 0 开始计数
因此,大家在编写程序时,应该尽量养成习惯:**除非需求的特殊要求,否则 循环 的计数都从 0 开始**
_date_ = '2018/10/6 17:48' 'yuyang' # 定义一个结果集的变量 sum = 0 # 定义一个循环变量初始值 i = 0 # while求0-100之间的和 while i <= 100: print(i) # 累加0-100的数 sum += i # 计数器 i += 1 print("0-100的和为%d" % sum)
案例2
_date_ = '2018/10/6 19:25' 'yuyang' sum = 0 # 定义一个循环变量初始值 i = 0 # while求0-100之间的和 while i <= 100: # 0-100之间的偶数 if i % 2 == 0: print(i) sum += i # 计数器 i += 1 print("0-100之间偶数和为 %d " % sum)
break 和 continue
> `break` 和 `continue` 是专门在循环中使用的关键字
* `break` **某一条件满足时**,退出循环,不再执行后续重复的代码
* `continue` **某一条件满足时**,不执行后续重复的代码
> `break` 和 `continue` 只针对 **当前所在循环** 有效
break案例
_date_ = '2018/10/6 21:52' 'yuyang' # 定义一个初始变量 i = 0 while i <= 8: print(i) # break跳出使用
# break 只针对当前所在循环有效 if i == 3: break # 处理结果集 i += 1
在循环过程中**,如果 **某一个条件满足后**,**不** 再希望 **循环继续执行**,可以使用 `break` 退出循环
continue案例
_date_ = '2018/10/6 21:57' 'yuyang' i = 0 while i <= 10: """" 对于continue使用注意 范围是条件满足就跳出此次循环 否则就一直在条件之间进行循环,容易出现死循环情况 """ if i == 3: i += 1 continue print(i) i += 1
在循环过程中**,如果 **某一个条件满足后**,**不** 希望 **执行循环代码,但是又不希望退出循环**,可以使用 `continue`
也就是:在整个循环中,**只有某些条件**,不需要执行循环代码,而其他条件都需要执行
循环嵌套
* `while` 嵌套就是:`while` 里面还有 `while`
while 条件 1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
while 条件 2:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件 2
处理条件 1
案例3
_date_ = '2018/10/6 22:10' 'yuyang' # 定义一个初始化变量 row = 1 while row <= 5: col = 1 # 嵌套行的数字 while col <= row: print("*", end="") col += 1 # 输出换行 print("") row += 1
综合案例:打印九九乘法表
# coding=utf-8 # version=python2.3.0 # Tools:python 2018.2.3 _date_ = '2018/10/6 22:18' 'yuyang' """ **开发步骤** * 1. 打印 9 行小星星 * ** *** **** ***** ****** ******* ******** ********* * 2. 将每一个 `*` 替换成对应的行与列相乘 """ row = 1 while row <= 9: col = 1 while col <= row: # 使用格式化字符代替行和列并且相乘 print("%d * %d = %d" % (col,row,col * row), end="\t") col += 1 print("") row += 1
转义字符
**字符串中的转义字符** * `\t` 在控制台输出一个 **制表符**,协助在输出文本时 **垂直方向** 保持对齐 * `\n` 在控制台输出一个 **换行符** > **制表符** 的功能是在不使用表格的情况下在 **垂直方向** 按列对齐文本 | 转义字符 | 描述 | | --- | --- | | \\\\ | 反斜杠符号 | | \\' | 单引号 | | \\" | 双引号 | | \n | 换行 | | \t | 横向制表符 | | \r | 回车 |