Python学习从0到1 day8 Python循环语句

news2024/11/15 11:15:24

我相信有些友情不会被时间打败,但我也知道,我们没有办法像从前一样常常相聚,时常联系,所以我想让你知道,我希望你过的很好,像你的照片一样好,我希望你很顺利,像你曾经在我面前憧憬的那样,往前跑的时候,千万别回头,但如果你很需要有人陪你说话,别忘了我永远在这里,永远是你的兄弟

                                                                                                                       ——致我的朋友

                                                                                                                                    24.1.24

一、while循环语句

1.while循环的语法格式:

while  条件:

        条件满足时,做的事情1

        条件满足时,做的事情2

        条件满足时,做的事情3

                ……省略……

2.引例

# 演示while循环的基础英语应用
i = 0
while i < 100:
    print("一切都会好的" )
    i=i+1

3.while循环注意点

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

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

③空格缩进和if判断一样,都需要设置,以确定层次之间的关系

4.练习案例:求1-100的和

通过while循环,计算1累加到100的和

sum = 0
i = 1
while(i<=100):
    sum =sum + i
    i=i+1
print(f'1-100累加的和为:{sum}')

5.猜数字案例

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数

        无限次机会,直到猜中为止

        每一次猜不中,会提示大了还是小了

        猜完数字后,提示猜了几次

随机数可以使用:

        import random

        num = random.randint(1,100)

# 设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
import random
result = random.randint(1,100)
i=1
while True:
   num = int(input(f'请您猜一个数字,这是第{i}次猜测\n'))
   i+=1
   if result == num:
       print("恭喜您,猜中了")
       break
   elif result > num:
        print("猜小了")
   else:
       print("猜大了")

6.while嵌套循环

1.引例:

小明要给小美表白,小明坚持一百天并且每天都送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}天,表白成功")

2.while循环的嵌套——注意点

同判断语句的嵌套一样,循环语句的嵌套,要注意空格的缩进

        基于空格缩进来决定层次关系

注意条件的设置,避免出现无限循环(除非真的需要无限循环)

3.总结

1.嵌套循环的语法格式:

        while 条件1:

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

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

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

                条件1满足时,…省略…

                while条件2:

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

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

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

                        条件2满足时,…省略…

2.嵌套循环需要注意的地方:

        注意条件的控制,避免无限循环

        多层嵌套,主要空格缩进来确定层次关系

3.嵌套循环的使用难点:

        循环条件的控制,层次越多越复杂

7.while嵌套循环案例——打印九九乘法表

补充知识:print输出不换行

print("xxx",end='')

print("zzz",end='')

输出:xxxzzz

补充知识:制表符\t

效果等同于在键盘上按上Tab,有一个Tab的缩进,它可以让我们的字符在多行间对齐

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

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

i=1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{i} * {j} = {i * j}\t",end='')
        j += 1
    print()
    i+=1

二、for循环基本语法

1.for循环与while循环区别:

        while循环的循环条件是自定义的,自行控制循环条件

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

2.for循环语法

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

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

3.遍历字符串

for循环是将字符串的内容:依次取出

所以,for循环也被称之为:遍历循环

future = "一切都会好的,我一直相信"
for i in future:
    print(i)

4.for循环注意点:

for 变量 in 待处理的数据集(序列)

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

所以只能从被处理的数据集中,依次取出内容进行处理

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

5.练习案例:数一数有几个a

定义字符串变量name,内容为:“itheima is a brand of itcast”

通过for循环,遍历此字符串,统计有多少个英文字母:"a"

提示:

        ①计数可以在循环外定义一个整数类型遍历用来做累加计数

        ②判断是否为字母”a“,可以通过if语句结合比较运算符来完成

name = "itheima is a brand of itcast"
num = 0
for i in name:
    if i == 'a':
        num += 1
print(f"name字符串中有{num}个英文字母a")

6.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]

for i in range(9):
    print(i)
print("*********")
for j in range(6,9):
    print(j)
print("*********")
for k in range(1,9,3):
    print(k)

7.练习案例:有几个偶数

定义一个数字变量num,内容随意

并使用range()语句,获取从1到num的序列,使用for循环遍历它

在遍历的过程中,统计有多少偶数出现

提示:

        1.序列可以使用:range(1,num)得到

        2.偶数通过if来判断,判断数字余2是否为0即可

num = 114
count = 0
for i in range(1,num):
    if i % 2 == 0:
        count+=1
print(f"一共有{count}个偶数")

8.for循环临时变量作用域

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

        循环内

②这种限定:

        是编程规范的限定,而非强制限定

        不遵守也能正常运行,但是不建议这样做

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

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

