内置range函数
用于生成一个整数序列
range(start,stop,step)
:在start值到stop值(不包括)范围内,按照step步长生成一个迭代对象
r = range(1,9,2)
print(r) # 迭代对象
print(list(r)) # 将其列表化,查看range对象的整数序列
range(1, 9, 2)
[1, 3, 5, 7]
print(list(range(10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 使用in / not in判断某个整数是否在序列中
print(10 in r)
False
print(1 in r)
True
while循环
语法结构:
while 条件表达式:
条件执行体(循环体)
选择结构的if
与循环结构while
的区别:
if
是判断一次,条件为True执行一次;
while
是判断N+1次,条件为True执行N次。
四步循环法:1、初始化变量;2、条件判断;3、条件执行体;4、改变变量
# 求0-9累加和
a=0
sum=0
while a<10:
sum+=a
a+=1 # 改变变量
print(sum)
45
for-in循环
in
表达从(字符串、序列等)中依次取值,又称为遍历,对象必须是可迭代对象
如果在循环体中无需使用自定义变量,可用_
代替
for _ in range(5):
print('python')
python
python
python
python
python
# 计算1-100之间的偶数和
sum=0
for item in range(1,101):
if item%2 ==0:
sum+=item
print(sum)
2550
# 输出100-999之间的水仙花数。举例:水仙花数为153=3*3*3+5*5*5+1*1*1
for i in range(100,1000):
if i==(int(str(i)[0]))**3+(int(str(i)[1]))**3+(int(str(i)[2]))**3:
print(i)
153
370
371
407
流程控制语句 - break语句
用于结束循环结构,通常与分支结构if
一起使用
# 从键盘录入密码,最多录入三次。若正确就结束
for i in range(3):
pwd = input('请输入密码:')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确,请重新输入')
请输入密码:666
密码不正确,请重新输入
请输入密码:666
密码不正确,请重新输入
请输入密码:8888
密码正确
# while循环
a=0
while a<3:
pwd = input('请输入密码:')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确,请重新输入')
a+=1
请输入密码:8888
密码正确
流程控制语句 - continue
用于结束当前循环,进入下一次循环,通常与分支结构中的if
一起使用
# 输出1-50之间所有5的倍数
for i in range(1,51):
if i%5==0:
print(i)
5
10
15
20
25
30
35
40
45
50
for i in range(1,51):
if i%5!=0:
continue
print(i)
5
10
15
20
25
30
35
40
45
50
else语句
else
还可以与for
循环/while
循环使用,若没有遇到break
,当循环结束就会执行else
;若遇到break
,则结束。
for i in range(3):
pwd = input('请输入密码:')
if pwd=='8888':
print('密码正确')
break # 密码正确就退出循环
else:
print('密码不正确,请重新输入')
else:
print('密码不正确,已锁住,请稍后再试') # 三次循环结束后执行
请输入密码:666
密码不正确,请重新输入
请输入密码:666
密码不正确,请重新输入
请输入密码:666
密码不正确,请重新输入
密码不正确,已锁住,请稍后再试
嵌套循环
循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行。
# 打印一个三行四列的矩形
for i in range(3): # 行数,执行三次
for j in range(4):
print('*',end='\t') # 不换行输出
print() # 换行
* * * *
* * * *
* * * *
# 打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%d'%(i,j,i*j),end='\t')
print()
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
二重循环中的break和continue
用于控制本层循环,不影响外层循环
for i in range(5): # 外循环执行5次
for j in range(1,11):
if j%2==0:
break # 当j=2时,满足条件,退出内循环
print(j)
1
1
1
1
1
for i in range(5): # 外循环执行5次
for j in range(1,11):
if j%2==0:
continue # 当j为偶数时,满足条件,进入下一次内循环
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