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

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

  (1) break

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

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

  (2) continue 

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

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

  (3) pass

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

  (4) exit(code)

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

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

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

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

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

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

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

 # 举例3
for i in range(1, 10, 1):
print(i)
if i == 3:
continue
print("****")
# print("&")
# 输出结果:
#
# ****
#
# ****
#
# 4 # 我们注意到,循环到3的时候跳过打印星号,然后继续执行3直到循环结束
# ****
#
# ****
#
# ****
#
# ****
#
# ****
#
# ****

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

 # 举例4
num = 1
while num < 10:
print(num)
if num == 3:
num += 1
continue
num += 1
print("****")
# 输出结果:
# 输出结果:
#
# ****
#
# ****
#
# 4 # 我们注意到,循环到3的时候跳过打印星号,然后继续执行3直到循环结束
# ****
#
# ****
#
# ****
#
# ****
#
# ****
#
# ****

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

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

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

 # 举例6:
num = int(input("请输入一个大于0的整数:"))
if num < 10:
print("You are right")
elif num >=10 and num < 20:
exit(10) # 10的标记位
else:
exit(12)
# 如果输入:15
# 显示exit的位置为10的标记位
# 输出结果:
# 请输入一个大于0的整数:15
#
# Process finished with exit code 10 # 10的标记位 # 如果输入:20
# 显示的位置为12的标记位
# 输出结果:
# 请输入一个大于0的整数:20
#
# Process finished with exit code 12 # 12的标记位

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

 # 举例7
# 可以用布尔型进行控制
flag = True
age = 50
while flag:
user_input_age = int(input("Age is : "))
if user_input_age == age:
print("You are right!", end="\r") # 光标回复到最后一个位置
flag = False
elif user_input_age > age:
print("is bigger!, try again!", end="\r") # 光标回复到最后一个位置
else:
print("is samller, try again", end="\r") # 光标回复到最后一个位置
print("程序结束!", end="\r")
# 输入50,让程序停止运行
# 输出结果:
# Age is : 50
# 跳出程序

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

 # 举例8
# 两层while循环
num1 = 0
while num1 <= 5:
print(num1, end="_")
num2 = 0
while num2 <= 7:
print(num2, end="-")
num2 += 1
num1 += 1
print(end="\n")
# 输出结果:
# 0_0-1-2-3-4-5-6-7-
# 1_0-1-2-3-4-5-6-7-
# 2_0-1-2-3-4-5-6-7-
# 3_0-1-2-3-4-5-6-7-
# 4_0-1-2-3-4-5-6-7-
# 5_0-1-2-3-4-5-6-7-

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

 # 举例9
# 做一个九九乘法表
count = 1
print("99乘法表如下:")
while count <= 9:
num1 = 1
while num1 <= count:
num2 = count
if count == 3 and num1 == 2 or num1 == 3:
print(num1, "*", num2, "=", (num1 * num2), end=" ")
elif count == 4 and num1 == 2 or num1 == 4:
print(num1, "*", num2, "=", (num1 * num2), end=" ")
else:
print(num1,"*",num2,"=", (num1 * num2), end=" ")
num1 += 1
print(end="\n")
count += 1
# 99乘法表如下:
# 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

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

 # 举例10
# 任意指定一个矩形的高度和宽度,并生成这个矩形
# height 高度 Width 宽度
height = int(input("请输入高度,Height= "))
width = int(input("请输入宽度,Width= "))
print("矩形图形如下: ")
num_heigth = 1
while num_heigth <= height:
num_width = 1
while num_width <= width:
print("*", end="")
num_width += 1
print()
num_heigth += 1
print("结果为{矩形的高度为:%d 矩形的宽度为:%d}" % (height, width))
# 输出结果:
# 请输入高度,Height= 10
# 请输入宽度,Width= 20
# 矩形图形如下:
# ********************
# ********************
# ********************
# ********************
# ********************
# ********************
# ********************
# ********************
# ********************
# ********************
# 结果为{矩形的高度为:10 矩形的宽度为:20}

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

 # 举例11
# 输出一个直角三角形,用户指定输出行数
# *
# **
# ***
# ****
num1 = int(input("请输入要生成的直角三角形的行数: "))
line = 0
num = 1
while line < num1: # 打印多少行
colum = 0 # 重新初始化循环再次执行
while colum < num: # 每行打印多少个星
print("*", end="")
colum += 1
print()
line += 1
num += 1
# 输出结果:
# 请输入要生成的直角三角形的行数: 10
# *
# **
# ***
# ****
# *****
# ******
# *******
# ********
# *********
# **********

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

 # 举例12
