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

  另外,我们在这里要补充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. ProxyPass与ProxyPassReverse及ProxyPassMatch的概述

    转载自:https://blog.csdn.net/xiaokui_wingfly/article/details/51481653 apache中的mod_proxy模块主要作用就是进行url的转发 ...

  2. python-模块安装

    首先到这个网址https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到自己想要用的模块,然后下载下来, 回到桌面找到文件所在位置进入cmd中, pip instal ...

  3. cf 261B.Maxim and Restaurant

    什么什么期望的,不会! (题解http://blog.sina.com.cn/s/blog_140e100580102wj4e.html(看不懂)) #include<bits/stdc++.h ...

  4. BZOJ 2226 [Spoj 5971] LCMSum

    题解:枚举gcd,算每个gcd对答案的贡献,贡献用到欧拉函数的一个结论 最后用nlogn预处理一下,O(1)出答案 把long long 打成int 竟然没看出来QWQ #include<ios ...

  5. 剑指offer_2.1_Day_5

    输入一个链表,按链表从尾到头的顺序返回一个ArrayList. import java.util.ArrayList; public class Solution { public ArrayList ...

  6. Alpha版(内部测试版发布)

    使用说明: 使用环境:android 5.0以上 使用流程: 1.注册与登陆 可以通过游客和用户两个模式登陆 用户模式:进入后会有模拟位置图,每一环代表不同的距离 底部菜单栏表示不同的功能,消息栏可以 ...

  7. gogs 小团队使用 2

    gogs 团队使用第二种方法如下, 前面办法参考前面的方法: 由 root 用户新建 organization, 比如说建立 hardware,然后把团队的 技术负责人拉到 owners 这个 tea ...

  8. Aspectj切入点语法定义

    例如定义切入点表达式  execution (* com.sample.service.impl..*.*(..)) execution()是最常用的切点函数,其语法如下所示: 整个表达式可以分为五个 ...

  9. 82.常用的返回QuerySet对象的方法使用详解:all,select_related

    1. all: 返回这个ORM模型的QuerySet对象. articles = Article.objects.all() print(articles) 2.select_related: 查找数 ...

  10. sqli-labs注入lesson3-4闯关秘籍

    ·lesson 3 与第一二关不同的是,这一关是基于错误的get单引号变形字符型注入 要使用 ') 进行闭合  (ps:博主自己理解为字符型注入,是不过是需要加括号进行闭合,适用于博主自己的方便记忆的 ...