Python入门到精通(三)——Python循环语句

news2024/9/24 15:26:15

Python循环语句

一、while 循环

1、基础语法

2、嵌套应用

二、for 循环

1、基础语法

2、嵌套应用

三、循环中断:break 和 continue

1、break

2、continue

四、综合案例


一、while 循环

 1、基础语法

  • while的条件需得到布尔类型,True表示继续循环,False表示结束循环
  • 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
  • 空格缩进和if判断一样,都需要设置

练习题 1

代码示例

# 练习题1:求1-100和
sum = 0
n = 1
while n <= 100:
    sum += n
    n += 1
print(f"1加到100的和为:{sum}")

输出

练习题 2

代码示例

# 练习题2:猜数字(无限次机会)
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}次")

输出

2、嵌套应用

语法

  • 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
  • 基于空格缩进来决定层次关系
  • 注意条件的设置,避免出现无限循环(除非真的需要无限循环)
  • print输出不换行: print语句中加上 end=‘ ’
  • 输出对齐:添加 \t 制表符

练习题

代码示例

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

输出

二、for 循环

1、基础语法

 (1)for循环是一种”轮询”机制,是对一批内容进行”逐个处理”

  • 从待处理数据集中:逐个取出数据赋值给临时变量
  • 无法定义循环条件,只能被动取出数据处理
  • 要注意,循环内的语句,需要有空格缩进

代码示例

# 统计以下字符串有多少个"a"
name = "csdn Professional IT technology publishing platform"
count = 0
for x in name:
    if x == "a":
        count += 1
print(f"该字符串里有{count}个'a'")

输出

(2)range 语句

语法1

range(num)

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

for i in range(5):
    print(i)  # 0 1 2 3 4

语法2

range(num1,mun2)

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

for i in range(5, 10):
    print(i)  # 5 6 7 8 9

语法3

range(num1, num2, step)

  • 获得一个从num1开始,到num2结束的数字序列(不含num2本身)
  • 数字之间的步长,以step为准(step默认为1)
for i in range(5, 10, 2):
    print(i)  # 5 7 9

练习题

代码示例

# 练习题
count = 0
num = int(input("请输入一个数:"))
for x in range(1, num):
    if x % 2 == 0:
        count += 1
print(f"1到{num}(不包含{num}本身)范围内,有{count}个偶数")

输出

 规范:如果在循环外访问变量,需要再循环之前对变量进行定义

2、嵌套应用

和需要注意缩进,通过缩进,确定层次关系

练习题

代码示例

# 定义外层循环控制变量
for i in range(1, 10):
    #  定义内层循环变量
    for j in range(1, i + 1):
        # 不换行,用\t制表符进行对齐
        print(f"{j}*{i}={j * i}\t", end='')
    # 控制换行的输出
    print()

输出

                                           和 while 循环比,代码更加简洁了!

 Tips:for 循环和 while 循环可以相互嵌套使用

三、循环中断:break 和 continue

1、break

直接结束所在循环,它所在的循环永久中断

代码示例

# break的使用 只要遇到整体结束
for i in range(1,3):
    print("语句1")
    for j in range(1, 3):
        print("语句2")
        break
        print("语句3")  # 此代码不可到达
    print("语句4")

输出

2、continue

中断本次循环,直接进入下一次循环(只可以控制:它所在的循环临时中断)

代码示例

# continue的嵌套应用 只要遇到 此次结束
for i in range(1, 3):
    print("语句1")
    for j in range(1, 3):
        print("语句2")
        continue
        print("语句3")  # 此代码不可到达
    print("语句4")

输出

四、综合案例

练习题

代码示例

# 定义账户余额变量
money = 10000
# for循环对员工发放工资
for i in range(1, 21):
    import random
    score = random.randint(1,10)
    if score < 5:
        print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
        # 跳过发放
        continue

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

输出

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux C语言socket函数send

在Linux中&#xff0c;使用C语言进行网络编程时&#xff0c;send函数是用于发送数据到已连接的套接字的重要函数之一。它通常用于TCP连接&#xff0c;但也可以用于UDP&#xff08;尽管对于UDP&#xff0c;通常更推荐使用sendto&#xff0c;因为它允许你指定目标地址和端口&…

定时关机应用V2.1

# 在ShutDown_2.0的基础上&#xff0c;作了如下改进&#xff1a; # 1) 修正了默认模式无法选择其他时间的bug&#xff0c;还增加了2.5小时和3小时两个选项&#xff1b; # 2&#xff09;自定义模式将计时单位从“秒”改为“分钟”&#xff0c;倒计时显示也优化为“小时:分钟:秒”…

小白水平理解面试经典题目LeetCode 125 Valid Palindrome(验证回文串)

125 验证回文串 说到公司面试&#xff0c;那就是得考出高度&#xff0c;考出水平&#xff0c;什么兼顾这两者呢&#xff0c;那就得看这道 原题描述&#xff1a; 给定一个字符串&#xff0c;判断它是否是回文串。回文串是指正读和反读都一样的字符串。 输入: “A man, a pla…

JS-WebAPIS(四)

日期对象&#xff08;常用&#xff09; • 实例化 在代码中发现了 new 关键字时&#xff0c;一般将这个操作称为实例化创建一个时间对象并获取时间 获得当前时间 获得指定时间 • 时间对象方法 使用场景&#xff1a;因为日期对象返回的数据我们不能直接使用&#xff0c;所以…

