百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

测开不得不会的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...

取消回复欢迎 发表评论: