目录
1.1.使用for循环的基本格式:(避免缩进错误,避免遗漏冒号)
1.3.1.range(start,stop)指定开始和结束
1.3.2.range(start,stop,step)指定开始、结束和步长
1.for循环
1.1.使用for循环的基本格式:(避免缩进错误,避免遗漏冒号)
range(n)返回0到n-1的整数序列,如range(5)生成的序列是从0开始小于5的整数,即0,1,2,3,4。
for i in range(n):
print(i)
#i的变量名是自己取的,默认是从0开始的
#range里的值是范围值,从0取到n-1,注意是不包含n的
for i in square: #打印每个元素
print(i)
#square是变量名,变量类型可以是列表,元组,字符串,字典,集合
1.2.for循环进阶用法
1.2.1.使用for循环求1-100的数字相加之和
sum=0 #注意先给sum定义一个初始值
for i in range(101): #注意range里面的值是101,才可以求到+100的值
sum+=i
print(sum)
>>>5050
1.2.2.使用for循环绘制四边形
import turtle
for i in range(4): #整体执行4次
turtle.forward(100)
turtle.left(90)
turtle.done()
1.3.range的高阶用法
1.3.1.range(start,stop)指定开始和结束
sum = 0
for i in range(2,4):
sum+=i
print(sum)
>>>5
1.3.2.range(start,stop,step)指定开始、结束和步长
sum = 0
for i in range(0,11,2): #求0-10之间的偶数相加
sum+=i
print(sum)
sum1 = 0
for i in range(1,10,2): #求0-10之间的奇数相加
sum1+=i
print(sum1)
>>>30
25
2.循环中停止:break和continue
break和continue都是用来控制循环结构的,主要是停止循环。
break 退出整个循环
continue 退出本次循环
2.1.break
- break
有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。
这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
for i in range(10):
if(i==5):
break
print(i)
>>>0
1
2
3
4
- continue
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
for i in range(10):
if(i==5):
continue
print(i)
>>>0
1
2
3
4
6
7
8
9
3.while循环
3.1.while循环的基本结构和流程
基本结构:
while 判断条件: 代码块
执行流程:
sum=0
i=1
while i<=10: #使用while循环计算1-10的数字之和
print(i)
sum+=i
i+=1
print(sum)
>>>1
2
3
4
5
6
7
8
9
10
55
3.2.while True
while True结构表示无限循环,通常结合break使用,否则陷入无限循环容易卡死。
因为while后面直接接的是布尔值True,所以会一遍又一遍的执行下面代码块的内容,陷入无限循环,需要添加break来结束循环。
while True:
str1=input()
if(str1=='爬山'):
print('去爬山')
break
else:
print('暂无计划')
和turtle模块结合使用:
import turtle
while True:
str1=turtle.textinput('输入','请输入待办计划')
if(str1=='爬山'):
print('去爬山')
turtle.write(str1,align='center',font=('宋体',20))
turtle.done()
break
else:
print('暂无计划')
让用户选择何时退出
message=''
while message != 'exit':
message=input()
if message != 'exit':
print(message)
>>>zy
zy
qqq
qqq
123
123
exit
***Repl Closed***
while循环注意避免无限循环!(因为其判断条件写在代码块里,容易丢失)
3.3.使用while循环来处理列表和字典
3.3.1.使用while循环遍历列表元素
a=[1,2,3]
#使用索引正序遍历
i=0
while i<len(a):
print(a[i])
i+=1
print(a)
#倒序遍历
while a: #只要a中还有元素,就会执行循环
c=a.pop()
print(c)
print(a)
>>>1
2
3
[1, 2, 3]
3
2
1
[]
3.3.2.在列表之间移动元素
假设有一个列表,其中包含新注册但还未验证的网站用户;验证这些用户后,如何将他们移到另一个已验证用户列表中呢?
我们使用while循环,在验证用户的同时将其从未验证用户列表中提取出来,再将其加入到另一个已验证的用户列表中。
unconfirmed_users=['alice','ben','tom','aodi']
confirmed_users=[]
while unconfirmed_users:
current_user=unconfirmed_users.pop()
print('验证用户'+current_user.title())
confirmed_users.append(current_user)
print('显示所有已验证的用户:',confirmed_users)
>>>验证用户Aodi
验证用户Tom
验证用户Ben
验证用户Alice
显示所有已验证的用户: ['aodi', 'tom', 'ben', 'alice']
3.3.3.删除包含特定值的所有列表元素
animals=['cat','dog','monky','goldfish','fish','cat']
print(animals)
#删除cat
while 'cat' in animals:
animals.remove('cat')
print(animals)
>>>['cat', 'dog', 'monky', 'goldfish', 'fish', 'cat']
['dog', 'monky', 'goldfish', 'fish']
3.3.4.使用用户输入来填充字典
可以使用while循环提示用户输入任意数量的信息,现在我们来创建一个调查程序,其中的循环每次执行都提示输入被调查者的名字和回答。我们将数据保存在一个字典中,方便关联。
responses={}
#设置一个标志,指出调查是否继续
polling_active=True
while polling_active:
#提示输入被调查者的姓名和回答
name=input('请输入您的姓名:')
response=input('请输入您对爱情的看法:')
#将答案存储在字典中
responses[name]=response
#看看是否还有人需要参与调查
repeat=input('还有人需要参与调查吗?')
if repeat=='没有':
polling_active=False #break也可以
print(responses)
#显示调查结果
for name,response in responses.items():
print(name,response)
>>>请输入您的姓名:小红
请输入您对爱情的看法:相信爱情
还有人需要参与调查吗?有
请输入您的姓名:小绿
请输入您对爱情的看法:相信爱情
还有人需要参与调查吗?有
请输入您的姓名:小蓝
请输入您对爱情的看法:喜欢小绿
还有人需要参与调查吗?没有
{'小红': '相信爱情', '小绿': '相信爱情', '小蓝': '喜欢小绿'}
小红 相信爱情
小绿 相信爱情
小蓝 喜欢小绿
***Repl Closed***
4.while循环和for循环的区别
- while循环一般不使用于遍历列表和数字序列
- while循环根据后面的表达式来判断循环是否结束,for循环一般从开始决定
- while循环适合用于解决事先不知道循环多少次的情况(知道执行次数的时候一般用for,条件循环时一般用while)
5.循环嵌套
循环里面还有循环,是可以嵌套很多层的。(本文仅介绍简单的循环嵌套)
遇到双重循环时,可以采用以下两种思路分析:
第一种:从程序执行的流程分析,从第一层循环开始分析,i等于0,进入第二层循环,j等于0这样依次分析下去。
第二种:先看第二层循环是干什么的,第一层循环就是将这个过程不停的重复。
for i in range(4):
for j in range(3):
print(i,j)
>>>0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
3 0
3 1
3 2
使用循环嵌套绘制一个多色图形
import turtle
#绘制一个嵌套循环的图形
turtle.speed(8)
colors=['orange','red','gray']
for i in range(3): #选择颜色
turtle.pencolor(colors[i])
for j in range(3): #一种颜色画几个
for k in range(3): #画几边形
turtle.forward(100)
turtle.left(360/3)
turtle.left(360/3)
turtle.left(360/9)
turtle.done()