Python笔记_第一篇_面向过程_第一部分_6.语句的嵌套
学完条件控制语句和循环控制语句后,在这里就会把“语言”的精妙之处进行讲解,也就是语句的嵌套。我们在看别人代码的时候总会对一些算法拍案叫绝,里面包含精妙和精密的逻辑分析。语句的嵌套也就是在循环体内可以嵌入条件结构语句,在条件结构语句中也可以嵌入循环体,进行互为条件的计算,计算出包罗万千的个中算法和得到想要的结果。
另外,我们在这里要补充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.语句的嵌套的更多相关文章
- Python笔记_第一篇_面向过程_第一部分_2.内存详解
Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语 ...
- Python笔记_第一篇_面向过程_第一部分_6.条件控制语句(if)
Python正如其他语言一样存在两种常用的逻辑判断体(也叫结构化程序设计).所谓逻辑判断体是通过你想要完成的编程思路,通过在逻辑判断体中的相互判断和作用得到你想要的结果.逻辑判断体也叫控制语句,Pyt ...
- Python笔记_第二篇_面向过程_第二部分_2.路径、栈和队列、内存修改
这一部分分三个主题进行讲解,主要为后面的模块.包.第三方库的概念补充一些相关的内容. 1. 路径(Path): 相对路径和绝对路径. 举例1:我们先导入一个os库(模块)来观察一下路径 import ...
- 四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
- python自动化开发-[第五天]-面向过程、模块、包
今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回 ...
- python第四周迭代器生成器序列化面向过程递归
第一节装饰器复习和知识储备------------ 第一节装饰器复习和知识储备------------ def wrapper(*args,**kwargs): index(*args,**kwa ...
- [Python笔记]第八篇:模块
本篇主要内容:python常用模块用法介绍 什么是模块 模块,用一大段代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性 ...
- [Python笔记]第三篇:深浅拷贝、函数
本篇主要内容:深浅拷贝,自定义函数,三目运算,lambda表达式, 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import ...
- python之迭代器、生成器、面向过程编程
一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不 ...
随机推荐
- 【转】Selenium 利用javascript 控制滚动条
http://luyongxin88.blog.163.com/blog/static/92558072011101913013149/ < xmlnamespace prefix =" ...
- BlackArch Linux 2019.06.01 宣布发布
导读 BlackArch Linux是一个基于Arch Linux的发行版,专为渗透测试人员和安全研究人员设计,并包含大量渗透测试和安全实用程序,已宣布发布2019.06.01版本. BlackArc ...
- TX2-刷机完成后安装程序ubuntu_linux命令&TX2学习总结
Linux教程|菜鸟教程:http://www.runoob.com/linux/linux-tutorial.html 认识linux:ping命令:ping命令是常用的网络命令ping网关:pin ...
- Maven:Unable to import maven project: See logs for details
一.开发环境 idea2019.1 + apache-maven-3.6.2 + JDK 1.8.0_111 二.问题说明 导入maven 多模块工程之后,发现工程没有多模块的展开,而且也没有在 Ex ...
- mysql数据库索引优化
参考 :http://www.cnblogs.com/yangmei123/archive/2016/04/10/5375723.html MySQL数据库的优化: 数据库优化的目的: ...
- web应用中并发控制的实现,各种锁的集合
参考:http://blog.csdn.net/xiangwanpeng/article/details/55106732 B/S构架的应用越来越普及,但由于它有别于C/S构架的特殊性,并发控制始终没 ...
- HZNU-ACM寒假集训Day8小结 最小生成树
最小生成树(无向图) Kruskal 给所有边按从小到大排序 形成环则不选择(利用并查集) P1546 最短网络 https://www.luogu.com.cn/problem/P1546 #i ...
- 吴裕雄--天生自然TensorFlow2教程:合并与分割
import tensorflow as tf # 6个班级的学生分数情况 a = tf.ones([4, 35, 8]) b = tf.ones([2, 35, 8]) c = tf.concat( ...
- Spring Boot Actuator Endpoints
常用内建的Endpoints: beans:显示当前Spring应用上下文的Spring Bean完整列表(包含所有ApplicationContext的层次) conditions:显示当前应用所有 ...
- [前端] VUE基础 (8) (vue-cli脚手架)
一.安装vue-cli脚手架 官方文档:https://cli.vuejs.org/zh/guide/cli-service.html Vue CLI 的包名称由 vue-cli改成了 @vue/c ...