python从入门到精通:循环语句

news2024/9/21 9:34:24

目录

前言

 1、while循环的基础语法

2、while循环的嵌套

3、for循环的基础语法

range语句:

 for循环临时变量作用域:

4、for循环的嵌套

5、循环中断:break和continue



前言

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

 1、while循环的基础语法

程序中的循环:

while 条件:#(布尔类型)

        执行内容

# while的简单演示
i = 0;
while i<100:
    print("hello word!")
    i += 1;

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

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

3、空格缩进和if判断一样,都需要设置

# 案例:计算从1累加到100的和
i = 1;
sum = 0;
while i <= 100:
    sum += i;
    i += 1;
print("累加的和为:%s" % sum)

在判断语句中我们写了猜数字的游戏,但代码较为冗杂,现在我们就来优化这个代码。

# 设置一个范围在1~100之间的随机数字:无限次机会,会提示猜的大了还是小了,猜中会提示猜了几次
import random
num =random.randint(1, 100)
count = 0;
flag = True
while flag:
    guess_num = int(input("请输入您要猜的数字:"));
    count += 1;
    if guess_num == num:
        print("恭喜您!猜中了")
        flag = False
    else:
        if guess_num > num:
            print("猜大了")
        else:
            print("猜小了")
print(f"您一共猜了{count}次")

2、while循环的嵌套

程序中的循环:

while 条件1:

        执行内容

        while 条件:

                执行内容

# while循环的嵌套案例:求1到100的阶乘之和
i = 1;
sum = 0;
fact = 1;
j = 1;
while i <= 100:
    while j <= i:
        fact = fact * j
        j += 1
    sum = sum + fact;
    i += 1;
print(sum)

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

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

# 案例:九九乘法表的打印
i = 1;
while i <= 9:
    j = 1 ;
    while j <= i:
        # 内层循环的print语句,不换行,通过\t制表符进行对齐
        print(f"{i}*{j}={i*j}\t",end='')
        j += 1;
    i += 1;
    print()

3、for循环的基础语法

除了while循环语句外,python同样提供了for循环语句。两者功能类似,但也有区别:

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

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

程序中的for循环:

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

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

name = "zhangsan";
for x in name:
    # 将name内容,挨个取出赋予x临时变量
    print(x, end='')

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

同while循环不同,for循环无法定义循环条件,只能从被处理的数据集中,依次对内容进行处理。

# 统计字符串“abcdefaac”中字符a的个数
num_a = "abcdefaac"
count = 0;
for x in num_a:
    # 依次取出字符
    if x == 'a':
        count += 1;
print(count)

range语句:

for循环中的待处理数据集,严格意义来说称之为序列类型,序列类型指,其内容可以一个个一次取出来的一种类型,包括:字符串、列表、元组等。

 语法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] 

# 统计偶数的数量
num = int(input("请输入数字:"))
count = 0;
for x in range(1,num):
    if x %2 == 0:
        count += 1;
print(count)

 for循环临时变量作用域:

for x in range(5):
    print(x)
print(x)
# 最后一行代码在规范上是不能运行的,但实际上是可以运行的,x属于临时变量

临时变量,在编程规范上,作用域,只限定在for循环内部。但外部进行访问实际上也是可以反问道的,但规范上不允许。

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

4、for循环的嵌套

程序中的嵌套for循环:

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

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

        ......

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

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

# for循环的嵌套实现九九乘法表
i = 1;
j = 1;
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{i}*{j}={i*j}\t",end='')
    print()

5、循环中断:break和continue

无论是while循环还是for循环,都是重复性的执行特定操作。在这个重复的过程中,会出现一些情况:

· 暂时跳过某次循环,直接进行下一次(continue)

· 提前退出循环,不再继续(break)

continue用于中断本次循环,直接进行下一次循环,可以用于for循环和while循环。

for i in range(1,100):

        语句1

        continue

        语句2 

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

break用于直接结束循环,可以用于for循环和while循环。

for i in range(1,100):

        语句1

        break

        语句2 

 语句3

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

