(六)Python小甲鱼入门教程笔记——了不起的分支和循环之循环结构

视频地址:网易云课堂17-19课时

分支结构:让你的程序根据条件做不同的事情
循环结构:让你的程序不断地做一件事情

python有两种循环语句,while循环和for循环

在这里插入图片描述

一、while循环

第一节的作业已经涉及到了循环:
在这里插入图片描述
小甲鱼的循环举例:
在这里插入图片描述
当写出死循环时,程序会一直运行直到设备没电,快捷键ctrl + c可以中断当前程序,退出死循环。

当然还有另外三种退出循环的方式:break、continue和else。

二、break和continue

在这里插入图片描述
当遇到break语句,python会立即跳出当前循环,即使循环体内还有待执行的语句!

比如下面这个例子:
在这里插入图片描述
continue:跳出本轮循环,回到循环体条件判断的位置。当再次满足条件时,会继续循环。

举例:
在这里插入图片描述
当i是偶数时跳出本轮循环不打印,回到while判断语句 i< 10。所以打印的全部为小于10的奇数。

break和continue区别:continue语句是跳出本次循环回到循环体的开头,而break是直接跳出循环体执行循环后面的语句。

三、else

【当循环条件不再为真时,才会执行else里面的语句。】

举例:

m = 1
while m < 5:
    print('循环内m的值为:', m)
    m = m +1
else:
    print('循环外m的值为:', m)

    
循环内m的值为: 1
循环内m的值为: 2
循环内m的值为: 3
循环内m的值为: 4
循环外m的值为: 5

乍一看好像是多此一举,即使没有else,执行完while语句之后也去执行循环外的语句:

m = 1
while m < 5:
    print('循环内m的值为:', m)
    m = m +1
print('循环外m的值为:', m)

循环内m的值为: 1
循环内m的值为: 2
循环内m的值为: 3
循环内m的值为: 4
循环外m的值为: 5

但是一旦遇到break,情况就不一样了,看下面这个打卡小程序:

day = 1
while day <= 7:
    answer = input('今天你有好好学习吗')
    if answer != '有':
        break
    day = day + 1
else:
    print('非常棒,你已经坚持了7天连续学习!')

在这里插入图片描述
当我们不使用else时:

day = 1
while day <= 7:
    answer = input('今天你有好好学习吗')
    if answer != '有':
        break
    day = day + 1
print('非常棒,你已经坚持了7天连续学习!')

在这里插入图片描述

使用else时可以非常方便的不使用标志位的情况下去检测到循环的退出情况。

四、循环的嵌套

如何打印出九九乘法表?(自己试着写一下)

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(j, '*', i, '=', i*j, end = '  ')
        j = j + 1
    print()
    i = i + 1
无论是break语句还是continue语句,他们只能作用于一层循环体!
day = 1
hour = 1
while day <= 7:
    print('今天是好好学习的第', day, '天')
    while hour <= 8:
        print('我今天一定要坚持学习八个小时')
        hour += 1
        if hour > 1:
            break
    day += 1

在这里插入图片描述
这个例子表明,break只跳出其所在的第二层循环体,然后回到了第一层while中继续执行。

五、for循环

在这里插入图片描述
可迭代对象:元素可以被单独提取出来的对象,比如字符串“asdfgfg”。

示例一:
for element in 'fishc':
    print(element)

============ RESTART: D:\ALIproject\pythonPractise\3_while.py  ===========
f
i
s
h
c

while循环可不可以实现上面的功能呢?
可以,我们可以在循环体内依次通过下标索引的方式去访问字符串每一个元素并打印出来。

i = 0
str = 'fishc'
while i < len(str):
    print(str[i])
    i +=1
=============== RESTART: D:\ALIproject\pythonPractise\3_while.py ===============
f
i
s
h
c

补充:len()函数用于获取一个对象的长度length。

示例二:

for循环如何计算一到一百万的和?

关于range()

for element in 1000000?错,由于整数并不是可迭代的对象所以会报错。这里我们要借助经常跟for循环出生入死的好兄弟——range()函数,接收三种传参形式,他会生成从star开始到stop的整数序列,step为步进。
在这里插入图片描述

sum = 0
for i in range(11):
    print(i)
    sum += i
print(sum)
=============== RESTART: D:\ALIproject\pythonPractise\3_while.py ===============
0
1
2
3
4
5
6
7
8
9
10
55

注意点:range(11)打印出来的是0到10,也就是不包含stop本身。

# 第二种传参range(start, stop): 
for i in range(5, 9):
    print(i)
============== RESTART: D:\ALIproject\pythonPractise\3_while.py ===============
5
6
7
8

# 第三种传参方式range(start, stop, step)
for i in range(2, 11, 3):
    print(i)
=============== RESTART: D:\ALIproject\pythonPractise\3_while.py ===============
2
5
8
示例三:

Question: 找出10以内的所有素数。(自己好好思考再看答案)

for i in range(2, 11):
    m = 2
    while m < i:
        if i % m == 0:
            break
        m += 1
    else:
        print(i, '是一个素数')
=============== RESTART: D:\ALIproject\pythonPractise\3_while.py ===============
2 是一个素数
3 是一个素数
5 是一个素数
7 是一个素数

else在这里出现的刚刚好。
如果i可以被其他数整除他就不是一个素数直接跳出循环,而不会执行else语句。
else循环能被执行只有一种情况,就是当2到i之间所有数都试过都不能被整除,此时就会顺利来到else成为我们的素数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值