Python学习笔记DAY5(循环)_for i in range(3):-程序员宅基地

技术标签: 学习  python学习  

目录

内置函数range()的使用

while循环

for-in循环(又称为for循环)

break、continue与else语句

流程控制语句break

流程控制语句continue

else语句

嵌套循环



  • 内置函数range()的使用

1、定义:用于生成一个整数序列

2、创建range对象的三种方式:

①range(stop)——创建一个以(0,stop)之间的整数序列,步长为1(从零开始,从stop结束,不包括stop)

②range(start,stop)——创建一个(start,stop)之间的整数序列,步长为1  

③range(start,stop,step)----创建一个(start,stop)之间的整数序列,步长为step

3、返回值是一个迭代器对象

4、判断指定的整数在序列中是否存在/不存在用in/not in

5、优点:不论range对象表示的整数序列有多长,所有range对象占用的内存空间是一样的。因为只需要储存start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素 ;通常会用range()函数作为for循环遍历的对象

#range的三种创建方式
r=range(10) #默认从0开始,从10结束(不包括10),默认相差1为步长
print(r) #返回值为迭代器对象,结果为range(0,10)
print(list(r)) #用于查看range对象中的整数序列 [0,1,2,3,4,5,6,7,8,9] list是列表

r=range(1,10) #指定了起始值,从1开始,从10结束(不包括10),默认相差1为步长
print(list(r))#[1,2,3,4,5,6,7,8,9]

r=range(1,10,2)#指定了起始值,指定了结束值,指定了步长
print(list(r))#[1,3,5,7,9]

#判断指定的整数在序列中是否存在 in,not in
print(3 in r)#True
print(7 not in r)#False
  • while循环

1、循环结构:反复做同一件事情,流程图如下

 2、循环的分类:

while

for-in

3、while循环语法结构:

while  条件表达式:

          条件执行体(循环体)

4、选择结构if 与循环结构while的区别:

if是判断一次,条件为True执行一次

while是判断N+1次,条件为True执行N次

a=1
if a<10:
    print(a)
    a+=1
#if只判断一次,输出结果为1
a=1
while a<10:
    print(a)
    a+=1
#while判断九次,输出结果为123456789

5、四步循环法

①初始化变量

②条件判断(次数)

③条件执行体(循环体)

④改变变量 

初始化的变量与条件判断的变量与改变的变量为同一个

#0到4的累加和
c=0
sum=0 #用于存储累加和
while c<5:
    sum+=c
    c+=1
print(sum)    

练习:1到100之间的偶数和

#1到100之间的偶数和
#法一
e=2
sum=0
while e<101:
    sum+=e
    e+=2
print(sum)
#法二
e=1
sum=0
while e<101:
    if e%2==0:#判断是否为偶数,还可以直接写为not e%2(0的布尔值为FALSE,其他数布尔值为TURE),改为e%2则为奇数累加和
        sum+=e#求和
    e+=1
print(sum)
  • for-in循环(又称为for循环)

1、定义:in 表示从(字符串、序列等)中依次取值,又称遍历。for--in 遍历的对象必须是可迭代对象(字符串、序列等)。 

2、语法结构

     for 自定义的变量 in 可迭代对象:

           循环体 

3、执行图

for item in "Python":#第一次取出的是P,将P赋值给item并打印输出,依此遍历字符串中的每一个字母,赋值,打印输出
    print(item)

for item in range(10): #依此取出0,1,2456789,赋值打印输出
    print(item)

4、如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_"(range()函数可以作为for循环的循环次数)

#如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_"(range()函数可以作为for循环的循环次数)
for _ in range(5): #0到4依此赋值,执行5次循环体,输出5次“喵喵”
    print('喵喵')

#1到100之间的偶数和
sum=0
for a in range(101):
    if not a%2:
        sum+=a
print(sum)

5、练习:输出100到999之间的水仙花数

水仙花数:个位的三次方+十位的三次方+百位的三次方=这个数(eg:153=1*1*1+5*5*5+3*3*3)

