Python笔记_第一篇_面向过程_第一部分_6.语句的嵌套

  学完条件控制语句和循环控制语句后,在这里就会把“语言”的精妙之处进行讲解,也就是语句的嵌套。我们在看别人代码的时候总会对一些算法拍案叫绝,里面包含精妙和精密的逻辑分析。语句的嵌套也就是在循环体内可以嵌入条件结构语句,在条件结构语句中也可以嵌入循环体,进行互为条件的计算,计算出包罗万千的个中算法和得到想要的结果。

  另外,我们在这里要补充4个关键字,也就是在语句嵌套中起到“调味剂”的作用。

  (1) break

  作用:跳出for和while循环,目的就是为了结束循环。

  注意:它只能跳出距离它最近的那一层循环。

  (2) continue 

  作用:跳出当前循环中的剩余语句,然后继续下一次循环。

  注意:跳出距离最近的循环。

  (3) pass

  作用:不做任何事情,起到占位的作用

  (4) exit(code)

  作用:结束整个程序。code = 退出记录号码。也可以默认不写。

  我们举几个例子,对于上面的语句嵌套进行示例展示:

  举例1:break举例:循环遍历0-9个数,如果循环到5的位置跳出这个循环,用for循环。

1 # 举例1
2 # break 语句举例
3 for i in range(1, 10, 1):
4     print(i, end="*")
5     if i == 5:
6         # 如果等于5,跳出这个循环
7         break
8 # 注意:这里的break和if组合,嵌套到for循环体中
9 # 输出结果:1*2*3*4*5*

  举例2:break举例:当循环到3的时候,跳出循环并打印"Thomas is a good man",用while循环。

 1 # 举例2
 2 # while 语句循环中的使用
 3 # 当运算到3这个数值跳出循环,并打印“Thomas is a good man"
 4 num = 1 # 初始化计数器
 5 while num <= 10:
 6     print(num)
 7     num += 1
 8     if num == 4:
 9        print("sunck is a good man")
10        break
11 # 输出结果:
12 # 1
13 # 2
14 # 3
15 # sunck is a good man

  举例3: continue举例:1-10共10个数,每打印一个数后面跟一个"***"号,但当计算到3的时候跳过打印星号,然后继续执行到循环结束,用for循环实现。

 1 # 举例3
 2 for i in range(1, 10, 1):
 3     print(i)
 4     if i == 3:
 5         continue
 6     print("****")
 7     # print("&")
 8 # 输出结果:
 9 # 1
10 # ****
11 # 2
12 # ****
13 # 3
14 # 4   # 我们注意到,循环到3的时候跳过打印星号,然后继续执行3直到循环结束
15 # ****
16 # 5
17 # ****
18 # 6
19 # ****
20 # 7
21 # ****
22 # 8
23 # ****
24 # 9
25 # ****

  举例4:同样上面的例子,用while循环实现。

 1 # 举例4
 2 num = 1
 3 while num < 10:
 4     print(num)
 5     if num == 3:
 6         num += 1
 7         continue
 8     num += 1
 9     print("****")
10 # 输出结果:
11 # 输出结果:
12 # 1
13 # ****
14 # 2
15 # ****
16 # 3
17 # 4   # 我们注意到,循环到3的时候跳过打印星号,然后继续执行3直到循环结束
18 # ****
19 # 5
20 # ****
21 # 6
22 # ****
23 # 7
24 # ****
25 # 8
26 # ****
27 # 9
28 # ****

  举例5:输入一个大于0的整数,适用pass去观察显示结果。

 1 # 举例5:
 2 num = int(input("请输入一个大于0的整数:"))
 3 if num < 10:
 4     print("You are right")
 5 else:
 6     pass
 7 # 我们在此输入:11
 8 # 输出结果:
 9 # 请输入一个大于0的整数:11
10 # 空  #没有任何结果

  举例6:同样上面的题目,输入15和21,用exit(),去观察显示结果。

 1 # 举例6:
 2 num = int(input("请输入一个大于0的整数:"))
 3 if num < 10:
 4     print("You are right")
 5 elif num >=10 and num < 20:
 6     exit(10)   # 10的标记位
 7 else:
 8     exit(12)
 9 # 如果输入:15
