(一) for 循环:
for...in循环,可以依次把list或tuple中的元素迭代出来
例1:数字输出
for i in range(5): #冒号不能丢
print(i)
例2:自定义间隔输出
for i in range(0,13,3): #从0开始,13结束,步进值为3(每次+3)
print(i)
例3:负数输出
for i in range(-10,-100,-20): #并不一定从0开始,且正负均可
print(i)
例4:针对字符串
name = "chongqing" #不一定是字符,中文也可
for i in name:
print(i,end="\t") #一个一个打印字符串中的每一个字符,end="\t"表示tab
例5:列表
a=["aa","bb","cc","dd"]
for i in range (len(a)):
print(i,a[i])
(二) while 循环:
只要条件满足,就会一直循环,条件不满足时停止
例1 :while 循环:有一个增长的过程
i = 0
while i < 5: # 冒号不能丢
print("当前是第%d次执行循环" % (i + 1))
print("i=%d" % i)
i += 1
注:做到这里的时候莫名其妙报错,结果是不小心在while前加了个空缩进了... 用Ctrl+Alt+L可以调整格式
小练习:1-100求和
(1)自己做的:
i = 1
sum = i
while i < 101:
sum += i
i += 1
print(sum)
出现的问题:结果是从2开始的,而且最后的结果是5051,而且每一个值都打印出来了
(2)老师答案
n = 100
sum = 0
counter = 1
while counter <= 100:
sum = sum + counter
counter +=1
print("1到%d的和为:%d"%(n,sum)) #双重占位
注1:代码结果 1到100的和为:5050 注2:本来这里我以为可以直接把counter换成上面我写的i,不要n=100,但是最后的counter变成了101,不符合counter<=100的条件才结束,但是后面打出来的就是1到101的和了 注3:另外如果想只输出最终结果,就不要把print放在while循环中
例3:在while...else在条件语句为false时执行else的语句块
count = 0
while count < 5:
print(count,"小于5")
count +=1
else:
print(count,"大于或等于5")
(三)break continue 和 pass
(1)break语句可以跳出for 和 while 的循环体
i = 0
while i < 10:
i=i+1
print("-"*30)
if i==5:
break #结束整个while循环
print(i)
(2)continue语句跳过当前循环,直接进行下一轮循环
i = 0
while i < 10:
i=i+1
print("-"*30)
if i==5:
continue #结束本次循环
print(i)
(3)pass是空语句,一般用做占位语句,不做任何事情
for letter in "Room":
if letter == 'o':
pass
print("pass")
print("letter")
(四)课后习题:用for循环和while循环打印出九九乘法表
(1)自做答案:
# for循环
i = 1
j = 1
mul = 1
for i in range(1, 10):
if i >= j:
mul = i * j
print("%d*%d=%d" % (i, j, mul))
#while循环
i = 0
j = 1
mul = 1
while i < 9:
i = i+1
if i >=j:
mul = i * j
print("%d*%d=%d" % (i, j, mul))
显示结果
1*1=1
2*1=2
3*1=3
4*1=4
5*1=5
6*1=6
7*1=7
8*1=8
9*1=9
问题:只能做出第一列来,关于j的迭代过程不清楚
(2)结合网上的结果
for 循环
mul = 1
for i in range (1,10):
for j in range(1,i+1):
mul = i*j
print("%d*%d=%d" % (i, j, mul),end="\t")
print()
# while 循环
mul = 1
i = 1
while i < 10:
j = 1
while j <= i:
mul = i*j
print("%d*%d=%d" % (i, j, mul),end="\t")
j += 1
print('')
i+=1
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
思考:
1,for循环中j应该是嵌套在里面的,j的值变化始终应该是与i有关 而不是简单的自身加1迭代
2,要得到多列结果需要用到print(‘’)?