当前位置: 首页 > news >正文

python基础——条件判断和循环【if,while,for,range】

📝前言:
这篇文章主要讲解一下条件判断语句if和循环语句while,for在python中需要注意的地方。
建议已有一定了解(对语句的执行逻辑清楚)的读者观看,如果对条件判断和循环的执行逻辑不太清楚,也可先浏览C语言——分支语句(if,switch)和C语言——循环结构这两篇文章,先理解这两种语句的执行逻辑

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。


文章目录

  • 一,if语句
    • 1,基本介绍
    • 2,例子
    • 3,注意事项
  • 二,while语句
    • 1,基本介绍
    • 2,例子
    • 3,注意事项
  • 三,for语句
    • 1,基本介绍
    • 2,例子
    • 3,注意事项
  • 四,range()函数
    • 1,基本介绍
    • 2,例子
    • 3,注意事项

一,if语句

1,基本介绍

在 Python 中,if 语句用于基于一定条件来控制程序的执行流程。它允许你基于一个或多个条件来决定哪些代码块应该被执行。下面是 if 语句的基本结构:

if 条件1:代码块1
elif 条件2:代码块2
else:代码块3

这里的 elifelse 部分是可选的。elif 用于检查其他条件,else 用于在前面条件都不满足时执行。

2,例子

下面是一个简单的例子,演示如何使用 if 语句来检查一个数字是否是正数、零或负数:

num = -5if num > 0:print("num 是一个正数")
elif num == 0:print("num 是零")
else:print("num 是一个负数")

运行结果:
在这里插入图片描述
在这个例子中,因为 num 的值为 -5,所以 if 条件不满足。然后我们检查 elif 条件,即 num 是否等于 0。也不满足。因此,我们执行 else 代码块,输出 “num 是一个负数”。

3,注意事项

(1)缩进:缩进就是在语句前的空格数量(通常一个tab键 == 四个空格),在 Python 中,缩进是至关重要的。 ifelifelse 语句都是根据缩进来寻找匹配对象的。为了规范:一个程序中的缩进应当只用一种形式,即只用tab键 或者 只用空格不要混用
(2)条件:确保你使用的条件能够正确地评估你想要检查的变量或表达式。(表达式或者变量的结果通常是布尔类型
(3)逻辑运算符:你还可以使用逻辑运算符(如 andornot)来构建更复杂的条件。
例如(使用and运算符):

x = 10
y = 20# 检查 x 是否大于 5 且 y 是否大于 x
if x > 5 and y > x:print("x 大于 5 且 y 大于 x")

(4)我们还可以将input输入语句直接写入判断语句中,以节省代码量
如下:

print("欢迎来到动物园")
if int(input("请输入你的身高(单位cm):")) <=120:print("你的身高小于120cm,你可以免费游玩!")

运行结果:
在这里插入图片描述

二,while语句

1,基本介绍

在 Python 中,while 语句用于重复执行一段代码。只要指定的条件为 True,就一直循环执行,当条件变为 False 时,循环停止。
while 语句的基本结构如下:

while 条件:# 循环体,当条件为 True 时执行# ...

2,例子

下面是一个简单的例子,演示了如何使用 while 语句输出数字 1 到 5:

i = 1while i <= 5:print(i)i += 1

输出结果:
在这里插入图片描述
在这个例子中,我们初始化变量 i1。然后,我们使用 while 循环来检查 i 是否小于或等于 5。只要这个条件为 True,就会执行循环体,即输出 i 的值并将其增加 1。当 i 达到 6 时,不满足循环条件(i<=5),循环停止。

3,注意事项

(1)无限循环:要小心避免无限循环。如果条件永远为 True,程序将永远执行循环体,这可能导致程序无响应。要确保在循环体内适当地更新循环控制变量,能够使条件最终变为 False。(即:要在循环体中,设置能改变条件结果的值)
(2)使用continue开始下一次循环:你可以使用continue语句,直接结束本次循环,开启下一次循环
(3)使用 break 退出循环:你可以使用 break 语句提前退出循环。但,break只能跳出本层循环
(4)缩进while循环也使用缩进来控制语句块

三,for语句

1,基本介绍

在 Python 中,for 循环遵守“轮询”机制,对一批内容进行“逐个处理”,通常用来用于遍历序列(如列表、元组、字符串等)或其他可迭代对象的元素。
基本语法:

for 变量 in 可迭代对象:循环体

for 关键字:用于开始一个循环。
● 变量:表示当前迭代的元素,每次迭代都会将可迭代对象的下一个元素赋值给变量。
in 关键字:用于指定被迭代的对象。
● 可迭代对象:表示要被迭代的对象,如列表、元组、字符串等。

2,例子

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)

