python零基础之while循环、continue、 break、死循环、循环的嵌套、for循环、范围函数range、for结合range函数去替代while循环、for,while的区别

注意:

1、for循环常用来遍历。while循环常用来进行指定次数的循环。当for结合范围函数range时,可以替代while循环。

2、程序的三种结构:顺序、循环、分支(判断)。

(1)顺序结构 :代码由上而下执行。

(2)循环结构:根据条件,去循环的执行特定的代码。

(3)分支结构:根据条件,有选择性的去执行特定的代码。

3、死循环:程序一直在执行,无法终止。忘记在循环内部修改循环的判断条件,导致程序持续的在运行。

4、循环在程序中常用的功能就是用来计数。循环开始之前,先定义一个变量,用来存放计算的结果,在循环内部对这个变量进行计算,循环结束后,输出这个变量的值

例如:下面这就是一个死循环。

i = 0
while i < 3:
    print("hello word")

结果:
hello word
hello word
hello word
hello word
hello word
。
。
。

一、while循环

如果条件成立,那就执行循环的代码,如果条件不成立,循环就终止。

格式:

while 条件:

        要循环的代码

例如:输出0-5连续的数字。

a = 0
while a < 6:
    print(a)
    a += 1

结果:
0
1
2
3
4
5


法2:
for i in range(0, 6):
    print(i)

结果:
0
1
2
3
4
5
a = 0
while a < 6:
    print(a, end="")
    a += 1
结果:
012345

例如:输出5~0连续的数字。

a = 5
while a > -1:
    print(a)
    a -= 1

结果:
5
4
3
2
1
0


法2:用for 循环写
for i in range(5, -1, -1):
    print(i)

结果:
跟上面一样

例如:求1~100所有数字的和。

a = 0
sum = 0 
while a < 101:    # 或写成 a <= 100
    sum += a
    a += 1
print(sum)

结果:
5050


法2:
sum = 0
for i in range(1, 101):
    sum += i
print(sum)

结果:
5050

其实,循环在程序中常用的功能就是用来计数。循环开始之前,先定义一个变量,用来存放计算的结果,在循环内部对这个变量进行计算,循环结束后,输出这个变量的值

例如:计算50~115之间所有数字的和。

a = 50
sum = 0
while a < 116:
    sum += a
    a += 1
print(sum)

结果:
5445


法2:
sum = 0
for i in range(50, 116):
    sum += i
print(sum)

结果:
5445

二、break、continue

break 和 continue 都是在循环结构中使用的关键字

1、break

条件满足时,直接退出循环。遇到break,循环立刻终止。一般常在循环内部,通过if 的条件判断,来执行break。

例如:当用户输入exit时,while循环终止。

while True:
    str1 = input('请输入字符:')
    if str1 == 'exit':
        break

结果:
请输入字符:12
请输入字符:a
请输入字符:exit

进程已结束,退出代码 0

注意:while True: 是人造死循环。当代码不知道要循环多少次的话,可以使用人造死循环。

需要注意的是,在人造死循环的内部,一定要有 if 结合break来退出循环的机制,否则,程序真的就会变成死循环了。

2、continue

结束本次循环,开始下轮循环。也就是说,当条件满足时,continue后面的代码将不再执行,而是将继续开始下轮的循环。

也就是说,当条件满足时,不希望程序执行循环的代码,但又不想退出循环,此时就可以使用continue。

循环一旦遇到continue,就不再执行continue下面的循环代码了,而是直接返回到循环开始判断条件的地方继续进行下轮的循环。

需要注意的是:在continue中,变量改变的部分(例如a +=1,要写在conniue的前面)需要特别小心,否则一不小心就会变成死循环。

例如:输出1~5之间的数字,但不输出3 。

a = 0
while a < 5:
    a += 1
    if a == 3:
        continue
    print(a)

结果:
1
2
4
5


法2:
for i in range(1, 6):
    if i == 3:
        continue
    else:
        print(i)

结果:
1
2
4
5

例如坑,如果把条件处理的部分,即:a+=1 放到print(a)的下面,就会成为死循环。

a = 0
while a < 5:
    if a == 3:
        continue
    print(a)
    a += 1

结果:
0
1
2

此时,程序一直都不会结束,因为,当a=3时,continue后面的代码将不再执行,也就是说,不能打印3,也不能执行a+=1,所以程序就会卡死在那,不继续往下执行,也不会主动结束。所以,使用continue时,一定要特别注意,否则很容易成为死循环。

例如:输入任意一个数代表打印hello word的行数,比如,输入1打印一行,输入3打印三行,如果大于5,最多也只打印5行。

法1:
num = int(input("请输入一个数:"))
a = 0
while a < num:
    print("hello word!")
    a += 1
    if a >= 5:  # 不管输入的值多大,一旦a到了5就退出循环
        break
结果:
请输入一个数:10
hello word!
hello word!
hello word!
hello word!
hello word!

请输入一个数:2
hello word!
hello word!


法2:
num = int(input("请输入打印的行数:"))
for i in range(0, num):
    if i >= 5:
        break
    print("hello word!")

结果:
请输入打印的行数:7
hello word!
hello word!
hello word!
hello word!
hello word!

