Python流程控制

news2025/1/10 21:41:04

描述

  • Python中的流程控制是编程中用来控制代码执行顺序的结构。包括条件判断(if语句)、循环(for循环和while循环)、以及用于跳出或跳过循环的break和continue语句。
    在这里插入图片描述
  1. 条件判断(if语句)
    if语句允许我们根据条件执行不同的代码块。它基于一个布尔表达式(条件)来判断是否为真,然后执行紧随其后的代码块。如果条件为真,则执行该代码块;如果为假,则忽略该代码块并继续执行下一行代码。在Python中,单条件判断和多条件判断都是通过if语句实现的。下面举例说明单条件判断和多条件判断的情况。
  • 单条件判断:
if 条件:
    # 如果条件为真执行的代码块

假设我们要编写一个程序,根据用户输入的年龄判断是否可以参加某个活动,如果年龄大于等于18岁,则输出"您可以参加该活动",否则输出"抱歉,您未满18岁,不能参加该活动"。

age = int(input("请输入您的年龄:"))

if age >= 18:
    print("您可以参加该活动")
else:
    print("抱歉,您未满18岁,不能参加该活动")

在这个例子中,我们只有一个条件(age >= 18),根据这个条件的真假来执行不同的代码块。

  • 多条件判断:
    我们也可以链式使用多个if条件,使用elif(else if的简写)和else来添加更多的条件分支和默认分支。elif和else必须单独成行,并遵循同样的缩进规则。
if 条件1:
    # 条件1为真时执行的代码块
elif 条件2:
    # 条件1不为真,条件2为真时执行的代码块
else:
    # 上述条件都不为真时执行的代码块

假设我们要编写一个程序,根据用户输入的成绩判断其优秀、良好、及格或不及格的等级,并输出相应的信息。

score = int(input("请输入您的成绩:"))

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

在这个例子中,我们使用了多个条件分支,根据用户输入的成绩不同,执行不同的代码块。如果成绩大于等于90,则输出"优秀";如果成绩在80到89之间,则输出"良好";如果成绩在60到79之间,则输出"及格";否则输出"不及格"。

  1. 循环(for循环和while循环)
    在Python中,for循环和while循环是两种常用的循环结构,用于重复执行一段代码直到满足某个条件为止。
  • for循环用于遍历序列(如列表、元组、字典、集合、字符串等)中的每个元素。Python中的for循环与其他语言略有不同,它不需要显式地迭代变量,而是直接遍历序列本身。
for 变量 in 序列:
    # 对序列中每个元素执行的代码块

下面是一个简单的示例,使用for循环输出数字1到5:

for i in range(1, 6):
    print(i)

在这个例子中,range(1, 6)生成了一个包括1到5的整数序列,for循环遍历这个序列,每次取出一个元素,并将其打印出来。

  • while循环则会在某个条件为真的情况下持续执行代码块。类似于if语句,但是条件判断放在循环的开头,只要条件为真,就会反复执行代码块,直到条件变为假为止。
while 条件:
    # 只要条件为真,就持续执行的代码块

下面是一个简单的示例,使用while循环计算1到5的累加和:

total = 0
i = 1

while i <= 5:
    total += i
    i += 1

print("1到5的累加和为:", total)

在这个例子中,我们首先初始化变量total为0,然后使用while循环在i小于等于5的条件下,不断累加i的值到total中,同时每次循环结束后,递增i的值。最后输出1到5的累加和。

  • for循环适合在可预知迭代次数的情况下使用,而while循环适合在条件不确定或需要反复验证的情况下使用。
  1. 跳出和跳过循环
  • break语句用于立即退出循环体,无论循环条件是否为真。这意味着一旦执行到break,循环立即结束,程序继续执行循环之后的代码。
while True:
    # ...
    if 条件:
        break

以下是几个使用while循环和break语句的例子:

  • 猜数字游戏:
import random

secret_number = random.randint(1, 100)
guess = 0

while True:
    guess = int(input("请猜一个1到100之间的数字: "))
    if guess == secret_number:
        print("恭喜你,猜对了!")
        break
    elif guess < secret_number:
        print("太小了,再试试.")
    else:
        print("太大了,再试试.")

在这个例子中,我们使用一个无限循环,当用户猜中正确的数字时,使用break语句退出循环。

  • 输入账号密码:
username = "admin"
password = "password"

while True:
    user = input("请输入用户名: ")
    pwd = input("请输入密码: ")
    if user == username and pwd == password:
        print("登录成功!")
        break
    else:
        print("用户名或密码错误,请重试.")

在这个例子中,我们使用while循环来验证用户输入的账号密码是否正确,如果正确则退出循环,否则继续要求用户重新输入。

  • 遍历列表直到找到满足条件的元素:
numbers = [5, 2, 8, 1, 9, 3]