输出结果:
在这里插入图片描述
在上述示例中,我们有一个包含三种水果的列表。我们使用 for 循环遍历这个列表,并打印每个水果。在每次迭代中,变量 fruit 会被赋值为列表中的下一个元素,然后执行循环体,直到列表里的元素被遍历完以后,循环停止。

3,注意事项

(1)范围for 循环通常用于遍历序列或可迭代对象的元素。如果使用非迭代对象,会导致错误。
(2)索引:虽然 for 循环可以直接访问序列的元素,但如果想同时获取元素的索引和值,可以使用 enumerate() 函数。
(3)条件:在 for 循环中,条件可以在循环体内部使用,但通常不推荐在循环头使用条件,因为这可能会导致循环无法执行。

四,range()函数

1,基本介绍

range() 是 Python 内置函数,用于生成一个整数范围的序列。这个范围可以用于各种计算,如循环、序列 slicing 等。
基本语法:

range(start, stop, step)

start:范围序列的起始值。
stop:范围序列的终止值(不包括该值)。
step:范围序列中每两个连续数字之间的差值。

2,例子

与for循环的结合使用:

for i in range(5):  # 这将生成从 04 的序列print(i)

输出结果:
在这里插入图片描述
在上述示例中,我们使用 range(5) 来生成一个包含从 0 到 4整数序列。然后我们使用 for 循环遍历这个范围并打印每个数字。

3,注意事项

(1)范围range() 函数生成的范围是左闭右开(即不包含 stop 参数指定的值)。
(2)默认值start 默认为 0,step 默认为 1。
(3)应用range() 生成的范围序列可以用于很多场景,如循环、列表推导式、slicing


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

相关文章:

python基础——条件判断和循环【if,while,for,range】

&#x1f4dd;前言&#xff1a; 这篇文章主要讲解一下条件判断语句if和循环语句while&#xff0c;for在python中需要注意的地方。 建议已有一定了解&#xff08;对语句的执行逻辑清楚&#xff09;的读者观看&#xff0c;如果对条件判断和循环的执行逻辑不太清楚&#xff0c;也可…...

Pytorch 复习总结 6

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 计算机视觉。 本文先介绍了计算机视觉中两种常见的改进模型泛化性能的方法&#xff1a…...

借助 Terraform 功能协调部署 CI/CD 流水线-Part 1

在当今快节奏的开发环境中&#xff0c;实现无缝、稳健的 CI/CD 流水线对于交付高质量软件至关重要。在本文中&#xff0c;我们将向您介绍使用 Bitbucket Pipeline、ArgoCD GitOps 和 AWS EKS 设置部署的步骤&#xff0c;所有步骤都将利用 Terraform 的强大功能进行编排。在Part…...

云原生基础知识:容器技术的历史

容器化的定义&#xff1a; 容器化是一种轻量级的虚拟化技术&#xff0c;将应用程序及其所有依赖项&#xff08;包括运行时、系统工具、系统库等&#xff09;打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境&#xff0c;使得应用程序可以在不同的环境中运行&…...

golang实现正向代理和反向代理

文章目录 正向代理反向代理区别与联系:总结代理服务器实现正向代理反向代理正向代理 正向代理是客户端代理,它位于客户端和目标服务器之间。它的作用是保护客户端的隐私和安全。 如我们现在想要访问谷歌,但是由于某些原因,无法直接访问到谷歌,我们可以通过连接一台代理服务…...

grpc四种数据流

grpc四种数据流 简介 1.简单模式 这种模式最为传统,即客户端发起一次请求,服务端响应一个数据,这和大家平时熟悉的rpc没什么区别,所以不在详细介绍 2.服务端数据流模式 这种模式是客户端发起一次请求&#xff0c;服务端返回一段连续的数据流。典型的例子是客户端向服务端发…...

SpringCloud-Alibaba-Nacos教程

SpringCloud-Alibaba-Nacos教程 下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.3 直接进入bin包 运行cmd命令 startup.cmd -m standalone 运行成功后 进入nacos可视化页面 账号密码默认都是nacos http://localhost:8848/nacos 微服务入驻Nacos服务注册…...

bug_java

文章目录 1.创建Maven时&#xff1a; idea报错为&#xff1a;java&#xff1a;错误&#xff1a;不支持发行版本52. Springbot启动报错-类文件具有错误的版本 61.0, 应为 52.0 1.创建Maven时&#xff1a; idea报错为&#xff1a;java&#xff1a;错误&#xff1a;不支持发行版本…...

【目标检测】旋转目标检测DOTA格式转YOLO格式标注

