Python笔记(三)—— Python循环语句

循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。

ff9adc8db7f748a6bd68d85f60779bf9.png

循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础:

ef03ffbddcdb49e496d7f4745eb442c7.gif          65a74e8929474080ba4caa2ce1dc38c9.png

                                                                                           bilibili循环轮播图

循环和判断一样,同样是程序中最基础最核心的逻辑功能

3.1  while循环的基础应用

while循环的语法格式:

while 条件:

        条件满足时,做的事情1

        条件满足时,做的事情2

        ...(省略)...

只要条件满足,会无限循环执行

例如:

小美心软,只要表白100次,就会成功

print("小美,我喜欢你")
print("小美,我喜欢你")
print("小美,我喜欢你")
...(还有97次)...

cbe498eda966407bb55be9f077dda780.png   

对于上面的案例,我们可以使用while循环语句简单搞定:

i = 0
while i < 100:
    print("小美,我喜欢你")
    i += 1

cb966637881543839802f7895eb41691.png

while循环注意点:

1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环

2. 需要设置循环终止的条件,如 i += 配合 i < 100 ,就能确保100次后停止,否则将无限循环

3. 空格缩进不能忘,和 if 判断一样,都需要设置

3.2  练习案例:求1-100的和

aca6a7ce5f274111a2169afeca6240e7.png

i = 1
sum = 0
while i <= 100:
    sum += i
    i += 1

print(f"1-100的累加和是:{sum}")

输出结果:

812581a0c88149ed89b5daf139aefed6.png

3.3  练习案例:while循环猜数字

4b55d3eaca0f4fd6a6cd13a0abdd7ed5.png

代码源码,可以运行:

import random
num = random.randint(1,100)

# 定义一个变量,记录总共猜测了多少次
count = 0

# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
    guess_num = int(input("请输入你猜测的数字:"))
    count += 1
    if guess_num == num:
        print("猜中了")
        # 设置为False就是终止循环的条件
        flag = False
    else:
        if guess_num > num:
            print("你猜的大了")
        else:
            print("你猜的小了")

print(f"你总共猜了{count}次")

输出结果:

87e370e0e1424ebfa8759be594d758f4.pngl

3.4  while循环的嵌套应用

852ea591dd054dfcb024dd80dd55780c.png

生活中的嵌套循环

程序中的循环:

while  条件1:

        条件1满足时,做的事情1

        条件1满足时,做的事情2

        ...(省略)...

        

        while 条件2:

                条件2满足时,做的事情1

                条件2满足时,做的事情2

                ...(省略)...

while循环的嵌套使用

# 外层:表白100天的控制
# 内层:每天的表白都送10只玫瑰花的控制
i = 1
while i <= 100:
    print(f"今天是第{i}天,准备表白......")

    j = 1
    while j <= 10:
        print(f"送给小美第{j}朵玫瑰花")
        j += 1

    print("小美,我喜欢你")
    i += 1

print(f"坚持到第{i-1}天,表白成功")

注意:

1. 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进(基于空格缩进来决定层次关系)

2. 注意条件的设置,避免出现无限循环。

3.5 while循环练习案例:九九乘法表

补充知识1:print输出不换行

默认print语句输出内容会自动换行,如下图

9b16a51f7ada45ba81e97b3f9fe7aab6.png

在即将完成的案例中,我们需要使用print语句,输出不换行的功能,非常简单,实现方式如下:

f1629b8dbfc14c76aa36e6e1d1e4fd4a.png

如图,在print语句中,加上end = '  ' 即可输出不换行了

补充知识2:制表符 \t 

在字符串中,有一个特殊符号 \t ,效果等同于在键盘上按下:tab键

它可以让我们的多行字符串进行对齐

比如:

d2da385179fb4499be9c3dc82eb3706e.png

练习案例:

cc1ab170fd06429894937633ade34a34.png

分析:

1. 控制行的循环 i <= 9

2. 控制每一行输出的循环 j <= i

3. 输出不换行:print( j * i , end =  ' ')