#输出100到999之间的水仙花数(eg:153=1*1*1+5*5*5+3*3*3)
for item in range(100,1000):
    ge=item%10
    shi=(item//10)%10
    bai=item//100 #分离出个位、十位、百位上的数
    if item==ge**3+shi**3+bai**3:#判断是否为水仙花数
        print(item)
  • break、continue与else语句

  • 流程控制语句break

非正常结束循环,即一旦满足某种条件就结束循环结构,通常与分支结构if一起使用

#从键盘录入密码,最多录入三次
#法一:for-in循环
mima=123456
for _ in range(3):
    a = int(input('请输入密码'))
    if a==mima:
        print('密码正确')
        break
    else:
        print('密码不正确')

#法二:while循环
i=0
while i<3:
    a=input('请输入密码')
    if a=='123456':
        print('密码正确')
        break#break语句放在最后,因为一旦执行,直接跳出循环,不再执行下一条语句
    else:
        print('密码错误')
    i+=1
  • 流程控制语句continue

用于结束当前循环,进入下一次循环,通常与分支结构的if一起使用 

#要求输出1-50之间所有5的倍数
for a in range(1,51):
    if a%5==0:
        print(a)

#使用continue语句
#使用for in循环
for a in range(1,51):
    if a%5!=0:
        continue#用于结束当前循环,进入下一次循环
    else:
        print(a)
#使用while循环
i=1
while i<51:
    if  i%5!=0:
        i += 1 #先改变变量,再continue退出循环,否则容易陷入无限循环
        continue
    print(i)
    i+=1 #记得改变变量,否则容易陷入无限循环
  • else语句

与else语句配合使用的三种情况

①if else ——if 条件不成立时执行else

②while else—— 循环正常执行完就执行else,如果碰到break(退出循环)就不会执行else

③for else —— 循环正常执行完就执行else,如果碰到break(退出循环)就不会执行else

#else语句与if、while、for搭配使用
for i in range(3):
    a = input('请输入密码')
    if a=='123456':
        print('密码正确')
        break
    else:#与if并列搭配使用
        print('密码不正确')
else:#与for并列搭配使用,如果执行循环体中的break则不会执行else,如果没有执行循环体中的break则会执行else
    print('三次密码均输入错误')

i=0
while i<3:
    a=input('请输入密码')
    if a=='123456':
        print('密码正确')
        break
    else:
        print('密码不正确')
    i+=1
else:#与while并列搭配使用,如果执行循环体中的break则不会执行else,如果没有执行循环体中的break则会执行else
    print('三次密码均输入错误')
  • 嵌套循环

1、循环结构中又嵌套了另外的完整循环结构,其中内层循环做为外层循环的循环体执行

#输出一个三行四列的矩形
for i in range(1,4):#行数为3
     for j in range(1,5):#列数为4
        print('*',end='\t')#end用于设置print函数输出的结尾,可以设置为空即end=‘’或end=”“,这是标准的不换行输出,
                           #end=‘\t’指结尾由一个制表位结束
     print()              #如果不手动设置end,默认end=‘\n',所以print函数默认换行输出

#输出一个九行直角三角形
for i in range(1,10):#行数
    for j in range(1,i+1):#列数;内循环执行次数与行数相同(第一行,一颗星;第二行,两颗星;···)
        print('*',end='\t')
    print()

#输出九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(i,'*',j,'=',i*j,end='\t')
    print()

2、二重循环中的break和continue用于控制本层循环

for i in range(5): #i代表外层循环循环执行5次
    for j in range(1,11):
        if j%2==0: #i=1:j=1,执行print(j);j=2,执行break,退出内部循环;i=2:j=1,执行print(j);j=2,执行break,退出内部循环;
            break
        print(j)

结果为

1
1
1
1
1
for i in range(5): #i代表外层循环循环执行5次
    for j in range(1,11):
        if j%2==0: #i=1:j=1,执行print(j);j=2,执行continue,退出内部本次循环;j=3,执行print(j);j=4,执行continue,退出内部本次循环;
            continue
        print(j,end='\t')
    print()    

结果为

1	3	5	7	9	
1	3	5	7	9	
1	3	5	7	9	
1	3	5	7	9	
1	3	5	7	9	
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kyxdjy/article/details/126774150

智能推荐

class和struct的区别-程序员宅基地

文章浏览阅读101次。4.class可以有⽆参的构造函数,struct不可以,必须是有参的构造函数,⽽且在有参的构造函数必须初始。2.Struct适⽤于作为经常使⽤的⼀些数据组合成的新类型,表示诸如点、矩形等主要⽤来存储数据的轻量。1.Class⽐较适合⼤的和复杂的数据,表现抽象和多级别的对象层次时。2.class允许继承、被继承,struct不允许,只能继承接⼝。3.Struct有性能优势,Class有⾯向对象的扩展优势。3.class可以初始化变量,struct不可以。1.class是引⽤类型,struct是值类型。

android使用json后闪退,应用闪退问题:从json信息的解析开始就会闪退-程序员宅基地

文章浏览阅读586次。想实现的功能是点击顶部按钮之后按关键字进行搜索,已经可以从服务器收到反馈的json信息,但从json信息的解析开始就会闪退,加载listview也不知道行不行public abstract class loadlistview{public ListView plv;public String js;public int listlength;public int listvisit;public..._rton转json为什么会闪退

如何使用wordnet词典,得到英文句子的同义句_get_synonyms wordnet-程序员宅基地

文章浏览阅读219次。如何使用wordnet词典,得到英文句子的同义句_get_synonyms wordnet

系统项目报表导出功能开发_积木报表 多线程-程序员宅基地

文章浏览阅读521次。系统项目报表导出 导出任务队列表 + 定时扫描 + 多线程_积木报表 多线程

ajax 如何从服务器上获取数据?_ajax 获取http数据-程序员宅基地

文章浏览阅读1.1k次,点赞9次,收藏9次。使用AJAX技术的好处之一是它能够提供更好的用户体验,因为它允许在不重新加载整个页面的情况下更新网页的某一部分。另外,AJAX还使得开发人员能够创建更复杂、更动态的Web应用程序,因为它们可以在后台与服务器进行通信,而不需要打断用户的浏览体验。在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于在不重新加载整个页面的情况下,从服务器获取数据并更新网页的某一部分。使用AJAX,你可以创建异步请求,从而提供更快的响应和更好的用户体验。_ajax 获取http数据

Linux图形终端与字符终端-程序员宅基地

文章浏览阅读2.8k次。登录退出、修改密码、关机重启_字符终端

随便推点

Python与Arduino绘制超声波雷达扫描_超声波扫描建模 python库-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏51次。前段时间看到一位发烧友制作的超声波雷达扫描神器,用到了Arduino和Processing,可惜啊,我不会Processing更看不懂人家的程序,咋办呢?嘿嘿,所以我就换了个思路解决,因为我会一点Python啊,那就动手吧!在做这个案例之前先要搞明白一个问题:怎么将Arduino通过超声波检测到的距离反馈到Python端?这个嘛,我首先想到了串行通信接口。没错!就是串口。只要Arduino将数据发送给COM口,然后Python能从COM口读取到这个数据就可以啦!我先写了一个测试程序试了一下,OK!搞定_超声波扫描建模 python库

凯撒加密方法介绍及实例说明-程序员宅基地

文章浏览阅读4.2k次。端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。2.使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。_凯撒加密

工控协议--cip--协议解析基本记录_cip协议embedded_service_error-程序员宅基地

文章浏览阅读5.7k次。CIP报文解析常用到的几个字段:普通类型服务类型:[0x00], CIP对象:[0x02 Message Router], ioi segments:[XX]PCCC(带cmd和func)服务类型:[0x00], CIP对象:[0x02 Message Router], cmd:[0x101], fnc:[0x101]..._cip协议embedded_service_error

如何在vs2019及以后版本(如vs2022)上添加 添加ActiveX控件中的MFC类_vs添加mfc库-程序员宅基地

文章浏览阅读2.4k次,点赞9次,收藏13次。有时候我们在MFC项目开发过程中,需要用到一些微软已经提供的功能,如VC++使用EXCEL功能,这时候我们就能直接通过VS2019到如EXCEL.EXE方式,生成对应的OLE头文件,然后直接使用功能,那么,我们上篇文章中介绍了vs2017及以前的版本如何来添加。但由于微软某些方面考虑,这种方式已被放弃。从上图中可以看出,这一功能,在从vs2017版本15.9开始,后续版本已经删除了此功能。那么我们如果仍需要此功能,我们如何在新版本中添加呢。_vs添加mfc库

frame_size (1536) was not respected for a non-last frame_frame_size (1024) was not respected for a non-last-程序员宅基地

文章浏览阅读785次。用ac3编码,执行编码函数时报错入如下:[ac3 @ 0x7fed7800f200] frame_size (1536) was not respected for anon-last frame (avcodec_encode_audio2)用ac3编码时每次送入编码器的音频采样数应该是1536个采样,不然就会报上述错误。这个数字并非刻意固定,而是跟ac3内部的编码算法原理相关。全网找不到,国内音视频之路还有很长的路,音视频人一起加油吧~......_frame_size (1024) was not respected for a non-last frame

Android移动应用开发入门_在安卓移动应用开发中要在活动类文件中声迷你一个复选框变量-程序员宅基地

文章浏览阅读230次,点赞2次,收藏2次。创建Android应用程序一个项目里面可以有很多模块,而每一个模块就对应了一个应用程序。项目结构介绍_在安卓移动应用开发中要在活动类文件中声迷你一个复选框变量

推荐文章

热门文章

相关标签