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

智能推荐

18个顶级人工智能平台-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏27次。来源:机器人小妹  很多时候企业拥有重复,乏味且困难的工作流程,这些流程往往会减慢生产速度并增加运营成本。为了降低生产成本,企业别无选择,只能自动化某些功能以降低生产成本。  通过数字化..._人工智能平台

electron热加载_electron-reloader-程序员宅基地

文章浏览阅读2.2k次。热加载能够在每次保存修改的代码后自动刷新 electron 应用界面,而不必每次去手动操作重新运行,这极大的提升了开发效率。安装 electron 热加载插件热加载虽然很方便,但是不是每个 electron 项目必须的,所以想要舒服的开发 electron 就只能给 electron 项目单独的安装热加载插件[electron-reloader]:// 在项目的根目录下安装 electron-reloader,国内建议使用 cnpm 代替 npmnpm install electron-relo._electron-reloader

android 11.0 去掉recovery模式UI页面的选项_android recovery 删除 部分菜单-程序员宅基地

文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单

mnn linux编译_mnn 编译linux-程序员宅基地

文章浏览阅读3.7k次。https://www.yuque.com/mnn/cn/cvrt_linux_mac基础依赖这些依赖是无关编译选项的基础编译依赖• cmake(3.10 以上)• protobuf (3.0 以上)• 指protobuf库以及protobuf编译器。版本号使用 protoc --version 打印出来。• 在某些Linux发行版上这两个包是分开发布的,需要手动安装• Ubuntu需要分别安装 libprotobuf-dev 以及 protobuf-compiler 两个包•..._mnn 编译linux

利用CSS3制作淡入淡出动画效果_css3入场效果淡入淡出-程序员宅基地

文章浏览阅读1.8k次。CSS3新增动画属性“@-webkit-keyframes”,从字面就可以看出其含义——关键帧,这与Flash中的含义一致。利用CSS3制作动画效果其原理与Flash一样,我们需要定义关键帧处的状态效果,由CSS3来驱动产生动画效果。下面讲解一下如何利用CSS3制作淡入淡出的动画效果。具体实例可参考刚进入本站时的淡入效果。1. 定义动画,名称为fadeIn@-webkit-keyf_css3入场效果淡入淡出

计算机软件又必须包括什么,计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括______?...-程序员宅基地

文章浏览阅读2.8k次。计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括中央处理器和系统软件。按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机是脑力的延伸和扩充,是近代科学的重大成就之一。计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行..._计算机系统包括硬件系统和软件系统 软件又必须包括

随便推点

进程调度(一)——FIFO算法_进程调度fifo算法代码-程序员宅基地

文章浏览阅读7.9k次,点赞3次,收藏22次。一 定义这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO 算法并不能保证这些页面不被淘汰。这里,我_进程调度fifo算法代码

mysql rownum写法_mysql应用之类似oracle rownum写法-程序员宅基地

文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法

eclipse安装教程_ecjelm-程序员宅基地

文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm

Linux常用网络命令_ifconfig 删除vlan-程序员宅基地

文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping &lt;IP地址&gt;:发送ICMP echo消息到某个主机traceroute &lt;IP地址&gt;:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan

redux_redux redis-程序员宅基地

文章浏览阅读224次。reduxredux里要求把数据都放在公共的存储区域叫store里面,组件中尽量少放数据,假如绿色的组件要给很多灰色的组件传值,绿色的组件只需要改变store里面对应的数据就行了,接着灰色的组件会自动感知到store里的数据发生了改变,store只要有变化,灰色的组件就会自动从store里重新取数据,这样绿色组件的数据就很方便的传到其它灰色组件里了。redux就是把公用的数据放在公共的区域去存..._redux redis

linux 解压zip大文件(解决乱码问题)_linux 7za解压中文乱码-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏6次。unzip版本不支持4G以上的压缩包所以要使用p7zip:Linux一个高压缩率软件wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2tar jxvf p7zip_9.20.1_src_all.tar.bz2cd p7zip_9.20.1make && make install 如果安装失败,看一下报错是不是因为没有下载gcc 和 gcc ++(p7_linux 7za解压中文乱码