i = 0
while i < len(numbers):
    if numbers[i] > 5:
        print(f"找到第一个大于5的数字: {numbers[i]}")
        break
    i += 1
else:
    print("列表中没有大于5的数字")

在这个例子中,我们使用while循环遍历列表,直到找到第一个大于5的数字,然后使用break语句退出循环。如果循环结束后仍未找到,则执行else语句块中的代码。

  • 以上就是几个使用while循环和break语句的示例,可以根据具体需求进行灵活运用。

  • continue语句则用于跳过当前迭代,直接进入下一次循环的执行。它不会退出循环,而是在执行完当前代码块后,跳过剩余的代码块直接进行下一次循环的条件判断。

while True:
    # ...
    if 条件:
        continue

以下是几个使用while循环和continue语句的例子:

  • 打印奇数:
num = 0
while num < 10:
    num += 1
    if num % 2 == 0:  # 如果是偶数,则跳过当前循环
        continue
    print(num)

在这个例子中,当num为偶数时,使用continue语句跳过打印的步骤,直接进入下一轮循环,从而实现打印奇数的效果。

  • 跳过特定元素的列表遍历:
fruits = ["apple", "banana", "cherry", "date", "elderberry"]

for fruit in fruits:
    if fruit.startswith('b'):  # 如果以'b'开头,则跳过当前元素
        continue
    print(fruit)

在这个例子中,当水果名称以字母’b’开头时,使用continue语句跳过当前元素的打印过程,直接进入下一轮循环,在实际应用中可以根据需要跳过特定的元素。

  • 循环遍历并查找特定元素:
numbers = [1, 3, 5, 7, 9, 11, 13, 15]

index = 0
while index < len(numbers):
    if numbers[index] % 5 == 0:  # 当元素可以被5整除时,跳过当前元素
        index += 1
        continue
    print(f"找到一个不可被5整除的数字: {numbers[index]}")
    index += 1

在这个例子中,当循环到可以被5整除的数字时,使用continue语句跳过当前元素的输出,直接进入下一轮循环,继续寻找满足条件的元素。

  • 以上就是使用while循环和continue语句的示例,通过灵活运用continue语句,可以控制循环的流程,达到跳过特定条件的效果。
  • 流程控制是编程中管理程序执行流程的关键工具,通过它们的灵活运用,我们可以编写出结构清晰、逻辑性强的程序。

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

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

相关文章

C++基础语法练习 - 求平均值

题目链接&#xff1a;https://www.starrycoding.com/problem/156 题目描述 在StarryCoding的语法班期末考试里&#xff0c; n n n名同学的成绩分别为 a 1 , a 2 , . . . , a n a_1, a_2, ..., a_n a1​,a2​,...,an​&#xff0c;请求出全班分数的平均值。 输入格式 第一行…

正则化回归

1. L1正则化 L1正则化是回归参数各个元素绝对值之和。 2. L2正则化 L2正则化是回归参数各个元素平方之和。 3.LOSS回归 线性回归加上L1正则化 4.岭回归 线性回归加上L2正则化 不断增大 L2 约束项参数 α&#xff0c;可以发现岭回归参数优化解不断靠近原点&#xff0c…

中职数字化校园网络建设

中职&#xff08;职校&#xff09;数字化校园的校园网建设立足于职业教育、职业学校的特点&#xff0c;充分注意到信息技术的飞速发展、通信成本的迅速降低的特点。在规划和建设校园网时&#xff0c;遵循以下原则&#xff1a; 采用通用和成熟的技术&#xff1a;采用通用的、成熟…

Android创建快捷方式到桌面

效果图 参考 https://blog.51cto.com/u_16175498/8811197https://blog.51cto.com/u_16175498/8811197 权限 <uses-permission android:name"com.android.launcher.permission.INSTALL_SHORTCUT" /> 实现 if (Build.VERSION.SDK_INT > Build.VERSION_C…

macOS 如何关闭文本编辑区的拼写检查?

macOS 如何关闭文本编辑区的拼写检查&#xff1f; 在使用 macOS 自带软件 Freeform 的时候&#xff0c;发现有些单词的拼写检查会一直显示红色下划线&#xff0c;很烦。 找了下&#xff0c;找到了如新关闭这种提示 之后就正常了&#xff1a;

软件测试经理工作日常随记【1】-测试用例

软件测试经理工作日常随记【1】-测试用例 1.测试用例 测试用例&#xff0c;好像是每个讲软测经验的文章的基本输出。各种测试用例的设计及白盒黑盒测试方法重复出现在收集者前面。so&#xff0c;不走寻常路的我&#xff0c;觉得从另外的角度去分享测试用例。日常工作中&#…

MYSQL数据目录结构上篇-表在文件系统中表示