4. 对齐:\t

代码源码,可以运行:

# 定义外层循环的控制变量
# i:行数  j:列数
i = 1
while i <= 9:

    # 定义内层循环的控制变量
    j = 1
    while j <= i:
        # 内层循环的print语句,不要换行,通过\t制表符进行对齐
        print(f"{j} * {i} = {j * i}\t ", end = '' )
        j += 1

    i += 1
    # print空内容,就是输出一个换行
    print()

输出结果:

56289c70a6364631ac4e989ff1181e64.png

3.6  for循环的基础语法

1.基础语法

除了while循环语句外,Python同样提供了for循环语句

两者能完成的功能基本差不多,但仍有一些区别:

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种 “轮询” 机制,是对一批内容进行 “逐个处理”

4ee7f368f6034ec782480f7ffe2bf9c9.jpeg

for循环基础语法:

for  临时变量  in  待处理数据集:

        循环满足条件时执行的代码

name = "itheima"

for x in name:
    #将name的内容,挨个取出赋予x临时变量
    #就可以在循环体内对x进行处理
    print(x)

for循环是将字符串的内容:依此取出。所以,for循环也被称为:遍历循环

for循环注意点:

同while循环不同,for循环是无法定义循环条件的。

只能从被处理的数据集中,依此取出内容进行处理。

所以,理论上讲,python的for循环无法构建无限循环(被处理的数据集不可能无限大)

要注意,循环内的语句,需要有空格缩进。

3.7  for循环练习案例:数一数有几个a

4310b852955f414fbd78f4c3025d40ea.png

代码源码,可运行:

#统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"

#定义一个变量,用来统计有多少个a
count = 0

#for 循环统计
#for 临时变量 in 被统计的数据

for x in name:
    if x == "a"
        count += 1

print(f"被统计的字符串有{count}个a")

运行结果:

3.8 range语句

for循环语句,本质上是遍历:序列类型

尽管除字符串外,其他的序列类型目前没学习到,但是不妨碍我们通过学习range语句,获得一个简单的数字序列。

语法1:

range(num)

获取一个从0开始,到num结束的数字序列(不含num本身)

如range(5)取得的数据是:{0,1,2,3,4}

语法2:

range(num1,num2)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)

如,range(5,10)取得的数据是:[5,6,7,8,9]

语法3:

range(num1,num2,step)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)

数字之间的步长,以step为准(step默认为1)

如,range(5,10,2)取得的数据是:[5,7,9]

演示Python中的range()语句的基本使用:

  • range语法1:range(num)
for x in range(10):
    print(x)

运行结果:

 

  •   range语法2:range(num1,num2)
for x in range(5,10):
#从5开始,到10结束(不包含10本身)的一个数字序列,数字之间间隔是1
    print(x)

运行结果:

 

  •  range语法3:range(num1,num2,step)
for x in range(5,10,2):
#从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2
    print(x)

运行结果: 

 

for x in range(10):
    print("送玫瑰花🌹")

3.9 for循环临时变量作用域

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

print(i)

如图代码,思考一下:

红框中的print语句,能否访问到变量i?

规范上:不允许

实际上:可以

临时变量,在编程规范上,作用范围(作用域),至限定在for循环内部

如果在for循环外部访问临时变量:

  • 实际上是可以访问到的
  • 在编程规范上,是不允许,不建议这么做的

for循环中的临时变量,其作用域限定为:循环内

如需访问临时变量,可以预先在循环外定义它

3.10 for循环的嵌套应用

同样以向小美表白的案例为例

  • 坚持表白100天
  • 每天送花10束

演示嵌套应用for循环:

i = 1
for i in range(1,101):
    print(f"今天是向小美表白的第{i}天,坚持.")
    #写内层循环
    for j in range(1,11):
        print(f"送给小美的第{j}朵玫瑰花")
    print(f"小美,我喜欢你(第{i}天的表白结束)")

print(f"第{i}天,表白成功")

我们目前学习了两个循环,while循环和for循环

这两类循环语句是可以相互嵌套的,如下,小美表白的案例可以改为:

