【python】If 语句

1 使用if 进行条件判断

1.1 检查字符串是否相等

car = 'bmw'
car == 'BMW' # FALSE
car = 'bmw'
car.upper() == 'BMW' # true
# 变小写用方法:lower

1.2 检查字符串是否不相等

my_car = 'yadea'if my_car != 'Audi':print("Buy one! Buy one! Buy one!")

1.3 比较数字

answer = 17
if answer == 17: print("That is a correct answer. ")
if answer != 42: print("That is not the correct answer. Please try again!")

1.4 检查多个条件

1.4.1 使用and 检查多个条件

使用 and 可以在 if 语句中同时检查多个条件,只有所有条件都满足时才执行相应的代码块。

num = 25
if num >= 20 and num <= 30:print(f"{num} 在 20 到 30 之间")

等价于

num = 15
if num >= 20:if num <= 30:print(f"{num} 在 20 到 30 之间")

组合多个条件

age = 25
is_student = False
has_discount = Trueif (age < 18 or age > 60) and (is_student or has_discount):print("你符合折扣条件。")

用途示例:检查账户和密码

username = "root"
password = "admin123"
if username == "root" and password == "admin123":print("登录成功!")

条件的顺序可能会影响程序的效率。例如,在多个条件中,如果有一个条件计算起来比较耗时,而它在 and 连接的条件序列的后面,只有在前面所有条件都为 True 时,才会计算这个耗时的条件。所以在编写代码时,可以将容易判断且有可能先为 False 的条件放在前面,以减少不必要的计算。

1.4.2 使用or 检查多个条件

or 连接的条件按从左到右的顺序进行计算,一旦遇到一个为 True 的条件,就会停止计算后面的条件,可以将大概率会发生或者简单的判断放在前面,以减少不必要的计算。

num = 35
if num < 10 or num > 20:print(f"{num} 不在 10 到 20 之间")

等价于

num = 35
if num < 10:print(f"{num} 小于 10")
if num > 20:print(f"{num} 大于 20")

应用举例:检查用户名是否为指定值之一

username = "admin"
if username == "root" or username == "admin":print("用户名正确!")

1.4.3 检查特定值是否包含在列表中

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']for requested_topping in requested_toppings:if requested_topping == 'green peppers':print("Sorry, we are out of green peppers right now.")else:print(f"Adding {requested_topping}.")print("\nFinished making your pizza!")

1.5 对布尔表达式进行判断

布尔表达式的结果是一个布尔值,即 True 或 False。你可以在 if 语句中直接对布尔表达式进行判断,或通过 and 和 or 关键字组合多个布尔表达式

is_raining = True
if is_raining:print("今天下雨了,记得带伞。")
is_weekend = True
is_sunny = Trueif is_weekend and is_sunny:print("今天是晴朗的周末,适合出游。")

多个布尔值结合

age = 25
is_student = Falseif (age < 18 or age > 60) and not is_student:print("您符合老年或未成年优惠条件。")
else:print("您不符合老年或未成年优惠条件。")

注意事项
在布尔表达式中,not 用于取反。例如:not True 的结果是 False。
当布尔表达式的结果是 None、空列表、空字符串、数字 0 等情况时,会被视为 False。例如:
if []: 或 if “”: 或 if 0: 都会被当作 False 来判断。
if [1, 2]: 或 if “hello”: 或 if 5: 则会被当作 True 来判断。

2 使用if 进行条件控制

2.1 if else语句

age = 17
if age >= 18:print("You are old enough to vote!")print("Have you registered to vote yet?")
else:print("Sorry, you are too young to vote.")print("Please register to vote as soon as you turn 18!")

2.2 if-elif-else语句

age = 12
if age < 4:print("Your admission cost is $0.")
elif age < 18:print("Your admission cost is $25.")
else:print("Your admission cost is $40.")
age = 12if age < 4:price = 0
elif age < 18:price = 25
else:price = 40print(f"Your admission cost is ${price}.")

2.3 多个elif语句

age = 12if age < 4:price = 0
elif age < 18:price = 25
elif age < 65:price = 40
else:price = 20print(f"Your admission cost is ${price}.")

2.4 省略else语句(表达更精确)

age = 12if age < 4:price = 0
elif age < 18:price = 25
elif age < 65:price = 40
elif age >= 65:price = 20print(f"Your admission cost is ${price}.")

2.5 if 实现连续判断(多个条件判断)

上面的方案只能判定一次,如果需要多次连续判断需要多次if;

requested_toppings = ['mushrooms', 'extra cheese']if 'mushrooms' in requested_toppings:print("Adding mushrooms.")
if 'pepperoni' in requested_toppings:print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:print("Adding extra cheese.")print("\nFinished making your pizza!")