准备DOTA格式数据集&#xff1a; dota_dataset -- images |----- train |----- val -- labels |----- train |----- train_original |----- val |----- val_original 修改class_mapping和图片格式&#xff1a; ultralytics/data/converter.py convert_dota_to_yolo_obb() 转换标…...

运动想象 (MI) 迁移学习系列 (3) : MSFT

运动想象迁移学习系列:MSFT 0. 引言1. 主要贡献2. 数据增强方法3. 基于度量的空间滤波转换器3.1 空间过滤3.2 脑电图ViT3.2.1 变压器编码器层3.2.2 基于度量的损失函数 4. 实验结果4.1 消融实验4.2 基线任务对比4.3 跨主体 5. 总结欢迎来稿 论文地址&#xff1a;https://www.s…...

NeRF模型NeRF模型

参考视频&#xff1a;https://www.youtube.com/watch?vHfJpQCBTqZs&ab_channelVision%26GraphicsSeminaratMIT NeRF模型的输入输出: 输入: (x, y, z): 一个三维空间坐标,代表场景中的一个位置点(θ, φ): 视线方向,θ表示与y轴的夹角,φ表示与x轴的夹角,用两个角度可以…...

python爬虫(4)

#前期先说明一下为啥爬虫需要学习数组的存储和处理&#xff0c;只是说在你后期接触到最简单的爬虫后有一个地方可以存放你的数据# 下面为大家带来一个我在做excel表整理时的代码以及上次代码的结果 上次代码的结果&#xff1a; 新的代码&#xff1a; import numpy as np im…...

递归神经网络 (RNN) 及其变体 LSTM (长短期记忆) 和 GRU (门控循环单元)

递归神经网络&#xff08;RNN, Recurrent Neural Networks&#xff09;是一类用于处理序列数据的神经网络&#xff0c;特别适合于时间序列数据、语音、文本等连续数据的处理。RNN之所以独特&#xff0c;是因为它们在模型内部维持一个隐藏状态&#xff0c;该状态理论上可以捕获到…...

Redis的HyperLogLog原理介绍

Redis 的 HyperLogLog 数据结构实现了一种基于概率的基数估算算法&#xff0c;用于在占用极小内存的情况下估算一个集合中不重复元素&#xff08;唯一值&#xff09;的数量。以下是 HyperLogLog 算法的基本原理&#xff1a; 哈希函数&#xff1a; HyperLogLog 使用一个强散列函…...

微信小程序开发系列(二十六)·小程序运行机制(启动、前后台状态、挂起、销毁)和小程序更新机制

目录 1. 小程序运行机制 1.1 启动 1.2 前台和后台状态 1.3 挂起 1.4 销毁 2. 小程序更新机制 1. 小程序运行机制 1.1 启动 小程序启动可以分为两种情况&#xff0c;一种是冷启动&#xff0c;一种是热启动。 冷启动&#xff1a;如果用户首次打开&#xff0c;或小…...

百度信息流

计划: 流量选择 - 四个维度: 百度信息流 ; 整合了百度APP、WAP、PC各频道信息流和内容详情页的流量资源,广告和信息流内容资讯穿插展现;适合所有产品呢 好看视频; 汇集海量优质的视频内容,通过智能推荐算法为用户推送最适合的视频广告,视频广告在列表页有声…...

JAVA后端开发面试基础知识(十)——设计模式

创建型模式 创建型模式的作用就是创建对象&#xff0c;说到创建一个对象&#xff0c;最熟悉的就是 new 一个对象&#xff0c;然后 set 相关属性。但是&#xff0c;在很多场景下&#xff0c;我们需要给客户端提供更加友好的创建对象的方式&#xff0c;尤其是那种我们定义了类&am…...

红帽认证知识储备-Linux安全

Linux安全 内置安全机制 常见的系统用的centos中用的是SELinux&#xff0c;ubuntu用的是AppArmor&#xff0c;deepin什么都没用 SELINUX 定义 SELinux 是一个 Linux 内核安全模块&#xff0c;它增强了系统的安全性&#xff0c;通过实施强制访问控制策略来限制程序和用户对系…...

Rust 语言中的 dyn 关键字

在 Rust 中&#xff0c;&dyn Error 是一个指向动态类型的 Error trait 对象的引用。这里的 dyn 关键字用于表示一个动态分派的 trait 对象。动态分派允许你在运行时确定实际的对象类型&#xff0c;而不是在编译时。 dyn 关键字在 Rust 中用于替换早期版本中的 & 符号&…...

软件测试实战,Web项目网页bug定位详细分析总结(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、前置条件 1&a…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...