内置函数range()
range()用于生成一个整数序列。 创建range对象的三种方法: 1.range(stop),创建一个(0,stop)之间的整数序列,步长为1。 2.range(start,stop),创建一个(start,stop)之间的整数序列步长为1。 3.range(start,stop,step),创建一个(start,stop)之间的整数序列,步长为step。 返回值是一个迭代对象。 range类型的优点:不管range对象表示的整数序列有多长,所有range占用的内存空间都是相同的。因为只需要储存start,stop,step。只有用到range对象时,才会计算序列中相关元素。 in与not in是判断整数序列中是否指定整数。
r1=range(10)
r2=range(1,10)
r3=range(1,10,2)
print(r1)
print(r2)
print(r3)
print(list(r1))
print(list(r2))
print(list(r3))
print(10 in r1)
print(9 in r1)
print(10 not in r2)
print(9 not in r2)
循环结构
反复做同一件事情的情况叫循环。 循环流程图图: 循环类型: while for-in
语法结构: while 条件表达式: 条件执行体(循环体)
选择结构的if与while的区别: if是判断一次,条件为True执行一行。 while判断N+1次,条件为True执行N行。
a=1
while a<10:
print(a)
a+=1
运行结果:1,2,3,4,5,6,7,8,9 while 喜欢的执行流程 四步循环法: 初始化变量,条件判断,条件执行体(循环体),改变变量。
while的循环流程: 例:从1加到五
sum=0
a=0
while a<=5:
sum+=a
a+=1
print('和为:',sum)
结果为15 例:计算1–100间的偶数和
a=1
sum=0
while a<=100:
if a%2==0:
sum+=a
a+=1
print('1--100的偶数和:',sum)
for-in循环 in表达从(字符串,列表)中依次取值,又称遍历。 for-in遍历对象必须是可迭代对象。
语法结构: for 自定义遍历 in 可迭代对象: 循环体
执行图: 循环体内不需要访问自定义变量,可将自定义变量替换为下划线。
for i in range(8):
print(i)
for _ in range(3):
print(2)
例:求1–100间的偶数和
sum=0
for i in range(1,101):
if i%2==0:
sum+=i
print('和为:',sum)
例:水仙花数 个为的三次方+十位的三次方+百位的三次方=本身为水仙花数
for i in range(100,1000):
a=i%10
b=i//10%10
c=i//100
if a**3+b**3+c**3==i:
print(i)
流程控制语句
break 用于结束循环结构,通常与if一起使用。 例 : 输入正确的密码最多三次
for _ in range(3):
m=input('请输入密码:')
if m=='8523':
print('密码正确')
break
else:
print('密码错误')
a=0
while a<3:
m=input('请输入密码:')
if m=='8523':
print('密码正确')
break
else :
print('密码错误')
a+=1
continue 用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用。 例:写出1–50之间5的倍数
for i in range(1,51):
if i%5==0:
print(i)
for i in range(1,51):
if i%5!=0:
continue
else:
print(i)
else语句 与else配合使用的三种情况; 例:输入三次次密码
for _ in range(3):
m=input('请输入密码:')
if m=='5523':
print('密码正确')
break
else:
print('密码错误')
else:
print('三次密码均输入错误')
a=0
while a<3:
m=input('请输入密码:')
if m=='5523':
print('密码正确')
else:
print('密码错误')
a+=1
else:
print('三次密码均输入错误')
else与谁对齐与谁搭配使用。
嵌套循环 循环结构中又嵌套另外完整的循环结构,其中内层循环作为外层循环的循环体执行。 例
for _ in range(3):
for _ in range(4):
print('*',end='\t')
else:
print()
例:打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
二重循环中的break和continue 用于控制本层循环。 例
for i in range(5):
for j in range(1,11):
if j%2==0:
break
print(j)
运行结果为5个1,第一次执行1%2!=0输出j=1,接着循环2%2=0,此时符合条件,内循环结束,从这里开始只执行外循环,只输出j的值为1,所以输出结果为5个1,相当于内循环无效。
例
for i in range(5):
for j in range(1,11):
if j%2==0:
continue
print(j,end='\t')
print()
输出结果为5次1,3,5,7,9。
外层循环一次,内层循环则循环一轮。建议不要嵌套太多循环容易搞蒙圈。
|