i = 1
for i in range(1,101):
    print(f"今天是向小美表白的第{i}天,坚持.")
    j = 1
    while j <= 10:
        print(f"送给小美的第{j}朵玫瑰花")
        j += 1
    print(f"小美,我喜欢你(第{i}天的表白结束)")

print(f"第{i}天,表白成功")

注意:

  • 需要注意缩进,嵌套for循环同样通过缩进确定层次关系
  • for循环和while循环可以相嵌套使用

3.11 for循环练习案例:for循环打印九九乘法表

外层循环控制行数,内层循环控制每一行的内容

代码源码,可运行:

#通过外层循环控制行数
for i in range(1,10):
    #通过内层循环控制每一行的内容
    for j in range(1,i+1):
        print(f"{j} * {i} = {j * i}\t",end='')
    #外层循环可以通过print输出一个回车符
    print()

运行结果:

3.12 continue和break

思考:无论是while循环还是for循环,都是重复性的执行特定操作

在这个重复的过程中,会出现一些其它情况让我们不得不:

  • 暂时跳过某次循环,直接进入下一次
  • 提前退出循环,不再继续

对于这种场景,Python提供continue和break关键字

用以对循环进行临时跳过直接结束

continue

continue关键字用于:中断本次循环,直接进入下一次循环

continue可以用于:for循环和while循环,效果一致

for i in range(1,100):
    语句1
    continue
    语句2

上面代码:

  • 在循环中,遇到continue就结束当次循环,进行下一次
  • 所以,语句2是不会执行的

应用场景:

在循环中,因为某些原因,临时结束本次循环

演示循环语句的中断控制:break和continue

for i in range(1,6):
    print("语句1")
    continue
    print("语句2")

运行结果:

continue在嵌套循环中的应用

continue关键字只可以控制:它所在的循环临时中断

演示continue的嵌套循环:

for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        #这个continue只能控制内层for循环,对外层的for循环是没有任何影响的
        #语句3是压根不会执行的,语句1,2,4都可以执行
        continue
        print("语句3")

    print("语句4")

break

break关键字用于:直接结束循环

break可以用于:for循环和while循环,效果一致

for i in range(1,100):
    语句1
    break
    语句2

语句3

上面代码:

  • 在循环中,遇到break就结束循环了
  • 所以,执行了语句1后,直接执行语句3了

演示循环中断语句break:

for i in range(1,101):
    print("语句1")
    break
    print("语句2")

print("语句3")

运行结果:

break在嵌套循环中的应用

break关键字同样只可以控制:它所在的循环结束

演示break的嵌套循环:

for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        #这个break同时只能控制内层for循环,对外层的for循环是没有任何影响的
        #直接输出语句1,语句2(只执行1次,因为遇到了break),然后输出语句4
        break
        print("语句3")

    print("语句4")

运行结果:

总结:

  1. continue的作用是:中断所在循环的当次执行,直接进入下一次
  2. break的作用是:直接结束所在的循环
  3. ⚠️注意事项:
  • continue和break,在for和while循环中作用一致
  • 在嵌套循环中,只能作用在所在的循环上,无法对上层(外层)循环起作用

3.13 循环综合案例:发工资

代码源码,可运行:

#定义账户余额变量
money = 10000
#for循环对员工发放工资
for i in range(1,21):
    import random
    score = random.randint(1,10)

    if score < 5:
        print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
        #continue跳过发放
        continue

    #if判断余额足不足
    if money >= 1000:
        money -= 1000
        print(f"员工{i},满足条件发放工资1000,公司账号余额:{money}")
    else:
        print("余额不足,当前余额:{money}元,不足以发工资,不发了,下个月再来")
       #break结束发放
        break

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/438565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

npm市场发布包步骤

1.打开npm官网npm官网 2.创建自己的账号 3.查看当前npm的镜像源&#xff0c; 如果出现淘宝的镜像源则需要切换成官方的镜像源 npm config get registry //查看镜像源 https://registry.npm.taobao.org/ //淘宝的镜像源 https://registry.npmjs.org/ //官方的镜像源 …

