Python基础-7-循环

一、什么是循环

循环顾名思义,就是重复的做一件事。

例如:7点起床,刷牙洗脸。8点出门,赶地铁。9点到单位打卡上班 。下午5点打开下班。这就是一天的工作,第二天又是如此。这一天就是一个循环,并且是有条件的做一些相同的事情。


二、循环的种类

在Python中,循环分为两大类:while循环for循环

思考:while循环和for循环如何选择呢?

1. 对于循环次数已知的情况,建议使用while循环

2. 对于循环次数未知的情况,建议使用for循环

三、while循环

基本语法

# 1. 定义一个计数器(初始化一个计数器)
i = 0 # 这是一个起始
#2. 编写while循环结构
while 循环条件(判断 计数器 是否达到了目标位置):
    循环体代码,可以是多行
    ...
    # 3.在循环内部更新计数器
    i = i + 1 # i += 1

while循环例子

从0加到100

# 第一步:初始化计数器
i = 1
# 第四步:定义一个result变量,用于接收累加后的结果
result = 0
# 第二步:编写循环条件
while i <= 100:
    # 第五步:循环累加变量i
    result += i
    # 第三步:更新计数器的值
    i += 1
print(f'1~100累加后的结果:{result}')

while循环的执行流程

① 代码都是顺序执行,首先执行到第2行,对变量i进行赋值操作,初始值为0

② 当程序遇到while循环时,首先要把我们的计数器与循环条件进行比较i < 100,如果条件成立,则进入循环内部,执行内部代码。

③ 在循环体内部,针对本次循环进行计数器更新操作 i = i + 1或 i += 1

④ 更新完毕后,把更新后的计数器与循环条件再次进行比较i < 100,如果条件成立,继续进入循环内部,执行内部代码。

⑤ 直到,i更新后结果为100时,再次进行循环条件判断,发现不满足,则整个while循环结束。

四、循环两大关键词


Python循环中,经常会遇到两个常见的关键词:

break:代表终整个循环结构;continue:代表中止当前本次循环,继续下一次循环。

break关键字

场景一:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第5个苹果,即是吃苹果的动作停止,这里就是break控制循环流程,即终止此循环。

# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
    # 当变量i == 4的时候,终止循环
    if i == 4:
        print('我已经吃饱了,实在吃不下了...')
        break

    # 正在吃第几个苹果
    print(f'正在吃第{i}个苹果')

    # 更新计数器
    i += 1

continue关键字

场景二:如果吃的过程中,吃到第三个吃出一个大虫子…,是不是这个苹果就不吃了,开始吃第四个苹果,这里就是continue控制循环流程,即退出当前一次循环继而执行下一次循环代码。

# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
    # 当变量i == 3的时候,中止当前循环,继续下一次循环
    if i == 3:
        # 手工更新计数器(非常重要)
        i += 1
        print('吃到了一只大虫子,这个苹果不吃了...')
        continue

    print(f'正在吃第{i}个苹果')
    # 更新计数器
    i += 1

五、死循环

在编程中一个靠自身控制无法终止的程序称为“死循环”。

Python中,我们也可以使用while True来模拟死循环:

while True:
    print('这里的代码,一直停不下来')

六、for循环

基本语法

for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作。

for循环主要用于序列类型数据的循环操作(遍历操作)

另外当循环次数未知的情况,建议使用for循环。

for 临时变量 in 序列:
    重复执行的代码1
    重复执行的代码2

例子:使用for循环遍历字符串”python”

str = 'python'
for s in str:
    print(s)

for循环功能非常强大,可以自动判断序列的长度,长度为多少,则for循环就循环多少次。每次循环时,系统会自动将序列中的每个元素赋值给变量i,赋值完成后,for循环内部会自动更新计数器,向后移动一位,继续循环,直至元素全部循环结束。

range方法(函数)

Python2 range() 函数返回的是列表,而在Python3中 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。(由于我们还未学习面向对象,为了方便大家理解,你可以简单的将其理解为一个序列结构)

主要作用:用于生成一段连续的内容,从0到9

基本语法:

range(stop)
range(start, stop[, step])

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有 5

step:步长,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)

range有一个口诀:只顾头不顾尾,包含头部信息,但是不包含尾部信息,如range(10),则返回0~9之间的序列,又比如range(0, 5)代表返回0 ~ 4之间的序列。

例子1:for循环与range方法,使用for循环,循环5次

for i in range(5):
    print(i)


例子2:使用for循环,求1 ~ 100的和

# 定义一个变量,用于接收1~100的和
result = 0
# 从1开始循环,循环100次
for i in range(1101):
    result += i
print(f'1~100的和为{result}')

例子3:使用for循环,求1 ~ 100之间所有偶数的和

# 定义一个变量,用于接收1~100之间所有偶数的和
result = 0
# 从1开始循环,循环100次
for i in range(1101):
    if i % 2 == 0:
        result += i
print(f'1~100之间所有偶数的和为{result}')

例子4:break:主要功能是终止整个循环;遇到字符‘t’,则终止整个循环

str = 'python'
for s in str:
    if s == 't':
        break
    print(i)

例子5:continue:主要功能是中止当前循环,继续下一次循环;遇到字符’t’,跳过循环,继续下一次循环

str = 'python'
for s in str:
    if s == 't':
      continue
    print(i)

例子6:使用for循环实现用户名+密码认证

① 输入用户名和密码

② 判断用户名和密码是否正确(username=’admin’,password=’admin888’)

③ 登录仅有三次机会,超过3次会报错

分析:用户登陆情况有3种:

① 用户名错误(此时便无需判断密码是否正确) — 登陆失败

② 用户名正确 密码错误 –登陆失败

③ 用户名正确 密码正确 –登陆成功

# 定义变量,用于记录登录次数
trycount = 0
# 循环3次,因为超过3次就会报错
for i in range(3):
    # 更新登录次数
    trycount += 1
    # 提示用户输入账号与密码
    username = input('请输入您的登录账号:')
    password = input('请输入您的登录密码:')

    # 判断用户名是否正确
    if username == 'admin':
        # 判断密码是否正确
        if password == 'admin888':
            print('恭喜你,登录成功')
            break
        else:
            print('密码错误')
            print(f'您还有{3 - trycount}次输入机会')
    else:
        print('用户名错误')
        print(f'您还有{3 - trycount}次输入机会')

七、for循环中的else结构

循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码。

强调:‘正常结束’,非正常结束,其else中的代码时不会执行的。(如遇到break的情况)

for循环结构中的else结构

基本语法:

for 临时变量 in 序列:
    循环体
else:
    当for循环正常结束后,返回的代码

break关键字对for…else结构的影响

str = 'python'
for s in str:
    if s == 't':
        print('遇t不打印')
        break
    print(i)
else:
    print('循环正常结束之后执行的代码')

continue关键字对for...else结构的影响
str = 'python'
for s in str:
    if s == 'e':
        print('遇e不打印')
        continue
    print(i)
else:
    print('循环正常结束之后执行的代码')


原文始发于微信公众号(Python之家):Python基础-7-循环

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198545.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!