9.for循环的嵌套应用

每天都去向小美表白,直到成功为止

每次表白的流程是:送10朵玫瑰然后表白

1.for循环的嵌套语法:

for 临时变量 in 待处理数据集(序列):

        循环满足条件应做的事情1

        循环满足条件应做的事情2

        循环满足条件应做的事情n

        …………

        for 临时变量 in 待处理数据集(序列):

                循环满足条件应做的事情1

                循环满足条件应做的事情2

                循环满足条件应做的事情n

                …………

2.案例

小明要给小美表白,小明坚持一百天并且每天都送10朵花,小美就会和小明在一起

for i in range(1,101):
    print(f"今天是表白的第{i}天")
    for j in range(1,11):
        print(f"送了第P{j}朵花")
print("表白成功")

3.嵌套循环的嵌套注意点

        需要注意缩进,嵌套for循环同样通过缩进确定层次关系

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

4.练习案例——for循环打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{i} * {j} = {i * j}\t",end="")
    print()

三、循环中断:break和continue

python提供continue和break关键字

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

1.continue

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

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

2.break

break关键字用于:直接结束(整体)循环

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

3.注意事项

continue和break,在for和while循环中作用一致

在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

四、综合案例

练习案例——发工资

某公司,账户余额有1W元,给20名员工发工资

员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元

领工资时,财务判断员工的绩效分1-10(随机生成),如果低于5,不发工资,换下一位

如果工资发完了,结束发工资

提示:

        使用循环对员工依次发放工资

        continue用于跳过员工,break直接结束发工资

        随机数可以用:import random 

                                 num = random randint(1,10)

person = 0
for i in range(1,21):
    print(f"这是{i}号员工")
    import random
    grade = random.randint(1,11)
    if grade < 5:
        print("您的绩效不达标,不发工资")
        continue
    else:
        if person > 10:
            print("没钱了,下个月再领吧")
            break;
        else:
            print("领到1000")
            person += 1


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

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

相关文章

数据结构·单链表

不可否认的是&#xff0c;前几节我们讲解的顺序表存在一下几点问题&#xff1a; 1. 中间、头部的插入和删除&#xff0c;需要移动一整串数据&#xff0c;时间复杂度O(N) 2. 增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗 3. 增容一般是2倍的增…

【C++】介绍STL中list容器的常用接口

目录 一、STL中的list简介 二、构造函数 2.1 默认构造函数 2.2 填充构造&#xff08;用n个相同的值构造&#xff09; 2.3 迭代器构造 2.4 拷贝构造和赋值运算符重载 三、迭代器 3.1 正向迭代器 3.2 反向迭代器 四、容量相关 4.1 获取list中有效数据的个数 4.2 判…

【Unity学习笔记】第十一 · 动画基础(Animation、状态机、root motion、bake into pose、blendTree、大量案例)

转载引用请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/132081959 作者&#xff1a;CSDN|Ringleader| 如果本文对你有帮助&#xff0c;不妨点赞收藏关注一下&#xff0c;你的鼓励是我前进最大的动力&#xff01;ヾ(≧▽≦*)o 主…

【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

文章目录 方案一览Gateway软件介绍启动容器配置apt源在容器中安装SSH服务器配置SSH服务器生成SSH密钥启动SSH服务为root创建密码连接到容器使用Gateway 方案一览 本篇博客将介绍如何在Docker容器中打开SSH连接服务&#xff0c;以及如何使用JetBrains Gateway软件进行代码调试。…

数据结构与算法-二叉树-路径总和 II

路径总和 II 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], target…

wpf控件Expander集合下的像素滚动

项目场景&#xff1a;Expander集合滚动 如下图&#xff0c;有一个Expander集合&#xff0c;且设置 ScrollViewer.VerticalScrollBarVisibility "Auto" 每个Expaner下包含有若干元素&#xff0c;当打开Expader(即IsExpanded "true"&#xff09;时&#…

企业邮箱遭入侵!印度制药巨头损失超4500万元

近日&#xff0c;印度制药巨头阿尔肯实验室子公司部分员工的企业邮箱遭入侵&#xff0c;导致其子公司被欺诈5.2亿卢比&#xff08;约合人民币4500万元&#xff09;。而根据截至2023年9月的季度财务报告数据&#xff0c;该公司营业收入为263.46亿卢比&#xff0c;净利润为64.65亿…

电脑城衰退的原因是什么?

​电脑城衰退的原因分析 随着科技的飞速发展&#xff0c;电脑城曾经是电子产品交易的热门场所。然而&#xff0c;近年来&#xff0c;电脑城的发展状况不容乐观&#xff0c;正面临着巨大的挑战。究竟是什么原因导致了电脑城的衰退&#xff1f;本文将深入探讨这一问题。 电子商…

