python基础学习笔记·for while语句

(一) 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(‘’)?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值