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 | 回车 |

猜你喜欢

转载自www.cnblogs.com/yuyang123/p/9748996.html
今日推荐