• 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 # *

    总结:

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

  • 相关阅读:
    一网友推荐的书:框架设计(第2版):CLR Via C#
    线程与WinForm设计,防冻结,卡住窗体
    通用数据库操作辅助类DbHelper
    高级着色器语言(High Level Shader Language,简称HLSL)
    无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型
    根据RGB,计算灰度值
    温故而知新:WinForm/Silverlight多线程编程中如何更新UI控件的值
    [原创视频]PHP在netbeans中的简单使用
    自己封装的ASP.NET的SQLITE数据库的操作类
    《JavaScript征途》读后感
  • 原文地址:https://www.cnblogs.com/noah0532/p/8429904.html
Copyright © 2020-2023  润新知