# 发工资案例:员工编号1到20,账户余额1w,每人可领取1000,领工资时如果绩效分(1-10)(随机生成)低于5,不发工资,直接下一位
money = 10000
for num in range(1,21):
    # 每次循环产生一个随机数字
    import random
    grade = random.randint(1, 10)
    if grade < 5:
        print(f"员工{num}绩效分低于5,不发工资,直接下一位")
        continue
    if money >= 1000:
        money -= 1000;
        print(f"员工{num}满足发工资条件,公司余额:{money}")
    else:
        print(f"公司余额不足,余额:{money},请下个月再来")
        break

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

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

相关文章

k8s核心架构分析

k8s核心概念概述 Kubernetes入门&#xff1a;掌握集群核心&#xff0c;释放容器潜能 技术爱好者们&#xff0c;CD集群的核心概念是构建、部署和管理容器化应用的基石。掌握这些概念&#xff0c;不仅助你深入理解技术细节&#xff0c;更能在CD集群中自如操作&#xff0c;无论是…

基于Python大数据的电商产品评论的情感分析设计与实现,包括lda主题分析和情感分析

摘要&#xff1a;本研究基于Python大数据技术&#xff0c;对电商产品评论进行情感分析的方法进行了研究。主要使用了requests库进行爬虫获取评论数据&#xff0c;利用pandas库进行数据处理和分析&#xff0c;使用matplotlib库实现数据可视化&#xff0c;结合jieba库进行中文分词…

可视化大屏:如何get到领导心目中的“科技感”?

你如果问领导可视化大屏需要什么风格的&#xff0c;领导大概率说科技感的&#xff0c;然后你就去做了&#xff0c;结果被劈了一顿&#xff0c;什么原因&#xff1f;因为你没有get到领导心目中描述的科技感。 一、为什么都喜欢科技感 科技感在可视化大屏设计中具有以下好处&am…

企业大模型业务架构技术选型分析

AI赋能企业&#xff1a;选择适合你的大模型业务架构 现代企业中&#xff0c;大模型业务日益普及&#xff0c;主要涵盖AI Embedded、AI Copilot和AI Agent三大架构。本文深入剖析其特性与适用场景&#xff0c;为企业选择合适的大模型业务架构提供指导&#xff0c;助力企业高效应…

国内大量家用路由器惨遭DNS劫持,你中招了吗?

近期&#xff0c;D妹收到不少用户反馈&#xff0c;在访问网站或APP时都遭遇了访问失败的问题。经深入排查&#xff0c;我们监测到大量家用路由器的DNS解析配置被篡改&#xff0c;从而影响到了正常的网站和APP访问。 该情况于2024年5月开始出现&#xff0c;于8月5日集中爆发达到…

【二叉树进阶】--- 二叉搜索树转双向链表 最近公共祖先

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 数据结构 本篇博客我们继续了解一些二叉树的进阶算法。 &#x1f3e0; 二叉搜索 树转化为双向循环链表 &#x1f4cc; 题目内容 将二叉搜索树转化为排序…

负载均衡之HAProxy超全内容!!!

一、负载均衡 1.1 负载均衡概念 负载均衡&#xff08;Load Balance&#xff0c;简称 LB&#xff09;是高并发、高可用系统必不可少的关键组件&#xff0c;目标是尽力将网络流量平均分发到多个服务器上&#xff0c;以提高系统整体的响应速度和可用性。 1.2 软件负载均衡 软件…

【C++深度探索】哈希表介绍与实现

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;C从入门至进阶 这里将会不定期更新有关C/C的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目录…

量化策略开发步骤系列(4)参数分析和过度拟合

量化策略开发步骤系列&#xff08;4&#xff09;参数分析和过度拟合 参数分析过度拟合 这是量化交易系列文章的第二系列——量化策略开发步骤&#xff0c;第一系列请参考专栏&#xff1a; 量化交易系统。很多朋友反馈最近的文章代码太多&#xff0c;看不懂。 这一部分将实现零…

2 C 语言开发工具选择、 MinGW 的安装与配置、VS Code 的安装与配置、插件推荐