10 # 显示exit的位置为10的标记位
11 # 输出结果:
12 # 请输入一个大于0的整数:15
13 #
14 # Process finished with exit code 10  # 10的标记位
15 
16 # 如果输入:20
17 # 显示的位置为12的标记位
18 # 输出结果:
19 # 请输入一个大于0的整数:20
20 # 
21 # Process finished with exit code 12  # 12的标记位

  举例7:巧妙运行标记,一般默认标记变量用flag(随便这个),用布尔函数去控制循环体。输入50,跳出这个循环体。

 1 # 举例7
 2 # 可以用布尔型进行控制
 3 flag = True
 4 age = 50
 5 while flag:
 6     user_input_age = int(input("Age is : "))
 7     if user_input_age == age:
 8         print("You are right!", end="
") # 光标回复到最后一个位置
 9         flag = False
10     elif user_input_age > age:
11         print("is bigger!, try again!", end="
") # 光标回复到最后一个位置
12     else:
13         print("is samller, try again", end="
") # 光标回复到最后一个位置
14 print("程序结束!", end="
")
15 # 输入50,让程序停止运行
16 # 输出结果:
17 # Age is : 50
18 # 跳出程序

  举例8:运用两次while循环,每行打印0-1-2-3-4-5-6-7-这样的一排,然后在前面添加枚举到第几个了。默认6次。

 1 # 举例8
 2 # 两层while循环
 3 num1 = 0
 4 while num1 <= 5:
 5     print(num1, end="_")
 6     num2 = 0
 7     while num2 <= 7:
 8         print(num2, end="-")
 9         num2 += 1
10     num1 += 1
11     print(end="
")
12 # 输出结果:
13 # 0_0-1-2-3-4-5-6-7-
14 # 1_0-1-2-3-4-5-6-7-
15 # 2_0-1-2-3-4-5-6-7-
16 # 3_0-1-2-3-4-5-6-7-
17 # 4_0-1-2-3-4-5-6-7-
18 # 5_0-1-2-3-4-5-6-7-

  举例9:经典案例99乘法表。

 1 # 举例9
 2 # 做一个九九乘法表
 3 count = 1
 4 print("99乘法表如下:")
 5 while count <= 9:
 6     num1 = 1
 7     while num1 <= count:
 8         num2 = count
 9         if count == 3 and num1 == 2 or num1 == 3:
10             print(num1, "*", num2, "=", (num1 * num2), end="   ")
11         elif count == 4 and num1 == 2 or num1 == 4:
12             print(num1, "*", num2, "=", (num1 * num2), end="   ")
13         else:
14             print(num1,"*",num2,"=", (num1 * num2), end="  ")
15         num1 += 1
16     print(end="
")
17     count += 1
18 # 99乘法表如下:
19 # 1 * 1 = 1
20 # 1 * 2 = 2  2 * 2 = 4
21 # 1 * 3 = 3  2 * 3 = 6   3 * 3 = 9
22 # 1 * 4 = 4  2 * 4 = 8   3 * 4 = 12   4 * 4 = 16
23 # 1 * 5 = 5  2 * 5 = 10  3 * 5 = 15   4 * 5 = 20   5 * 5 = 25
24 # 1 * 6 = 6  2 * 6 = 12  3 * 6 = 18   4 * 6 = 24   5 * 6 = 30  6 * 6 = 36
25 # 1 * 7 = 7  2 * 7 = 14  3 * 7 = 21   4 * 7 = 28   5 * 7 = 35  6 * 7 = 42  7 * 7 = 49
26 # 1 * 8 = 8  2 * 8 = 16  3 * 8 = 24   4 * 8 = 32   5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64
27 # 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

  举例10:任意输入一个高度,一个宽度,用循环实现打印一个矩形。

 1 # 举例10
 2 # 任意指定一个矩形的高度和宽度,并生成这个矩形
 3 # height 高度  Width 宽度
 4 height = int(input("请输入高度,Height= "))
 5 width = int(input("请输入宽度,Width= "))
 6 print("矩形图形如下: ")
 7 num_heigth = 1
 8 while num_heigth <= height:
 9     num_width = 1
10     while num_width <= 
11         print("*", end="")
12         num_width += 1
13     print()
14     num_heigth += 1
15 print("结果为{矩形的高度为:%d  矩形的宽度为:%d}" % (height, width))
16 # 输出结果:
17 # 请输入高度,Height= 10
18 # 请输入宽度,Width= 20
19 # 矩形图形如下:
20 # ********************
21 # ********************
22 # ********************
23 # ********************
24 # ********************
25 # ********************
26 # ********************
27 # ********************
28 # ********************
29 # ********************
30 # 结果为{矩形的高度为:10  矩形的宽度为:20}

  举例11:与上面类似,输入一个行数,打印一个等腰三角形

 1 # 举例11
 2 # 输出一个直角三角形,用户指定输出行数
 3 # *
 4 # **
 5 # ***
 6 # ****
 7 num1 = int(input("请输入要生成的直角三角形的行数:  "))
 8 line = 0
 9 num = 1
10 while line < num1:     # 打印多少行
11     colum = 0  # 重新初始化循环再次执行
12     while colum < num:   # 每行打印多少个星
13         print("*", end="")
14         colum += 1
15     print()
16     line += 1
17     num += 1
18 # 输出结果:
19 # 请输入要生成的直角三角形的行数:  10
20 # *
21 # **
22 # ***
23 # ****
24 # *****
25 # ******
26 # *******
27 # ********
28 # *********
29 # **********

  举例12:与上面类似,输入一个行数,打印一个倒等腰三角形。

 1 # 举例12
 2 # 输出一个倒直角三角形,用户指定输出行数
 3 # ****
 4 # ***
 5 # **
 6 # **
 7 # *
 8 num1 = int(input("请输入要生成的直角三角形的行数:  "))
 9 line = 0
10 num = num1
11 while line < num1:     # 打印多少行
12     colum = 0  # 重新初始化循环再次执行
13     while colum < num:   # 每行打印多少个星
14        print("*", end="")
15        colum +=1
16     num -= 1
17     print()
18     line += 1
19 # 输出结果:
20 # 请输入要生成的直角三角形的行数:  11
21 # ***********
22 # **********
23 # *********
24 # ********
25 # *******
26 # ******
27 # *****
28 # ****
29 # ***
30 # **
31 # *

总结:

  关于语句的嵌套,有些逻辑技巧最好实践中进行总结,详细自己也能写出:即简洁、又符合逻辑、又美观而且精妙的程序结构来,要审视这是一种美。

原文地址:https://www.cnblogs.com/noah0532/p/8429904.html