循环

程序三大流程

  • 顺序 从上往下按照顺序执行
  • 分支 根据条件去判断执行代码的分支
  • 循环 让指定代码去重复的执行

while 循环基本使用

while语句以及缩进部分是一个完整的代码块

打印5遍helloworld

# 定义循环此时为I
i = 1

while  i <= 5:
    print("hello world")

    i += 1

print("循环后的次数i = %d"  %i)

执行
hello world

hello world

hello world

hello world

hello world

循环后的次数i = 6

注意:循环结束后,之前定义的计数器条件的数值是依旧存在的

Python 中的计数方法

  • 自然计数法(从1开始) 日常习惯
  • 程序计数法(从0开始) 程序语言习惯

循环计数

  1. 在while上定义一个变量,用于存放计算结果
  2. 循环内部,每次循环都用新的计算结果替换之前的计算结果
# 计算0-100之间的数字和

#假设变量为i ,结果为h

i = 0
h = 0
while  i <= 100:
    print(i)

# 每次循环结果加i

    h  += i

# 处理器每次都会增加1

    i += 1

print("0-100内的所有数字之和为i = %d"%h)

执行,

0-100内的所有数字之和为i = 5050

计算偶数之和

#计算0-100之间的偶数累计之和,
#假设计数变量为a,和为b

a = 0
b = 0

while  a <= 100:
    if a % 2 == 0:
        print(a)

        b += a

    a += 1

print("偶数和为b = %d"%b)

执行,

偶数和为b = 2550

反过来,如果是累计奇数之和

a = 0
b = 0

while  a <= 100:
    if a % 2 != 0:
        print(a)

        b += a

    a += 1

print("偶数和为b = %d"%b)

执行,

偶数和为b = 2500

break 和 continue

专门在循环中使用的关键字

  • break 某一条件满足后退出,不再执行
  • continue 某一条件满足后,不再执行后续重复的代码

break 是结束整个循环的过程
continue 只是结束本次循环,并不是中止整个循环的执行

# 某一条件满足时,退出循环,不再执行后续重复的代码

i = 0
while i < 10:
    if i == 3:
        break

    print(i)

    i += 1


print("ok")

i = 0
while i < 10:
    if i == 7:
        # 当i = 7 时,不希望执行此循环代码
        i += 1
        continue
    print(i)
    
    # 但是又不想退出循环,

    #重复执行其他代码
    i += 1

执行,

0

1

2

3

4

5

6

8

9

while 循环嵌套

就是 while 里面嵌套 while

  1. 打印小星星
## 使用 * 打印

#   打印以下结果:
*
**
***
****
*****


#定义计数器 a,a从1 计算,比较简单

a = 1

while a <= 5:
    print("*" * a)

    a += 1
  1. 使用循环嵌套打印
#循环次数为a,内部循环为b

a = 1

while  a <= 5:
    b = 1
    while b <= a:

#输出内容后不会换行
        print("*",end="")

        b += 1
#换行
    print("")


    a += 1
  1. 九九乘法表
1 * 1 = 1    
1 * 2 = 2    2 * 2 = 4    
1 * 3 = 3    2 * 3 = 6    3 * 3 = 9    
1 * 4 = 4    2 * 4 = 8    3 * 4 = 12    4 * 4 = 16    
1 * 5 = 5    2 * 5 = 10    3 * 5 = 15    4 * 5 = 20    5 * 5 = 25    
1 * 6 = 6    2 * 6 = 12    3 * 6 = 18    4 * 6 = 24    5 * 6 = 30    6 * 6 = 36    
1 * 7 = 7    2 * 7 = 14    3 * 7 = 21    4 * 7 = 28    5 * 7 = 35    6 * 7 = 42    7 * 7 = 49    
1 * 8 = 8    2 * 8 = 16    3 * 8 = 24    4 * 8 = 32    5 * 8 = 40    6 * 8 = 48    7 * 8 = 56    8 * 8 = 64    
1 * 9 = 9    2 * 9 = 18    3 * 9 = 27    4 * 9 = 36    5 * 9 = 45    6 * 9 = 54    7 * 9 = 63    8 * 9 = 72    9 * 9 = 81

先把它看成每个式子看成是一个 *

*
**
***
****
*****
******
*******
********
*********

再将每个* 换成对应的行与列相乘

#起始行为1
a = 1
#最大打印9行
while a <= 9:
    #定义起始列
    b = 1
    #最大输出列
    while b <= a:
        # print("*",end="")
        # "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐
        print("%d * %d = %d" % ( a , b , b * a ) ,end="\t")

        b += 1

    print("")

    a += 1

字符串中的转义字符

  • \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐
  • \n 在控制台输出一个 换行符

制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本

转义字符描述
\\反斜杠符号
\'单引号
\"双引号
n换行
t横向制表符
r回车
# \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐
print("1\t2\t3")
print("10\t20\t30")

# \n 在控制台输出一个 换行符
print("hello\n python")

# \" 可以在控制台输出 "
print("hello\"hello")

输出

1    2    3
10    20    30
hello
 python
hello"hello