目录 1 开发工具选择 1.1 Visual Studio 1.2 Code::Block 1.3 Clion 1.4 VS Code 1.5 在线编辑工具 2 开发工具安装 2.1 安装 MinGW-w64 2.1.1 MinGW-w64 介绍 2.1.2 解压 MinGW 2.1.3 将 MinGW 添加至环境变量 2.1.4 验证安装 2.2 安装 VS Code 2.2.1 下载安装包…

汉光BMF6450复印机简易安装说明手册

汉光BMF6450基本参数: 产品类型:激光数码复合机 颜色类型:黑白 速度类型:中速 复印速度:45cpm 涵盖功能:复印/打印/扫描 最大原稿尺寸:A3 处理器:800MHZ Quad Core (800MHz Dual Core+533MHz Dual Core) 内存容量:2GB 供纸容量:基本供纸量:1100页(550张2…

Windows平台RTSP|RTMP播放器如何叠加OSD文字

技术背景 我们在做Windows平台RTSP|RTMP播放器的时候&#xff0c;特别是多路播放场景下&#xff0c;开发者希望可以给每一路RTSP或RTMP流添加个额外的OSD台标&#xff0c;以区分不同的设备信息&#xff08;比如添加摄像头所在位置&#xff09;&#xff0c;本文主要探讨&#x…

手写qiankun-页面渲染

registerMicroApps配置子应用 start读取配置&#xff0c;拉取子应用并完成渲染 //全局变量 let _app [];//更好的获取全局变量_app export const getApps () > _app;//app为传递过来的子应用数组 export const registerMicroApps (app) > {_app app; };export cons…

http中get和post怎么选

5.4.2.怎么选择1.如果你是想从服务器上获取资源&#xff0c;建议使用GET请求&#xff0c;如果你这个请求是为了向服务器提交数据&#xff0c;建议使用POST请求。2.大部分的form表单提交&#xff0c;都是post方式&#xff0c;因为form表单中要填写大量的数据&#xff0c;这些数据…

RK3399平台开发系列讲解(内核入门篇)详解内联汇编

🚀返回专栏总目录 文章目录 一、C语言实现加法二、使用汇编函数实现加法三、内联汇编语法四、使用案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢要深入理解Linux内核中的同步与互斥的实现,需要先了解一下内联汇编:在C函数中使用汇编代码。 现代编译器已经足…

Linux系统调试课:CPUFreq 中央处理器频率调节技术

文章目录 一、CPUFreq组成二、用户接口三、设备树配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢中央处理器频率调节(Central Processing Unit frequency,CPUFreq)技术可以降低ARM芯片的功耗,例如在系统对任务压力较小时,通过调整处理器工作频率与输入电压的…

【一图学技术】9.OAuth2.0授权框架SSO单点登录图解及关系区别、使用场景

OAuth2.0原理&SSO单点登录图解 一、单点登录SSO 1.概述 ​ 单点登录&#xff08;全称Single Sign On&#xff0c;简称就是SSO)是一种身份验证和授权机制&#xff0c;它允许用户在多个相关但相互独立的系统或应用程序之间进行无缝切换&#xff0c;而无需重复登录。在多个…

【3】MySQL的安装即启动

目录 一.下载 二.安装 三.启动 一.下载 二.安装 安装MySQL时遇到的Initializing database错误&#xff1a;推荐下面的博客&#xff08;简单就是电脑名不要出现中文&#xff09; https://blog.csdn.net/m0_52775858/article/details/123705566 三.启动 PS&#xff1a;cmd要…

多台USB 3.0相机启动时部分相机无法打开

在使用多台USB 3.0相机时&#xff0c;遇到启动时部分相机无法打开的问题是较为常见的情况。这个问题通常与带宽、供电、驱动程序、或系统资源管理有关。以下是一些优化建议&#xff0c;帮助你提高相机启动的可靠性&#xff1a; 1. USB带宽管理 USB 3.0的带宽虽然比USB 2.0高很…

自训Transformer模型:识别图像是否由AI生成?

背景 随着AI生成图像技术的迅猛发展&#xff0c;特别是生成对抗网络&#xff08;GANs&#xff09;和深度学习的不断进步&#xff0c;生成的图像变得越来越逼真。 这项技术不仅催生了许多创新应用&#xff0c;也带来了潜在的风险和挑战。 Transformer模型在图像识别中的作用 …