05-Seata下SQL使用限制

不支持 SQL 嵌套不支持多表复杂 SQL(自1.6.0版本&#xff0c;MySQL支持UPDATE JOIN语句&#xff0c;详情请看不支持存储过程、触发器部分数据库不支持批量更新&#xff0c;在使用 MySQL、Mariadb、PostgreSQL9.6作为数据库时支持批量&#xff0c;批量更新方式如下以 Java 为例 …

编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡&#xff08;Weighted Load Balancing&#xff09; 轮询&#xff08;Round Robin&#xff09; IP 哈希&#xff08;IP Hash&#xff09; 最少连接&#xff…

服务器和云桥通SDWAN组网的区别

一、服务器的概念 服务器是一种计算设备&#xff0c;用于存储、处理和提供数据和应用服务。通常&#xff0c;服务器配备高性能处理器、大容量存储器和网络接口&#xff0c;其主要目的是提供计算资源、存储资源以及应用程序的托管。这种设备可以用于托管网站、应用程序、数据库和…

1331:【例1-2】后缀表达式的值

【题目描述】 从键盘读入一个后缀表达式&#xff08;字符串&#xff09;&#xff0c;只含有0-9组成的运算数及加&#xff08;&#xff09;、减&#xff08;—&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;四种运算符。每个运算数之间用一个空格隔开…

8.8加油站(LC134-M)

算法&#xff1a; 首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈&#xff0c; 每个加油站的剩余量rest[i]为gas[i] - cost[i]。 说明 各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。 i从0开始累加rest[i]&#xff0c;和记为curSum&#xff0c;一旦curS…

合合信息启信数据发布园区金融解决方案,助力银行精准服务“十四五”特色产业

今年冬季寒潮频现&#xff0c;“尔滨”等冰雪之城却凭借着出色的文旅服务&#xff0c;接连火爆“出圈”。现阶段&#xff0c;作为传统工业基地的哈尔滨正积极向第三产业转型。文旅园区具备产业、技术、知识、劳动力密集属性和特定产业集群规模效应&#xff0c;是推动文化与创意…

腾讯云安装Java11(jdk11.0.21)

腾讯云安装Java11(jdk11.0.21) 下载Java11 下载Linux的jdk包Java11下载路径 https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html 解压jdk 下载完成后&#xff0c;进入自己想要放到的目录下面&#xff0c;输入tar -zxvf jdk-11.0.21_linux-x64_b…

考研C语言刷题基础篇之数组(一)

目录 第一题&#xff1a;用数组作为参数实现冒泡排序 不用函数的冒泡排序 冒泡排序原理&#xff1a; 错误的数值传参冒泡排序 错误的原因 就是什么是数组名 正确的数组传参的冒泡排序 数组的地址和数组首元素的地址的区别 第一题&#xff1a;用数组作为参数实现冒泡排…

oracle19.22的patch已发布

2024年01月16日,oracle发布了19.22的patch 具体patch如下 Reserved for Database - Do not edit or delete (Doc ID 19202401.9) 文档ID规则如下 19(版本)+年份(202x)+(季度首月01,04,07,10).9 往期patch no信息和下载参考文档 oracle 19C Release Update patch num…

喝葡萄酒要懂得选对杯

喝葡萄酒要懂得选对杯 一、什么是葡萄酒杯&#xff1f; 葡萄酒杯&#xff0c;因其有一个细长的底座而被大众形象的称为高脚杯&#xff0c;但在事实上&#xff0c;高脚杯只是葡萄酒杯中的一种。在葡萄酒文化中&#xff0c;酒杯是其不可缺失的一个重要环节&#xff0c;在西方传统…

《动手学深度学习(PyTorch版)》笔记3.1

Chapter3 Linear Neural Networks 3.1 Linear Regression 3.1.1 Basic Concepts 我们通常使用 n n n来表示数据集中的样本数。对索引为 i i i的样本&#xff0c;其输入表示为 x ( i ) [ x 1 ( i ) , x 2 ( i ) , . . . , x n ( i ) ] ⊤ \mathbf{x}^{(i)} [x_1^{(i)}, x_2…

composer安装hyperf后,nginx配置hyperf

背景 引入hyperf项目用作微服务&#xff0c;使用composer 安装hyperf后&#xff0c;对hyperf进行nginx配置。 配置步骤 因为hyperf监听的是端口&#xff0c;不像其他laravel、lumen直接指向文件即可。所有要监听端口号。 1 配置nginx server {listen 80;//http&#xff1a…