请输入打印的行数:5
hello word!
hello word!
hello word!
hello word!
hello word!

请输入打印的行数:1
hello word!

三、循环的嵌套

一个循环语句里面还有其它的循环语句。

while 条件:

        while 条件:

                循环的代码

例如:图片所示为,内外循环的展示图。

 例如:打印如下星星。

***
***
a = 0
while a < 2:  # 外循环
    b = 0
    while b < 3:    # 内循环
        print("*", end='')
        b += 1
    print()     # 输出一个空的回车换行
    a += 1

结果:
***
***


法2:
for a in range(0, 2):
    for b in range(0, 3):
        print("*", end="")
    print()

结果:
***
***

改进1:不写这么死,把行数写活。

法1:

num = int(input("请输入行数:"))
a = 0
while a < num:  # 外循环
    b = 0
    while b < 3:  # 内循环
        print("*", end='')
        b += 1
    print()    # 输出一个空的回车换行
    a += 1

结果:
请输入行数:2
***
***


请输入行数:4
***
***
***
***

法2:

num = int(input("请输入行数:"))
for a in range(0, num):
    for b in range(0, 3):
        print("*", end="")
    print()

结果:

请输入行数:2
***
***

请输入行数:4
***
***
***
***

改进2:输出一个正星星,即:如果是一行就输出一个*,如果是两行就出来两行两列星星,以此类推。

法1:
num = int(input("请输入想要的行数:"))
a = 0
while a < num:
    b = 0
    while b < num:
        print("*", end="")
        b += 1
    print()
    a += 1


结果:
请输入想要的行数:1
*

请输入想要的行数:2
**
**

请输入想要的行数:3
***
***
***

请输入想要的行数:4
****
****
****
****

法2:
num = int(input("请输入行数:"))
for i in range(0, num):
    for j in range(0, num):
        print("*", end="")
    print()
结果:
同上

例如:打印如下星星。

*
**
***
****
*****
法1
num = int(input("请输入行数:"))
a = 0
while a < num:
    b = 0
    while b <= a:
        print("*", end='')
        b += 1
    print()
    a += 1


结果:
请输入行数:5
*
**
***
****
*****


请输入行数:2
*
**

请输入行数:3
*
**
***

法2:
num = int(input("请输入行数:"))
for i in range(0, num):
    for j in range(0, i + 1):
        print("*", end="")
    print()
结果:
同上

搞笑的写法:

a = 1
while a < 4:
    print("*" * a)
    a += 1

结果:
*
**
***

例如:打印如下数字星星。

1
12
123
1234
12345
num = int(input("请输入行数:"))
a = 1
while a <= num:
    b = 1
    while b <= a:
        print(b, end="")
        b += 1
    print()
    a += 1

结果:
请输入行数:2
1
12


请输入行数:3
1
12
123


请输入行数:5
1
12
123
1234
12345

法2

num = int(input("请输入行数:"))
for i in range(1, num+1):
    for j in range(1, i + 1):
        print(j, end="")
    print()

结果:同上

例如:打印九九乘法表。

法1
a = 1
while a < 10:
    b = 1
    while b <= a:
        print("%dx%d=%d" % (b, a, a * b), end='\t')
        b += 1
    print()
    a += 1


结果:
1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
1x4=4	2x4=8	3x4=12	4x4=16	
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81	

法2:
for i in range(1, 10):  # 管行
    for j in range(1, i + 1):  # 管列,第一行1列,第二行两列。。。
        print("%dx%d=%d" % (j, i, i * j), end="\t")
    print()
结果:
1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
1x4=4	2x4=8	3x4=12	4x4=16	
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81	

四、for 循环

for循环主要用来遍历。所谓遍历就是,在循环内部通过一个变量,就可以把字符串当中的每一个字符都提取出来。字符串里面有多少个字符,for就会循环多少次。列表、元组等也是同样的道理。

for 常结合range实现指定次数的循环,去替代while循环。

格式:

for  变量  in  字符串:

        循环代码

举例,见上面while循环的案例,方法2 。

五、while、for二者区别

while循环用在指定次数的循环。

for循环主要用来遍历。但是,当for 结合range函数时,可以替代while循环。

while和for可以互换,但一般情况下,没必要互换,应情况而定,哪个简单用哪个。

六、range——范围函数——左闭右开

用来生成一个指定范围的数字序列。

格式:

range(start,stop,step) 即:

range(范围的开始值,范围结束值(但不包含stop自己本身),步长)

步长,可以为负数,此时,表示降序的范围,正数则表示升序的范围,默认值为1,可以省略不写。

for i in range(1, 5):  # for用来遍历,所以这里遍历的就是一个范围,i就是范围中的每个数字。

例如:

for i in range(1, 5):  # for用来遍历,所以这里遍历的就是一个范围,i就是范围中的每个数字。
    print(i)

结果:
1
2
3
4



for i in range(6, 1, -1):
    print(i)

结果:
6
5
4
3
2

for i in range(1, 10, 2):
    print(i)
结果:
1
3
5
7
9

例如:用for实现6以内所有偶数的和。

sum = 0
for i in range(0, 7, 2):  # 2,4,6
    sum += i
print(sum)


结果:
12

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值