前言感悟:我个人是比较不喜欢只会用,不太懂为什么的这么用,而且有的时候很多官方术 语让人难以读懂, 这里我会用比较大白话的方式,让我自己也能让网友们更加理解,如果书写哪里有误,欢迎大家指出((,,•ω•)ノ"(っω•&#xff40;。)) 从入门开始啦推荐一个学习mysql的视频…

Python urllib 爬虫入门(2)

本文为Python urllib类库爬虫更入门的一些操作和爬虫实例及源码。 目录 模拟浏览器请求 简单模拟 设置随机user-agent 请求超时 HTTP请求类型 Get请求 Post请求 抓取网页动态请求 封装ajax请求 调用 循环调用 抓取小说 封装请求函数 把html写入本地分析 调用 正…

Springboot+Vue项目-基于Java+MySQL的教学资料管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

bite阶段性测试_数据结构

解决问题之前我们要了解什么是度&#xff0c;特别是二叉树中的度&#xff0c;和图论中的度的定义是不同的 什么是度&#xff1a; 在图论中&#xff0c;一个节点&#xff08;或称为顶点&#xff09;的“度”是指与该节点直接相连的边的数量。度是用来衡量一个节点与其他节点连接…

CSS移动端弹性布局

一级标题 二倍图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>背景图片</title><styl…

一个单例模式中使用std::unique_ptr引起的莫名其妙的COFF损坏的问题(未解决)

使用static std::unique_ptr和static std::shared_ptr都不行struct IElementAgendaEvents {//! Called to allow listeners to modify the agenda by adding/removing entries before applying tool operation. Return true if entries added or invalidated.virtual bool …

【机器学习】视觉基础模型的三维意识:前沿探索与局限

视觉基础模型的三维意识&#xff1a;前沿探索与局限 一、引言二、视觉基础模型的三维意识三、当前模型的局限性四、实验与结果五、总结与展望 大规模预训练的进展已经产生了具有强大能力的视觉基础模型。最近的模型不仅可以推广到任意图像的训练任务&#xff0c;而且它们的中间…

spring boot 基础案例【3】构建RESTful API与单元测试

教程1 案例教程 案例仓库 在线编程 教程2 基础教程 教程仓库 在线编程 本案例所在的仓库 本案例所在的文档 进入正文 1.文件目录 1. Chapter21Application.java 地址&#xff1a;chapter2-1/src/main/java/com/didispace/chapter21/Chapter21Application.java package com.d…

CSS @keyframes 动画:颜色变化、背景旋转与放大缩小

在CSS中&#xff0c;keyframes 是一个强大的工具&#xff0c;它允许我们创建复杂的动画效果。今天&#xff0c;我们将一起探索如何使用 keyframes 来实现颜色变化、背景旋转以及放大缩小的动画效果。 动画会在 2 秒内循环播放&#xff0c;并在不同的时间点改变盒子的背景颜色和…

【JVM】简述类加载器及双亲委派机制

双亲委派模型&#xff0c;是加载class文件的一种机制。在介绍双亲委派模型之前&#xff0c;我需要先介绍几种类加载器&#xff08;Class Loader&#xff09;。 1&#xff0c;类加载器 Bootstrap&#xff0c;加载lib/rt.jar&#xff0c;charset.jar等中的核心类&#xff0c;由…

VS code 同步odata服务

在做UI5得开发过程中&#xff0c;经常会出现odata需要更新 那么已经加载过得项目如何去跟新odata服务呢 可以通过如下步骤 1.右键打开应用信息 2.找到manage service models 3.点击编辑 4.选中 刷新并保存

前端发起网络请求的几种常见方式(XMLHttpRequest、FetchApi、jQueryAjax、Axios)

摘要 前端发起网络请求的几种常见方式包括&#xff1a; XMLHttpRequest (XHR)&#xff1a; 这是最传统和最常见的方式之一。它允许客户端与服务器进行异步通信。XHR API 提供了一个在后台发送 HTTP 请求和接收响应的机制&#xff0c;使得页面能够在不刷新的情况下更新部分内容…

【YOLOv9改进[Conv]】使用基于Haar的小波变换Down_wt处理替换模型结构中的Conv和ADown 实践

目录 一 基于Haar的小波变换 二 使用基于Haar的小波变换Down_wt处理替换模型结构中的Conv和ADown 实践 1 整体修改 2 配置文件 3 训练 三 报错处理 一 基于Haar的小波变换 Haar小波是最简单的小波形式之一&#xff0c;具有易于计算和实现的优点。使用二维离散小波变换&a…

TCP重传,滑动窗口,流量控制,拥塞控制

TCP重传&#xff0c;滑动窗口&#xff0c;流量控制&#xff0c;拥塞控制 TCP重传机制&#xff1a; 超时重传快速重传SACKD-SACK 通过序列号与确认应答判断是否要重传 超时重传&#xff1a; 超过指定时间没有收到确认应答报文&#xff0c;就会重发该数据 触发超时重传的情况…