# 输出一个倒直角三角形,用户指定输出行数
# ****
# ***
# **
# **
# *
num1 = int(input("请输入要生成的直角三角形的行数: "))
line = 0
num = num1
while line < num1: # 打印多少行
colum = 0 # 重新初始化循环再次执行
while colum < num: # 每行打印多少个星
print("*", end="")
colum +=1
num -= 1
print()
line += 1
# 输出结果:
# 请输入要生成的直角三角形的行数: 11
# ***********
# **********
# *********
# ********
# *******
# ******
# *****
# ****
# ***
# **
# *

总结:

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

Python笔记_第一篇_面向过程_第一部分_6.语句的嵌套的更多相关文章

  1. Python笔记_第一篇_面向过程_第一部分_2.内存详解

    Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语 ...

  2. Python笔记_第一篇_面向过程_第一部分_6.条件控制语句(if)

    Python正如其他语言一样存在两种常用的逻辑判断体(也叫结构化程序设计).所谓逻辑判断体是通过你想要完成的编程思路,通过在逻辑判断体中的相互判断和作用得到你想要的结果.逻辑判断体也叫控制语句,Pyt ...

  3. Python笔记_第二篇_面向过程_第二部分_2.路径、栈和队列、内存修改

    这一部分分三个主题进行讲解,主要为后面的模块.包.第三方库的概念补充一些相关的内容. 1. 路径(Path): 相对路径和绝对路径. 举例1:我们先导入一个os库(模块)来观察一下路径 import ...

  4. 四、java基础-面向过程_对象_类中可出现的因素

    1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...

  5. python自动化开发-[第五天]-面向过程、模块、包

    今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回 ...

  6. python第四周迭代器生成器序列化面向过程递归

      第一节装饰器复习和知识储备------------ 第一节装饰器复习和知识储备------------ def wrapper(*args,**kwargs): index(*args,**kwa ...

  7. [Python笔记]第八篇:模块

    本篇主要内容:python常用模块用法介绍 什么是模块 模块,用一大段代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性 ...

  8. [Python笔记]第三篇:深浅拷贝、函数

    本篇主要内容:深浅拷贝,自定义函数,三目运算,lambda表达式, 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import ...

  9. python之迭代器、生成器、面向过程编程

    一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不 ...

随机推荐

  1. sprngmvc+restFul 请求报错:404

    服务端代码 control类 @RequestMapping(value="getUser",method = RequestMethod.POST) @ResponseBody ...

  2. UVA - 11346 Probability(概率)(连续概率)

    题意:在[-a, a]*[-b, b]区域内随机取一个点P,求以(0, 0)和P为对角线的长方形面积大于S的概率(a,b>0, S>=0). 分析: 1.若长方形面积>S,则选取的P ...

  3. EUI库 - 9 - 数据集合 - 数组集合

      ArrayCollection  当数组内的数据被修改了(增删改),组件能有效的获知 myCollection.addEventListener(eui.CollectionEvent.COLLE ...

  4. Java enum应用小结

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...

  5. python期末复习—列表

    列表:列表元素需用逗号分隔,放在方括号里,如:list=['Q',15];元素类型可以是数字,单个字符,字符串,列表.字符串和字符需要用单引号引起来. 访问列表:print(列表名[0])访问第一个元 ...

  6. 强制浏览器以IE8版本运行

    做为一个开发人员,经常被要求前端页面兼容ie8及以上,所以有时候我们希望ie默认以ie8的版本打开我们的页面. 1.“文档模式”: 在html页面中加入类似下面的代码: <meta http-e ...

  7. String 字符串,heredoc,nowdoc

    一个字符串可以用 4 种方式表达: 单引号 双引号 heredoc 语法结构 nowdoc 语法结构(自 PHP 5.3.0 起) 单引号 定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ' ...

  8. MySQL视图和事务

    视图的操作                                                                                                ...

  9. TX2Ubuntu16.04上安装 kinectV2

    本文参考   https://www.ncnynl.com/archives/201706/1780.html 参考    https://blog.csdn.net/qq_33835307/arti ...

  10. Window Jdk配置(win7/win10都可以)

    在计算机-右键属性-高级系统设置-环境标量-系统变量下进行如下配置: 1.新建->变量名:JAVA_HOME变量值:D:\Java\jdk1.6.0_12(这只是我的JDK安装路径) 2.编辑- ...