3 使用if语句处理列表

3.1 检查列表不是空的

requested_toppings = []if requested_toppings:for requested_topping in requested_toppings:print(f"Adding {requested_topping}.")print("\nFinished making your pizza!")
else:print("Are you sure you want a plain pizza?")

3.2 检查特殊元素

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']for requested_topping in requested_toppings:if requested_topping == 'green peppers':print("Sorry, we are out of green peppers right now.")else:print(f"Adding {requested_topping}.")print("\nFinished making your pizza!")

3.3 使用多个列表

available_toppings = ['mushrooms', 'olives', 'green peppers','pepperoni', 'pineapple', 'extra cheese']requested_toppings = ['mushrooms', 'french fries', 'extra cheese']for requested_topping in requested_toppings:if requested_topping in available_toppings:print(f"Adding {requested_topping}.")else:print(f"Sorry, we don't have {requested_topping}.")print("\nFinished making your pizza!")

4 设置if语句的格式

PEP 8: == ; >=; 等比较运算符前后各添加一个空格

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

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

相关文章

Knife4j 使用详解

一、概述 Knife4j 是一款基于 Swagger 的开源 API 文档工具&#xff0c;旨在为 Java 开发者提供更美观、功能更强大的 API 文档生成、展示和调试体验。它是 Swagger-Bootstrap-UI 的升级版&#xff0c;通过增强 UI 界面和扩展功能&#xff0c;解决了原生 Swagger UI 界面简陋、…

Java excel坐标计算

