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

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

输出

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

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

相关文章

一款真正可用的支付系统,可搭建自己的易支付系统,开源无后门

应用介绍 介绍: thinkphp开发的风吹雪支付系统易支付去后台验证版本&#xff0c;支持代理系统&#xff0c;适合搭建易支付系统&#xff0c;完整100%可运行网站源码。是为数不多的一款真正可用的支付系统&#xff0c;开源无后门可运营。 自带微信支付宝官方通道&#xff0c;资质…

探秘网络爬虫的基本原理与实例应用

1. 基本原理 网络爬虫是一种用于自动化获取互联网信息的程序&#xff0c;其基本原理包括URL获取、HTTP请求、HTML解析、数据提取和数据存储等步骤。 URL获取&#xff1a; 确定需要访问的目标网页&#xff0c;通过人工指定、站点地图或之前的抓取结果获取URL。 HTTP请求&#…

一键拆分,轻松整理,高效管理文本文件,让工作更轻松!

在日常工作中&#xff0c;我们经常需要处理大量的文本文件。如何快速整理这些文件&#xff0c;方便管理和使用成为了关键问题。为此&#xff0c;我们为您推荐一款强大的一键拆分和整理工具&#xff0c;助您高效管理文本文件&#xff01; 首先&#xff0c;在首助编辑高手的主页面…

Gradle——基础

1、Gradle基础 1.1、Ant/Maven/Gradle对比 无论那种项目构建工具&#xff0c;都有自身的优势和劣势&#xff0c;所以选择一款最适合项目的就是最好的&#xff01; 1.2、Gradle项目目录结构 Gradle项目默认目录结构和Maven项目的目录结构一致&#xff0c;都是基于约定大于配置…

好物周刊#37:元气桌面

https://github.com/cunyu1943/JavaPark https://yuque.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. MallChat 一个既能购物又能聊天的电商系统。以互联网企业级开发规范的…

《斗罗大陆Ⅱ绝世唐门》美女盘点:高颜值角色吸睛无数,玄机科技再塑国漫辉煌

在国漫崛起的大潮中&#xff0c;玄机科技以其精湛的建模技术和独特的审美视角&#xff0c;打造了一部又一部备受瞩目的佳作。其中&#xff0c;《绝世唐门》作为玄幻类动画的代表&#xff0c;凭借其丰富的人物设定和颜值爆表的角色&#xff0c;赢得了无数观众的喜爱和追捧。今天…

DC-3靶机刷题记录

靶机下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1-P5ezyt5hUbmmGMP4EI7kw?pwdrt2c 提取码&#xff1a;rt2c 参考&#xff1a; http://t.csdnimg.cn/hhPi8https://www.vulnhub.com/entry/dc-32,312/ 官网http://t.csdnimg.cn/5mVZ7DC-3 (1).pdfhttps://…

裸辞后找工作有多难?分享个人经历+面经+学习路线【内含免费下载初级前端面试题】- 回忆我的2023

&#x1f449; 个人博客主页 &#x1f448; &#x1f4dd; 一个努力学习的程序猿 专栏&#xff1a; HTML和CSS JavaScript jQuery Vue Vue3 React TypeScript uni-app Linux 前端面试分享 前端学习方案分享(VitePress、html2canvasjspdf、vuedraggable、videojs) 前端踩坑日记&…

2023年上半年网络工程师真题(2/3)

21.在OSI参考模型中&#xff0c;负责对应用层消息进行压缩&#xff0c;加密功能的层次为&#xff08;C&#xff09;。 A.传输层 B.会话层 C.表示层 D.应用层 表示层。表示层处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含语义和语法两个方面。语义是数据…

索引的概述和性能分析

索引index&#xff0c;是一种有序的数据结构&#xff0c;可以高效的获取数据&#xff0c;在数据库中维护着满足查找特定算法的数据结构&#xff0c;就是索引 无索引的情况&#xff0c;查询数据时会全表扫描&#xff0c;效率极低 索引结构 &#xff08;1&#xff09;二叉树&…

flink学习之水位线

什么是水位线 在事件时间语义下&#xff0c;我们不依赖系统时间&#xff0c;而是基于数据自带的时间戳去定义了一个时钟&#xff0c; 用来表示当前时间的进展。于是每个并行子任务都会有一个自己的逻辑时钟&#xff0c;它的前进是靠数 据的时间戳来驱动的。 我们可以把时钟也以…

Linux下MySQL用户管理、权限、密码

一、原理 MySQL的用户管理实质上是对用户表的管理&#xff0c;系统中的数据库mysql存在一张用户表&#xff08;user&#xff09;&#xff0c;所有的用户都在该表内&#xff0c;对用户的管里也就是对该表进行增删查改的操作。 show databases; 如图中的mysql数据库&#xff0c;…

Leetcode 用队列实现栈

题目&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。 int pop() 移除并…

2024/1/20 并查集

目录 并查集关键代码 亲戚 村村通 团伙&#xff08;新知识&#xff09; 并查集关键代码 返回祖宗节点路径压缩&#xff1a; int find(int x) {if(f[x]!x) f[x]find(f[x]);return f[x]; } 合并&#xff1a; void make(int x,int y) {int f1find(f[x]);int f2find(f[y]);…

69.使用Go标准库compress/gzip压缩数据存入Redis避免BigKey

文章目录 一&#xff1a;简介二&#xff1a;Go标准库compress/gzip包介绍ConstantsVariablestype Headertype Reader 三&#xff1a;代码实践1、压缩与解压工具包2、单元测试3、为何压缩后还要用base64编码 代码地址&#xff1a; https://gitee.com/lymgoforIT/golang-trick/t…

图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1

&#x1f341;&#x1f341;&#x1f341;图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 deeplab系列算法概述 deeplabV3 VOC分割实战1 deeplabV3 VOC分割实战2 deeplabV3 VOC分割实战3 dee…

C#中chart控件

C#中chart控件 图表的5大集合 例子 第一步&#xff1a;创建工程 放入chart控件 series集合 选择图标类型 选择绘制曲线的宽度和颜色。 显示数据标签 Title集合 添加标题 调整标题字体&#xff1a;大小和颜色 CharsArea集合 对坐标轴进行说明 设置间隔 设置刻度…

使用Ultimate-SD-Upscale进行图片高清放大

之前我们介绍过StableSR进行图片高清放大&#xff0c;如果调的参数过大&#xff0c;就会出现内存不足的情况&#xff0c;今天我们介绍另外一个进行图片高清放大的神器Ultimate-SD-Upscale&#xff0c;他可以使用较小的内存对图像进行高清放大。下面我们来看看如何使用进行操作。…

Spark读取kafka(流式和批数据)

spark读取kafka&#xff08;批数据处理&#xff09; # 按照偏移量读取kafka数据 from pyspark.sql import SparkSessionss SparkSession.builder.getOrCreate()# spark读取kafka options {# 写kafka配置信息# 指定kafka的连接的broker服务节点信息kafka.bootstrap.servers: n…

无法访问云服务器上部署的Docker容器

说明&#xff1a;记录一次无法访问云服务器上部署的Docker容器的问题。 问题描述 某次&#xff0c;我在云服务器上&#xff0c;使用Docker运行了一个Nginx容器&#xff0c;用公网IP怎么也访问不到。这种情况博主也算有经验&#xff0c;可以从以下几个方面去排查&#xff1a; …