测开不得不会的python条件判断语句if
off999 2025-05-26 18:11 7 浏览 0 评论
学习目录
1. 条件语句结构
2. 布尔值的判断
3. not 表达式表示相反逻辑
4. == 和is判断的区别
5. 三元表达式(三元运算)
6. 使用all() 和any()函数进行条件判断
7. 使用and 和or判断
8. if __name__ == '__main__'的含义
python的条件语句是指当表达式判断为True(bool值)时执行代码块。
条件语句结构
if 表达式: #表达式为True时 执行代码块1
代码块1
elif 表达式: #表达式为True时 执行代码块2
代码块2
elif 表达式: #表达式为True时 执行代码块3
代码块3
....支持多个elif表达式
else: #以上表达式都为False时 执行代码块n
代码块n
以上结构中elif和else条件语句为非必须。
布尔值的判断
条件表达式判断的是布尔值为True或者False,可以使用函数bool()判断对象的布尔值。
#数字0的布尔值
print(bool(0))
#打印结果
False
#数字1的布尔值
print(bool(1))
#打印结果
True
一些内置对象的布尔值说明:
- 布尔值为False: 数字0,None,False,空列表[],空字典{},空集合set(),空元组()
- 布尔值为True: 非数字0,True,非空列表,非空字典,非空集合set(),非空元组(),自定义的类和实例
自定义的类和实例的布尔值为True:
class Fruit():
def __init__(self,name,color):
self.name = name
self.color = color
fruit = Fruit('apple','red')
print(f'自定义的class 布尔值为{bool(Fruit)}')
print(f'自定义的实例 布尔值为{bool(fruit)}')
#打印结果
自定义的class 布尔值为True
自定义的实例 布尔值为True
not 表达式表示相反逻辑
举例:当表达式为False时,使用not+表达式,if条件判断为True,会执行代码块1
if not 表达式:
代码块1
== 和is判断的区别
== 判断的是两个对象的值是否相等,而is判断的是对象的内存地址是否一致。
举例:变量A和B都为一个空列表
A = []
B = []
#使用==判断
if A == B:
print('A等于B')
#打印结果为True 表示A和B的值一致
True
#使用is判断
print(f'A的内存地址 {id(A)}')
print(f'B的内存地址 {id(B)}')
if A is B:
print('A和B的内存地址是同一个')
else:
print('A和B的内存地址不是同一个')
#执行结果如下 表示A和B的内存地址不是同一个 表达式为False
A的内存地址 4509789696
B的内存地址 4509759936
三元表达式(三元运算)
是一个简化的条件表达式,结构如下:expression为True时执行代码块1,否则执行代码块2
[代码块1] if [expression] else [代码块2]
A = 15
B = 15
if A == B:
C=A+B
else:
C=A-B
以上条件语句可以简化为:
C = A+B if A==B else A-B
使用all() 和any()函数进行条件判断
all() 函数的语法 :all(iterable) 参数为可迭代对象
- 对于迭代对象的的所有值,如果 bool()的结果都为 True,则返回 True,如果可迭代对象为空,返回 False
any() 函数的语法 :any(iterable) 参数为可迭代对象
- 对于迭代对象的的所有值,如果 bool()的结果任意一个为 True,则返回 True,如果可迭代对象为空,返回 False
举例:列表A有四个数字,判断列表的数字是否被2整除,只有数字2和4被2整除(列表表达式请学习python列表介绍)
listA = [1,2,3,4]
#通过前面文章提到的列表表达式 生成新列表传入all和any函数
print(f'执行all()函数的结果: {all([i%2 ==0 for i in listA])}')
print(f'执行any()函数的结果: {any([i%2 ==0 for i in listA])}')
#结果如下
执行all()函数的结果: False
执行any()函数的结果: True
使用and 和or判断
有两个表达式A和B
A和B都为True时 A and B 结果为True
A和B有一个为False时 A and B 结果为False
A和B有一个为True时 A or B 结果为True
A和B都为False时 A or B 结果为False
A = True
B= False
if A and B:
print(f'A和B都为True时 A and B 结果为True')
else:
print(f'A和B有一个为False时 A and B 结果为False')
#打印结果:
A和B有一个为False时 A and B 结果为False
if A or B:
print(f'A和B有一个为True时 A or B 结果为True')
else:
print(f'A和B都为False时 A or B 结果为False')
#打印结果
A和B有一个为True时 A or B 结果为True
if __name__ == '__main__'的含义
python模块(单个的.py文件是一个模块)中使用if __name__ == '__main__'时,指只有直接运行该py文件时if判断才会生效,而当该模块被其他模块import导入时则不会生效。
定一个test.py文件,文件内容如下:
print(f'test.py的属性__name__值为: {__name__}')
if __name__ == '__main__':
print('执行该内容')
#运行test.py 结果: if __name__ == '__main__'判断为True
test.py的属性__name__值为: __main__
执行该内容
当test.py同级目录的另一个文件test1.py通过import导入test.py时:
test1.py文件内容如下:
import test
#运行test1.py的结果:
test.py的属性__name__值为: test
解释:if __name__ == '__main__'判断为False,
因为__name__值变成了文件名test,而不再是__main__
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。
----感谢读者的阅读和学习,谢谢大家。
相关推荐
- Python爬虫:动态漫画图片抓取
-
当今互联网,为了防止内容被轻易抓取,网站的反爬机制可谓是花样百出。其中,动态加载图片、隐藏真实链接、图片分割重组以及加载后自动清除Canvas等技术,给爬虫工程师带来了不小的挑战。本文将结合一个实...
- Python中如何操作Surface对象绘制图形?
-
在Surface对象上绘制图形分为加载图片和绘制图片两个步骤。(1)加载图片加载图片即将图片读取到程序中,通过pygame中image模块的load()方法可以向程序中加载图片,生成Surface对...
- 【猫狗识别系统】图像识别Python+TensorFlow+卷积神经网络算法
-
猫狗识别系统。通过TensorFlow搭建MobileNetV2轻量级卷积神经算法网络模型,通过对猫狗的图片数据集进行训练,得到一个进度较高的H5格式的模型文件。然后使用Django框架搭建了一个We...
- python中Django视图(view)的详解(附示例)
-
本篇文章给大家带来的内容是关于python中Django视图(view)的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。一个视图函数(类),简称视图,是一个简单的Pyt...
- 使用Python实现pdf转图片
-
使用Python实现pdf转图片本文档主要描述将pdf的每一页保存为图片,在本例中,我们使用了PyMuPDF,PyMuPDF是MuPDF的Python绑定库,允许开发者通过Python...
- 资深大佬教你如何利用PyTorch实现图像识别(图文详解)
-
这篇文章主要给大家介绍了关于如何利用PyTorch实现图像识别的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家学习或者使用PyTorch具有一定的参考学习价值,需要的朋友可以参考下目录使用t...
- 实战:谷歌图片搜索——用 Fastapi-MCP 快速从 0 开发一个 MCP Server
-
本文将指导你如何利用Fastapi-MCP快速搭建一个MCP服务器,以实现谷歌图片搜索功能,为AI应用提供强大的工具支持,从而提升AI的实用性和效率。Fastapi是一个PythonWeb框架,...
- python图片处理之图片切割
-
python图片切割在很多项目中都会用到,比如验证码的识别、目标检测、定点切割等,本文给大家带来python的两种切割方式:fromPILimportImage"""...
- Python图像识别实战(三):基于OpenCV实现批量单图像超分辨重建
-
前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。从本期开始,我将做一个关于图像识别的系列文章,让读者慢慢理解p...
- Python 图像处理
-
以前照相从来没有那么容易。现在你只需要一部手机。拍照是免费的,如果我们不考虑手机的费用的话。就在上一代人之前,业余艺术家和真正的艺术家如果拍照非常昂贵,并且每张照片的成本也不是免费的。我们拍照是为了及...
- 游戏百解——利用Python图像识别玩连连看,手把手教你成为大师!
-
这是我自己用程序写的视频,利用Python图像识别算法玩转连连看。感兴趣可以自己看一下。游戏百解——连连看(大神版)前言:程序主要功能是先将练练看的整个大图切分成单个小图,然后进行循环遍历找出相似的图...
- 用Python进行机器学习(13)-图像特征提取
-
相对于前面的机器学习都是处理一些简单的数字,今天我们来用机器学习处理一点稍微高级的内容,我们进行图像的特征提取。图像的特征提取有很多的用途,比如图像分类、目标检测、图像检索、聚类分析、异常检测、图像生...
- 深入剖析Python基本函数:从基础到进阶的完整指南
-
引言Python作为一门简洁高效的编程语言,其函数系统是支撑代码模块化的核心机制。掌握Python函数的使用方法不仅能提升代码的可读性和复用性,还能帮助开发者理解面向对象编程和函数式编程的精髓。本文将...
- 在Python中将函数作为参数传入另一个函数中
-
在我们的Python学习中,我们学到的众多令人瞠目结舌的事实之一是,你可以将函数传入其他函数。你可以来回传递函数,因为在Python中,函数是对象。在使用Python的第一周,你可能不需要了解这些,但...
- 探索 Python CSV 模块的高级用法:从格式识别到数据转换的完整指南
-
CSV(逗号分隔值)是一种用于存储表格数据的文件格式。每一行代表一条数据记录,行内的各个字段由逗号分隔。这是数据领域最常见的文件扩展名之一,也是专业环境中最简单的数据交换格式之一。作为一名具备Pyt...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (54)
- python的for循环 (56)
- python串口编程 (60)
- python写入txt (51)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python斐波那契数列 (51)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)