解决:ModuleNotFoundError: No module named ‘paddle‘

错误显示&#xff1a; 原因&#xff1a; 环境中没有‘paddle’的python模块&#xff0c;但是您在尝试导入 解决方法&#xff1a; 1.普通方式安装&#xff1a; pip install paddlepaddle #安装命令 2.镜像源安装 pip install paddlepaddle -i https://pypi.tuna.tsinghua.e…

Linux性能分析之CPU实战

本课程专注于教授学员如何利用各种工具和技术来分析Linux系统中的CPU性能问题。通过实际操作和案例研究&#xff0c;学员将深入了解CPU性能优化和故障排除&#xff0c;提升其在Linux环境下的技能水平。 课程大小&#xff1a;1.9G 课程下载&#xff1a;https://download.csdn.…

tiktok矩阵引流系统开发常用源代码!

在数字营销领域&#xff0c;TikTok已成为一个不可忽视的平台&#xff0c;随着其用户基数的不断增长&#xff0c;如何利用TikTok进行有效的引流成为了许多企业和营销人员关注的焦点。 为了实现这一目标&#xff0c;许多开发者开始构建TikTok矩阵引流系统&#xff0c;这些系统通…

MacBook2024苹果免费mac电脑清理垃圾软件CleanMyMac X

CleanMyMac X是一款专业的Mac清理软件&#xff0c;具备多种强大功能。首先&#xff0c;它能够智能清理Mac磁盘上的垃圾文件和多余语言安装包&#xff0c;从而快速释放电脑内存。其次&#xff0c;CleanMyMac X可以轻松管理和升级Mac上的应用&#xff0c;同时强力卸载恶意软件并修…

LeetCode19题:删除链表的倒数第N个结点(python3)

代码思路&#xff1a; 我们可以设想假设设定了双指针 p 和 q 的话&#xff0c;当 q 指向末尾的 NULL&#xff0c;p 与 q 之间相隔的元素个数为 n 时&#xff0c;那么删除掉 p 的下一个指针就完成了要求。 1.设置虚拟节点 dummyHead 指向 head 2.设定双指针 p 和 q&#xff0c…

定时执行专家V7.1 多国语言版本英文版发布 - TimingExecutor V7.1 English Version Release

目录 ◆ About TimingExecutor ◆ Main Frame ◆ Job Dailog ◆ Trigger Dialog ◆ Setting Dialog ◆ About Dialog ◆ Job Detail Information panel ◆ Statistics Information panel ◆ About TimingExecutor 《定时执行专家》是一款制作精良、功能强大、毫秒精度…

数据开发 - 面经(已OC) - 北京中海通

投递流程&#xff1a; 2023.12.28 Boss 打招呼 2024.1.3 约面 2024.1.4 上午面试 &#xff08;手机端腾讯会议&#xff09; 2024.1.5 上午 通知面试通过 腾讯会议手机端无法和录影机同时运行&#xff0c;录音无效&#xff0c;之后注意使用电脑面试 面试流程&#xff1a;首…

轻松实现文件共享:CentOS 7匿名访问vsftpd服务指南

前言 在这篇文章中&#xff0c;将会详细介绍了如何在 CentOS 7 系统中利用 vsftpd 服务以匿名用户身份登录&#xff0c;轻松实现文件的上传和下载。无需繁琐的登录过程&#xff0c;无需复杂的权限设置&#xff0c;只需简单的步骤&#xff0c;您就能够快速畅享文件传输的乐趣。…

Git 掌握

目录 一、前言 二、centos安装Git 三、Git基本操作 (1) 创建Git本地仓库 (2) 配置Git (3) 认识工作区&#xff0c;暂存区&#xff0c;版本库 四、添加文件 五、查看.git文件 六、修改文件 七、版本回退 八、撤销修改 (1) 场景一 对于还没有add的代码 (2) 场景二 已…

数据库市场领军黑马:亚信安慧AntDB

