Python循环嵌套及用法

您所在的位置:网站首页 if-else嵌套 Python循环嵌套及用法

Python循环嵌套及用法

2024-07-16 11:08:12| 来源: 网络整理| 查看: 265

Python 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,如for里面还有for,while里面还有while,甚至while中有for或者for中有while也都是允许的。

寻找规律写循环 循环嵌套的规律

for循环可以简化程序中重复的代码。 for语句的格式如下:

for i in range(重复次数):        下级代码

py

for i in range(3): #外层循环变量 for j in range(i): #内层循环变量 print('up') print('walk') print('get')

外循环变量i是一个变化的值,变化的规律是0,1,2,刚好 与print(‘up’)每次要被执行的次数一致。我们就可以通过外层 循环变量i,来控制内循环的循环次数,完成操作。

print()命令拓展

end 是print()命令的一个参数,用来设定打印结果以什么结尾。

print(打印内容,end = 结尾内容 )

省略参数end时,默认end = ‘\n’,\n是换行符,所以执行 print()命令会默认换行。我们可以把end设为其他字符串。

py

print(1) print(2)

省略end参数,打印默认换行。运行结果:

1 2

py

print(1, end = '') print(2)

让end等于空字符串, 打印时不会换行。运行结果:

12

py

print(1, end = '*') print(2)

让end等于星号*, 打印时会以*结尾。运行结果:

1*2

for循环嵌套的应用 打印图形

py

for i in range(4): for j in range(5): print('*', end = '') print()

外循环:控制打印哪一行 内循环:打印一行中的每个星号

***** ***** ***** *****

py

for i in range(5): for j in range(i + 1): print('*', end = '') print()

利用循环变量控制每行星号的个数

* ** *** **** *****

py

for i in range(5): for j in range(i + 1): print('*', end = '') print() for i in range(4): for j in range(4 - i): print('*', end = '') print()

分成上下2个三角形

* ** *** **** ***** **** *** ** *

循环嵌套中的continue

continue语句可以结束当前一次循环,直接进入下一次循环。它的控制范围是有限的,只能控制一层循环。

py

for i in range(4): print('next') for j in range(3): print('yellow') print('red') if i == 2: continue print('green')

i=2 时,执行continue语句,跳过print(‘green’), 继续执行下一次外循环。

py

for i in range(4): print('next') for j in range(3): print('yellow') if i == 1: continue print('red') print('green')

i=1时,执行continue语句,跳过print(‘red’),继续执行下一次内循环。

内循环中的continue语句,只会结束当前的一次内循环,继续执行下一次内循环,不会影响到外循环中其他下级代码的执行。

循环嵌套中的break 遍历列表

列表的索引是从0开始的。 遍历列表:把列表中的元素,从头到尾一个一个地取出来使用。

py

data = ['X', 'W', 'Z'] for z in data: print(z)

z的值是data列表中的元素。

循环嵌套中的break

使用break语句可以结束循环。 在一个有多层循环嵌套的结构中,break的位置,决定了它能结束哪个循环。

py

for j in range(3): for k in range(3): print('小王') break print('小王子') break print('你好')

小王 小王子 你好

第一处break语句是内层for循环的下级代码,当程序 执行这个break语句时,只会结束内层for循环,继续执行print(‘小王子’) 第二处break语句是外层for循环的下级代码,当程序执 行这个break语句时,会结束外层for循环,继续执 行print(‘你好’)。

要分析出break会结束哪个循环,我们可以把每一层的循环结构看做一个整体,观察break语句,它 在哪一层,就会结束哪一层循环。

标志变量的使用

可以使用一个标志变量flag,来记录不同的状态。 flag=0,表示列表中有字母E flag=1,表示列表中没有字母E

py

data = input().split() flag = 0 #初始化,没有字母E for d in data: print(d) if d == 'E': flag = 1 break print(flag)

当条件成立时,表示列表中 有字母E,把flag设置为1, 再终止内层循环。 当输入为:G E Q时, 运行结果为:

G E 1

输入为:G F Q时, 运行结果为:

G F Q 0

综合应用

在for循环嵌套中同时使用标志变量和break语句。

py

flag = 0 for i in range(3): print('go') for j in range(4): if i == 1 and j == 2 print('Apple') flag = 1 break if flag == 1 break print('end')

内循环:当i=1并且j=2时,打印Apple,把flag设置为1,再执行break,会结束内循环。

go go Apple end

外循环:当flag=1时,会执行break,结束外循环。

标志变量一般用来记录不同的状态。 break语句可以结束它所在的那个循环。

项目分析 说明

每次运行程序,随机生成一个三位密码,用户猜出正确的密码即为成功。 用户可以多次输入,每当输入错误时,程序会分别对每一位数字给出提示,用户需要根据提示信息推测出正确的密码。

生成密码

生成三位的随机密码,每一位是0-9中的一个数字,三个数字各不相同。实现步骤:

创建列表,存储0-9 [‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9’] 打乱列表 [‘8′,’1′,’3′,’5′,’6′,’0′,’9′,’4′,’7′,’2’] 组合密码 ‘813’

代码实现:

py

import random #导入random库,才能使用shuffle()函数 numbers = ['0','1','2','3','4','5','6','7','8','9'] random.shuffle(numbers) #打乱列表numbers中的元素顺序 password = numbers[0] + numbers[1] + numbers[2]

shuffle( )是random库中的函数,它可以让列表中的所有元素随机排列。 使用时先导入random库

import random random.shuffle(列表名)

判断输入是否正确

生成密码以后,系统需要接收用户的输入,并判断输入的密码是否正确。

代码实现

py

import random numbers = ['0','1','2','3','4','5','6','7','8','9'] random.shuffle(numbers) password = numbers[0] + numbers[1] + numbers[2] while True: guess = input('请输入三位数密码:') if guess == password: print('密码正确') break

输入正确时,break语句结束while循环。

错误提示信息

用户输入错误时,需要针对每一位数字给出提示信息:

这一位数字正确,提示“正确”; 数字应该在密码的其他位置上,提示“在其他位置”; 数字不是密码中的任何一个数字,会提示“错误”。

代码实现:

py

while True: guess = input('请输入三位数密码:') if guess == password: print('密码正确') break else: for i in range(3): if guess[i] == password[i]: print(guess[i], '正确') elif guess[i] in password: print(guess[i],'在其他位置') else: print(guess[i],'错误')

判断数字属于哪种情况,并给出对应提示。

项目优化

优化1:检查输入是否是三位数

py

while True: guess = input('请输入三位数密码:') if len(guess) != 3: print('输入格式错误') continue

输入以后,先判断输入,位数错误跳出本次循环,继续下一轮输入。

优化2:猜测次数限制,成功失败效果

py

times = 5 unlock = 0 while times > 0: if guess == password: print('密码正确') unlock = 1 break

程序最后,通过unlock的值判断是否解锁成功:

py

if unlock == 1: print('解锁成功!') print('^O^') else: print('解锁失败!') print('*_*')


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