Android Studio安卓开发--ListView学习整理

ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内&#xff0c;同时屏幕上原有的数据则会滚动出屏幕。 1.ListView的简单用法 &#xff08;1&#xff09;activity_main.xml布局中加入ListView控件&#xff1a;&#xff08;先占满整个布局的空间&#xff09;…

网络安全与人工智能的交叉点

网络安全和人工智能 (AI) 的联系日益紧密&#xff0c;人工智能在增强网络安全措施方面发挥着重要作用。这种集成并不新鲜&#xff0c;但随着技术的进步和网络威胁变得更加复杂&#xff0c;它已经随着时间的推移而发展。 在网络安全的早期&#xff0c;防火墙和防病毒软件等传统…

用git bash调用md5sum进行批量MD5计算

对于非常大的文件或者很重要的文件&#xff0c;在不稳定的网络环境下&#xff0c;可能文件的某些字节会损坏。此时&#xff0c;对文件计算MD5即可以校验其完整性。比如本次的 OpenStreetMap 导出包&#xff0c;我的学弟反馈通过网盘下载无法解压&#xff0c;并建议我增加每个文…

uni-app使用HBuilderX打包Web项目

非常简单&#xff0c;就是容易忘记 一、找到manifest.json配置Web配置 二、源码视图配置 "h5" : {"template" : "","domain" : "xxx.xx.xx.xxx","publicPath" : "./","devServer" : {&quo…

如何启动Windows平台轻量级RTSP服务生成RTSP拉流URL

为满足内网无纸化/电子教室等内网超低延迟需求&#xff0c;避免让用户配置单独的服务器&#xff0c;我们在推送端发布了轻量级RTSP服务模块&#xff1a; 简单来说&#xff0c;之前推送端SDK支持的功能&#xff0c;内置轻量级RTSP服务模块后&#xff0c;功能继续支持。 轻量级…

00-Rust前言

问&#xff1a;为什么要近期想学习Rust? 答&#xff1a; Rust出来也是有一段时间了&#xff0c;从Microsoft吵着要重构他们的C"祖传代码"开始&#xff0c;Rust就披着“高效&#xff0c;安全”的头衔。而自己决定要学习Rust&#xff0c;是因为近期发现&#xff1a;与…

git本地分支的合并

目录 第一章、本地分支的切换测试1.1&#xff09;切换之前的master分支下文件内容1.2&#xff09;切换到develop分支后修改文件1.3&#xff09;切回master分支出现报错&#xff1a;1.4&#xff09;报错分析 第二章、解决方式2.1&#xff09;方式1&#xff1a;commit2.2&#xf…

线程同步--生产者消费者模型--单例模式线程池

文章目录 一.条件变量pthread线程库提供的条件变量操作 二.生产者消费者模型生产者消费者模型的高效性基于环形队列实现生产者消费者模型中的数据容器基于生产者消费者模型实现单例线程池 一.条件变量 条件变量是线程间共享的全局变量,线程间可以通过条件变量进行同步控制条件…

[已解决]前端使用el-upload,后端使用文件上传阿里云报错:异常信息:java.lang.NullPointerException: null

前端使用el-upload&#xff0c;后端使用文件上传阿里云报错&#xff1a; 报错原因&#xff1a;前端image参数未传进去 解决方法&#xff1a;在el-upload添加属性 name"image" 文件传进去了&#xff01;

Redis实战之-分布式锁-redission

一、分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题&#xff1a; 重入问题&#xff1a;重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中&#xff0c;可重入锁的意义在于防止死锁&#xff0c;比如HashTable这样的代码中&#xff0c;他的方法都…

2.4 网络层03

2.4 网络层03 2.4.7 路由表 1、什么是路由&#xff1f; 路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时&#xff0c;路由器可以根据路由表中最佳路由进行转发。 2、什么是路由表&#xff1f; 在计算机网络中&#xff0c;路由表&#xff08…

关于java中的Super详解

关于java中的Super详解 我们在上一篇文章中了解到了面向对象三大基本特征&#xff0c;继承&#xff0c;我们本篇文章中来了解一下Super&#x1f600;。 一、Super和this调用属性 this&#xff1a;当前类中使用。super&#xff1a;父类使用。 我们直接用代码来说明一下。 1…

C#调用C++ dll异常排查

基本情况 最近在做的一款程序&#xff0c;长时间运行总会出现莫名的问题。有时是自动关闭&#xff0c;有时程序报错&#xff0c;有时调用的dll异常…… 提出假设——dll内存泄漏 由于开始与C组合作时&#xff0c;使用其提供的dll出现过数据读写时异常&#xff08;内存操作异常…

Python 面向对象绘图(Matplotlib篇-16)

Python 面向对象绘图(Matplotlib篇-16)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…

[AutoSar]BSW_OS 05 Autosar OS_Alarms

目录 关键词平台说明一、Timer1.1 配置 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC) >>>>>回到总目录<<<<<< 一…

kafka参数配置参考和优化建议 —— 筑梦之路

对于Kafka的优化&#xff0c;可以从以下几个方面进行思考和优化&#xff1a; 硬件优化&#xff1a;使用高性能的硬件设备&#xff0c;包括高速磁盘、大内存和高性能网络设备&#xff0c;以提高Kafka集群的整体性能。 配置优化&#xff1a;调整Kafka的配置参数&#xff0c;包括…