随着数字时代的来临&#xff0c;数据库的重要性愈发凸显&#xff0c;而在这个领域&#xff0c;中国的AntDB数据库正以强大的姿态崭露头角。AntDB不仅仅是一个数据库&#xff0c;更是一个强大的数据处理引擎&#xff0c;其成功服务了数亿多用户&#xff0c;处理着每秒百万笔通信…

Sqoop “hcatalog does not exist!” 提示信息消除方法

sqoop运行的时候老是有这个报错提示&#xff0c;看着可烦&#xff0c;解决消除一下 解决方法&#xff1a; 1、在$SQOOP_HOME/bin目录下面修改configure-sqoop文件 1&#xff09;进文件夹 cd /training/sqoop-1.4.7/bin2&#xff09;编辑文件 vi /configure-sqoop3&#xff…

“揭秘网络握手与挥别:TCP三次握手和四次挥手全解析“

前言 在计算机网络中&#xff0c;TCP&#xff08;传输控制协议&#xff09;是一种重要的通信协议&#xff0c;用于在网络中的两台计算机之间建立可靠的连接并交换数据。TCP协议通过“三次握手”和“四次挥手”的过程来建立和终止连接&#xff0c;确保数据的准确传输。 一、三…

【IC设计】Windows和Ubuntu下安装Verilator

文章目录 Windows下安装verilatorUbuntu下安装verilator安装前的准备安装verilator检查 Windows下安装verilator windows下安装比较麻烦&#xff0c;需要首先安装cygwin&#xff0c;cygwin是一个包管理工具&#xff0c;类似apt&#xff0c;然后通过cygwin安装verilator所需的各…

搜维尔科技:3D Systems Geomagic Design X 逆向工程软件

产品概述 3D Systems Geomagic Design X 是全面的逆向工程软件 GeomagicoDesign XTM是全面的逆向工程软件&#xff0c;它结合了基于特征的CAD数模与三维扫描数据处理&#xff0c;使您能创建出可编辑、基于特征的CAD数模&#xff0c;并与您现有的CAD软件兼容。 拓展您的设计能…

图论练习6

[NOIP2013]车站分级 Here 解题思路 由于起始点之间所选的站号&#xff0c;相互之间一定满足那么对于起始点间未选择的站号&#xff0c;一定满足选择的站号考虑用边来维护信息&#xff0c;表示的级别大于按题意&#xff0c;则车站会被分为几个联通块&#xff0c;且保证块内无环…

C#与python交互(flask发送Get/Post请求)

先运行python&#xff0c;再运行C# **ps: 注意修改端口号**python发送Get/Post请求 # -*- coding: utf-8 -*- # Time : 2024/1/25 15:52 # Author : YY # File : post_test.py # Content&#xff1a;提交数据给客户端 from flask import Flask, request, jsonify, redirect…

Java 学习和实践笔记(30):继承树的追溯

如上图所示&#xff0c;在上图中&#xff0c; 在最下面的子类Husky(哈士奇&#xff09;中&#xff0c;假定要查找一个变量或者方法h, 那么其查找顺序属性/方法查找顺序是这样的&#xff1a; 首先&#xff0c;查找当前类中有没有属性h 如果没有&#xff0c;则依次往上上溯每个…

Nodejs 18.19.0 基本环境搭建(无版本管理)

简介 记录一次安装Nodejs的过程, 及设置install 安装路径等… 基本安装及设置步骤 1. 下载Nodejs并安装 NodeJs 18.19.0 LTS Windows安装msi, 下载后安装在自己想要的路径, 例如 D:\Softwares\Dev_Tools\nodejs cmd 中输入 nodejs version 可以查看版本 2. 设置 npm config ls…

Object.defineproperty

Object.defineproperty 的作用就是直接在一个对象上定义一个新属性&#xff0c;或者修改一个已经存在的属性.。并返回此对象。 Object.defineproperty 参数 Object.defineproperty方法需要传递3个参数Object.defineproperty&#xff08;obj, prop, desc &#xff09; 参数1…