package com.common.base.util.excel;/*** excel 坐标计算*/ public class UtilExcelPosi {/*** deepseek生成 ExcelProperty(index UtilExcelPosi.pA)*/public final static int pA 0;public final static int pB 1;public final static int pC 2;public final static i…

【JavaWeb】Servlet+JSP 实现分页功能

文章目录 思路数据抽出功能设计 功能模块工具类前端内容用户端数据处理 思路 数据抽出 需要显示的数据&#xff0c;查询的数据抽出&#xff1b;进行分页显示&#xff0c;需要统计抽出的件数&#xff0c;然后根据页面显示尺寸调整显示页面内容&#xff1b; 功能设计 翻页需要…

SpringBoot-准备工作-工程搭建

目录 1.创建空项目 2.检查项目jdk版本 3.检查Maven的全局配置 4.配置项目的字符集 5.创建SpringBoot工程 1.创建空项目 2.检查项目jdk版本 3.检查Maven的全局配置 4.配置项目的字符集 5.创建SpringBoot工程

01、python实现matlab的插值算法,以及验证

import numpy as np from scipy.interpolate import griddata import sys def griddata_wrapper(x, y, v, xq, yq, method): """ 包装scipy的griddata函数,支持单个点或多个点的插值 """ try: # 将输入转换为numpy数组…

React ahooks——useRequest

目录 简介 1. 核心功能 2. 基本用法 3. 高级用法 &#xff08;1&#xff09;轮询请求&#xff08;Polling&#xff09; &#xff08;2&#xff09;防抖&#xff08;Debounce&#xff09; &#xff08;3&#xff09;依赖刷新&#xff08;refreshDeps&#xff09; &#x…

re正则、Xpath、BeautifulSouplxml 区别

目录 1. re 正则表达式2. XPath3. BeautifulSoup + lxml4. 功能特性对比5.对比与建议在网页数据解析中,正则表达式(re)XPath(常结合lxml)BeautifulSoup(常依赖解析器如lxml)是三种主流技术,各有核心差异和适用场景。 1. re 正则表达式 优势:文本匹配效率高,尤其适用于…

教师办工专用 资源包|课件+手抄报+PPT模板+常用表格 PDF格式93GB

如果家里亲戚或朋友有走上教育之路的人&#xff0c;给他这份整合可以减轻不少工作负担&#xff0c;更快地适应教育的节奏。也可以发给孩子的老师让他在平时做个班级活动的参考 《老师教学办工资源包》包括手抄报大全、教学计划、工作总结、培训手册、课程表等教学、办公常用资…

算法第37天| 完全背包\518. 零钱兑换 II\377. 组合总和 Ⅳ\57. 爬楼梯

完全背包 完全背包和01背包的区别 纯完全背包&#xff0c;遍历背包和物品的顺序是可以对调的&#xff0c;只要求得出最大价值&#xff0c;不要求凑成总和的元素的顺序&#xff1b; 01背包&#xff0c;遍历背包和物品的顺序是不可以对调的&#xff08;一维不行&#xff0c;二维…

七彩喜智慧康养平台:重构银发生活的数字守护网

随着社会老龄化程度的不断加深&#xff0c;如何让老年人安享幸福晚年成为社会关注的焦点。 在这一背景下&#xff0c;七彩喜智慧康养平台应运而生&#xff0c;以创新的科技手段和贴心的服务理念&#xff0c;为老年人的生活带来了诸多好处&#xff0c;发挥着重要作用&#xff0…

【设计模式】用观察者模式对比事件订阅(相机举例)

&#x1f4f7; 用观察者模式对比事件订阅(相机举例) 标签&#xff1a;WPF、C#、Halcon、设计模式、观察者模式、事件机制 在日常开发中&#xff0c;我们经常使用 事件机制&#xff08;Event&#xff09; 来订阅图像采集信号。然而当系统日益复杂&#xff0c;多个模块同时需要响…

【数据分析九:Association Rule】关联分析

一、数据挖掘定义 数据挖掘&#xff1a; 从大量的数据中挖掘那些令人感兴趣的、有用的、隐含的、先前未知的 和可能有用的 模式或知识 &#xff0c;并据此更好的服务人们的生活。 二、四类任务 数据分析有哪些任务&#xff1f; 今天我们来讲述其中的关联分析 三、关联分析 典…

AWS Security Hub邮件告警设置

问题 需要给AWS Security Hub设置邮件告警。 前提 已经启用AWS Security Hub。 AWS SNS 创建一个AWS Security Hub告警主题SecurityHub-Topic&#xff0c;如下图&#xff1a; 创建完成后&#xff0c;订阅该主题。 AWS EventBridge 设置规则名SecurityHubFindings-Rules…

(OSGB转3DTiles强大工具)ModelSer--强大的实景三维数据分布式管理平台

1. ModelSer 能帮我们做什么 1.1 最快速的 osgb 发布 3dtiles 服务 测试的速度大于 10G/分钟&#xff0c;且速度基本是线性的&#xff08;100G10分钟&#xff0c;1T100分钟&#xff09;。支持城市级倾斜数据半天内完成服务发布&#xff0c;并支持数据的单块更新。 1.2 支持所见…

《HTTP权威指南》 第5-6章 Web服务器和代理

基本Web服务器请求的步骤 1、建立连接 接受一个客户端连接&#xff0c;或者如果不希望与这个客户端建立连接&#xff0c;就将其关闭。 处理新连接客户端主机名识别&#xff1a;反向DNS查找&#xff0c;将IP地址转换为客户端主机名过ident确定客户端用户&#xff1a;客户端支持…

微信二次开发,对接智能客服逻辑

接口友情链接&#xff0c;点击即可访问。 ## 设备创建与复用机制 首次调用/login/getLoginQrCode需传空appId触发设备创建&#xff0c;响应返回固定设备ID。后续登录必须复用此ID以避免风控&#xff08;同一微信号绑定固定设备&#xff09;。设备类型可选ipad/mac&#xff0c;当…

网站并发访问量达到1万以上需要注意哪些事项

当网站并发访问量达到1万以上时&#xff0c;需要注意以下几个方面‌&#xff1a; ‌服务器硬件配置‌&#xff1a; ‌处理器&#xff08;CPU&#xff09;‌&#xff1a;选择多核、高频率的CPU&#xff0c;以确保服务器能够高效地处理大量的请求。‌内存&#xff08;RAM&#xf…

二、OpenCV的第一个程序

文章目录 一、第一个程序&#xff1a;显示图片1.1 cv::imread1.2 cv::namedWindow1.3 cv::imshow 二、第二个程序&#xff1a;视频2.1 cv::VideoCapture 三、加入了滑动条的基本浏览窗口 一、第一个程序&#xff1a;显示图片 示例&#xff1a;一个简单的加载并显示图像的OpenC…

第14次:商品列表、热销商品及详情

第1步&#xff1a;定义获取商品列表的视图类ListView&#xff0c;本视图中完成了如下功能&#xff1a; 根据商品类别id获取商品类别信息&#xff0c;并根据类别信息反向查询到所有的该类别的商品。根据页号和排序方式两个参数&#xff0c;获取某个页面的商品列表信息。 #good…

基于双层注意力重加权 LSTM 的中文长文本谣言检测模型

文章目录 1.摘要2.介绍3.相关工作3.1 假新闻检测数据集3.2 假新闻检测方法3.3 长文本假新闻检测的挑战与进展3.4 与现有方法的区别 4.方法4.1 模型结构4.2模型代码4.3 损失函数与优化方法 5. 实验5.1 数据集与预处理5.2 实验设置5.3 实验结果5.4 对比分析5.5 结果分析与讨论 6.…