【Python从零到壹】Python的循环结构详解

举报
互联网老辛 发表于 2021/06/09 01:05:19 2021/06/09
【摘要】 欢迎大家来到互联网老辛的专栏《Python从零到壹》,在这里我将分享约300篇Python系列文章,所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。 从事教学工作以来,越来越觉得时间的宝贵,每届学生都要讲重复的课,从今年开始,我将逐步把分享这件事做下去。 您的关注、点赞和转发就是对互联网老...

欢迎大家来到互联网老辛的专栏《Python从零到壹》,在这里我将分享约300篇Python系列文章,所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。

从事教学工作以来,越来越觉得时间的宝贵,每届学生都要讲重复的课,从今年开始,我将逐步把分享这件事做下去。

您的关注、点赞和转发就是对互联网老辛的最大的支持,知识无价人有情,希望我们都能在人生路上开心快乐、共同成长。

1. 内置函数range()

用于生成一个整数序列

创建range对象的三种方式:

  • range(5) 创建一个从0到5,步长为1的整数序列。且包含0,不包含5;
  • range(5,10) 创建一个从5到10的整数序列,且步长为1
  • range(5,10,2)创建一个从5到10的整数序列,且步长为2

返回值是一个迭代器对象
range的优势: 不管range对象表示的整数序列有多长,所有的range对象占用的内存空间都是相同的。因为仅需要存储 start,stop,和step。

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

#第一种创建方式
r=range(10)

print(r) #range(0,10)
print(list(r)) #查看range对象中的整数序列[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#第二种创建方式
r2=range(1,10)
print(list(r2)) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
#第三种创建方式
r3=range(1,10,2)
print(list(r3)) #[1, 3, 5, 7, 9]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

另外我们可以使用in和not in 判断一个整数是否在序列中

r3=range(1,10,2)
print(list(r3)) #[1, 3, 5, 7, 9]
print(10 in r3) #False

  
 
  • 1
  • 2
  • 3

可以看到False表示10不在这个序列中

2. while循环

循环结构: 反复做同一件相同的事情,叫做循环结构
循环分类:

  • while
  • for -in

语法结构:
while 条件表达式
条件执行体(循环体)
在这里插入图片描述

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

a=1
#判断条件表达式
while a<10: print(a) a+=1

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

求和:

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

'''
计算0-100的和
'''
num1=0
sum=0
while num1<=100: sum+=num1 num1+=1
print('和为',sum)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

结果为:
在这里插入图片描述

加大难度: 计算0-100的偶数和

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

'''
计算0-100的和
'''
num1=1
sum=0
while num1<=100: if num1%2==0: sum+=num1 num1+=1
print('偶数和为',sum)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述

3. for - in 循环

在这里插入图片描述
for - in 循环

  • in 表达从字符串或者序列等中依次取值,又称为遍历
  • for-in遍历的对象必须是可迭代对象

a) 案例1 打印字幕

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

for item in 'python': print(item)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

依次从字符串中取出字母复制给item,并打印
在这里插入图片描述
range() 生成的一个整数序列也是可迭代的。

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

for i in range(1,20,2): print(i)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

b) 案例2 求1-100的偶数和

案例: 使用for循环计算1-100的偶数和

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14
'''
使用for循环计算1-100的偶数和
'''
sum=0
for i in range(1,101): if i%2: sum+=i

print("偶数和为", sum)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4. 流程控制语句break

用于结束循环结构,通常与分支结构if或者while一起使用

在这里插入图片描述

a) 密码验证案例

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

'''
从键盘录入密码,最多录入3次,如果正确就循环结束
'''
for item in range(3): pwd=input('请输入密码:') if pwd=='888888': print("密码正确") break else: print("密码不正确")

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
在这里插入代码片

  
 
  • 1

在这里插入图片描述
使用while循环解决

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

'''
从键盘录入密码,最多录入3次,如果正确就循环结束
'''
a=0
while a<3: pwd=input('请输入密码') if pwd=='0000': print('密码正确') break else: print("密码不正确") a+=1

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

5. 流程控制语句continue

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

它与break的区别是,break直接退出循环,

a) 案例1

要求输出1-50之间所有5的倍数

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

'''
输出5的倍数
5的倍数的共同点: 和5的余数为0的数字
'''
#方法1
for i in range(1,51): if i%5==0: print(i)

#方法2使用continue
for item in range(1,51): if item%5!=0: continue print(item)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

6. else语句

else除了和if搭配,还可以和while,for搭配;

在这里插入图片描述

案例1:密码案例

a)方法一
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14

for item in range(3): pwd=input("请输入密码") if pwd=='8888': print("密码正确") break else: print('密码不正确')
else: print("对不起你三次密码均输入错误,已经被锁定")

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

b) 方法2
# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14
a=0
while a<3: pwd=input("请输入密码") if pwd=='8888': print("密码正确") break else: print('密码不正确') a+=1
else: print("对不起你三次密码均输入错误,已经被锁定")

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

7.嵌套循环

在一个完整的循环体中又嵌套了一个循环体

分为外部循环和内部循环。

案例1

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 9:14
'''
输出一个三行四列的矩形

'''

for i in range(1,4):   #行表,执行3次 for j in range(1,5): #列表,执行四次 print('*',end='\t') print()#打行

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

案例2

打印直角三角形如下:
在这里插入图片描述

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
for i in range(1,10): #行数 for j in range(1,i+1): print('*',end='') print()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

案例3

九九乘法口诀
在这里插入图片描述

# 作者:互联网老辛
# 开发时间:2021/4/3/0003 18:38
for i in range(1,10): #行数 for j in range(1,i+1): print(i,'*',j, '=', i*j,end='\t') print()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

总结:
今天正值清明,中午去了朝阳公园,带小儿子出去放风。 公园里紫叶粉百花绽放,千步连翘不染尘。
这篇文章因为中间出去玩,更新了两次, 每一个案例都在电脑上测试过,没有任何问题,如果大家有更好的建议,欢迎一起交流学习。

文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。

原文链接:zmedu.blog.csdn.net/article/details/115414635

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。