我的编程空间,编程开发者的网络收藏夹
学习永远不晚

 python中的条件判断语句怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

 python中的条件判断语句怎么用

这篇文章主要为大家展示了“ python中的条件判断语句怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ python中的条件判断语句怎么用”这篇文章吧。

1. 避免多层分支嵌套

Python中利用缩进来替代 { }。如果多个 if 嵌套, 堪称 ” 嵌套 if 地狱 “

下面的代码直接翻译了原始条件分支,导致代码可读性和维护性很差。

def buy_fruit(nerd, store):    """去水果店买苹果        - 先得看看店是不是在营业    - 如果有苹果的话,就买 1 个    - 如果钱不够,就回家取钱再来    """    if store.is_open():        if store.has_stocks("apple"):            if nerd.can_afford(store.price("apple", amount=1)):                nerd.buy(store, "apple", amount=1)                return            else:                nerd.go_home_and_get_money()                return buy_fruit(nerd, store)        else:            raise MadAtNoFruit("no apple in store!")    else:        raise MadAtNoFruit("store is closed!")

我们利用取反的方式,“提前结束” 来优化这段代码:

def buy_fruit(nerd, store):    if not store.is_open():        raise MadAtNoFruit("store is closed!")    if not store.has_stocks("apple"):        raise MadAtNoFruit("no apple in store!")    if nerd.can_afford(store.price("apple", amount=1)):        nerd.buy(store, "apple", amount=1)        return    else:        nerd.go_home_and_get_money()        return buy_fruit(nerd, store)

“提前结束” :指在函数内使用 return 或 raise 等语句提前在分支内结束函数。

利用逆向思维,当分支条件不满足时,我们直接结束这段代码,这样更容易阅读。

2. 封装过于复杂的逻辑判断

如果条件分支中有过多的判断条件 and | not | or, 可以将这样的部分封装起来。

if person.is_student and person.age > 20 and person.is_male:    pass

这样封装的部分更有可解释性,更容易被人理解。
最重要的事还解决了,相同代码多次出现的问题。

if person.identity() and person.gender():    pass

3. 不同分支下的重复代码

下面的代码很难让人直观分别出不同:

if person.is_student():    record_imformation(    name = person.name,    age = person.name,    address = person.address,    student_number = 10011,    recorded = now(),    )else:    update_information(    name = person.name,    age = person.name,    address = person.address,    updated = now(),    )

关注这些由分支产生的重复代码块,通过转化简化它们。

if person.is_student():    imformation_func =  record_imformation    extra_args = {'student_number' : 10011, 'recorded' : now() }else:    imformation_func = update_information    extra_args = {'updated' : now() }information_func(    name = person.name,    age = person.name,    address = person.address,    **extra_args)

4. 合理使用三元表达式

使用普通的if / else 语句 代码可读性通常更好。
对于三元表达式只处理简单的逻辑分支即可。

language = "python" if you.favor("dynamic") else "golang"

5. 常见技巧

5.1德摩根定律

对于下面的代码,很难第一时间 get 到逻辑关系。

# 如果用户没有登录或者用户没有使用 chrome,拒绝提供服务if not user.has_logged_in or not user.is_from_chrome:    return "our service is only available for chrome logged in user"

而使用德摩根定律。

not A or not B = not (A and B), 代码读起来会容易很多。

if not (user.has_logged_in and user.is_from_chrome):    return "our service is only available for chrome logged in user"

5.2自定义类的魔法方法

python提供了跟多自定义类的魔法方法,我们可以利用它门,让我们的代码更加pythonic

下面的代码用到了len() 函数。

class UserCollection(object):    def __init__(self, users):        self._users = usersusers = UserCollection([piglei, raymond])if len(users._users) > 0:    print("There's some users in collection!")

通过给类自定义魔法方法,分支条件变得更加简单。
并且可以自己控制魔法方法的返回值。

class UserCollection:    def __init__(self, users):        self._users = users    def __len__(self):        return len(self._users)users = UserCollection([piglei, raymond])# 定义了 __len__ 方法后,UserCollection 对象本身就可以被用于布尔判断了if users:    print("There's some users in collection!")

5.3在条件判断中使用 all() / any()

  • all (x) : x 中所有对象都为真时返回 True, 否则 False

  • any (x): 只要 x 中一个对象为真时返回 True, 否则 False

def all_numbers_gt_10(numbers):    """仅当序列中所有数字大于 10 时,返回 True    """    if not numbers:        return False    for n in numbers:        if n <= 10:            return False    return True

使用all ( )内建函数,再配合生成器表达式。

def all_numbers_gt_10_2(numbers):    return bool(numbers) and all(n > 10 for n in numbers)

5.4使用 try/while/for 中 else 分支

def do_stuff():    first_thing_successed = False    try:        # ...        first_thing_successed = True    except Exception as e:        # ...        return    # 仅当 first_thing 成功完成时,做第二件事    if first_thing_successed:        return do_the_second_thing()

其实,我们可以用更简单的方法达到同样的效果:

def do_stuff():    try:        # ...    except Exception as e:        # ...        return    else:        return do_the_second_thing()

try 的语句块后面加上 else 分支。
类似的 for / while 也支持 else 分支。

6. 常见陷阱

6.1与 None 值得比较

在 python 中, == 与 is 两种比较方法有根本的区别。

  • == : 仅比较两者的值是否一致

  • is : 比较两者是否指向内存中的同一份地址。

但是 None 在 python 中是一个单例对象,如果要判断某个变量是否为 None 要用 is, 只有 is 才严格意义上表示某个变量是否为None

5.2and 和 or 的运算优先级

and 的优先级大于 or

即使执行的优先级如我们想要的一致,也要采取额外括号的方式让代码更清晰。

(True or False) and False # FalseTrue or False and False # True

此外:

c and a or b 不是总能给出正确的结果。只有当 a 与 b 的布尔值为真时,这个表达式才正常工作,因为逻辑运算的短路特性。

以上是“ python中的条件判断语句怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

 python中的条件判断语句怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

 python中的条件判断语句怎么用

这篇文章主要为大家展示了“ python中的条件判断语句怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ python中的条件判断语句怎么用”这篇文章吧。1. 避免多层分支嵌套Python中
2023-06-29

python中的条件判断语句

在python中使用条件判断语句一定不要忘记if else elif后面的冒号:哦if语句的特点:从上往下判断,如果某一个判断是true,将该判断条件对应的语句执行,忽略后面剩下的else和elif1、用if语句实现如果判断结果为true,
2023-01-31

Python的条件判断语句------i

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。  比如,输入用户的年龄,根据年龄打印不同的内容。。。  Python程序中,能让计算机自己作出判断的语句就是if语句:  例:    age = 25    if age >=
2023-01-31

sql中的条件判断语句

sql 中有两种常见的条件判断语句:if-else 语句和 case 语句。if-else 语句根据条件为真或假执行不同的语句,而 case 语句根据表达式值匹配不同情况执行相应的语句。SQL 中的条件判断语句条件判断语句是在 SQL 中
sql中的条件判断语句
2024-04-28

python多个条件判断语句怎么写

在Python中,可以使用if-elif-else语句来编写多个条件判断语句。下面是一个示例:```pythonx = 5if x print("x是负数")elif x == 0:print("x等于0")elif x > 0 and x
2023-10-11

mysql条件判断语句怎么使用

在MySQL中,条件判断语句通常用在SELECT、UPDATE、DELETE和INSERT语句中,用来筛选出符合条件的数据或执行相应的操作。以下是一些常见的条件判断语句的使用方法:SELECT语句中的条件判断:使用WHERE子句来筛选出符合
mysql条件判断语句怎么使用
2024-04-09

Python中的条件判断语句与循环语句用法小结

if语句 >>通用格式 if语句一般形式如下:if : elif : else:另外需要注意的是,Python中是没有switch/c
2022-06-04

arduino多条件判断语句怎么写

在Arduino中,你可以使用if语句来进行多条件判断。if语句的一般语法如下:```if (条件1) {// 如果条件1为真,则执行这里的代码} else if (条件2) {// 如果条件1为假,但条件2为真,则执行这里的代码} els
2023-08-20

C语言的三种条件判断语句怎么使用

本篇内容介绍了“C语言的三种条件判断语句怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!if语句if语句中,首先判断表达式的值,然后根
2023-06-29

Python中的条件判断语句基础学习教程

if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 else-块 )。 else 从句是可选的。 使用if语句:#!/usr/bin/python # Filename: i
2022-06-04

linux中如何使用shell 条件判断语句

linux中如何使用shell 条件判断语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。常用系统变量 $0 当前程式的名称 $n 当前程式的第n个参数,n=1,2,&he
2023-06-13

dos if条件判断语句的实例用法

这篇文章主要讲解了“dos if条件判断语句的实例用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“dos if条件判断语句的实例用法”吧!1、判断驱动器、文件或文件夹是否存在,用 if e
2023-06-09

19:python中的判断语句

19.1 求三角形的面积问题描述:       给出三角形的三条边,求其面积。提示:                                            Python的开根号函数sqrt。        你需要判断三角形三
2023-01-31

mybatis if test条件判断语句中的判断问题实例分析

本文小编为大家详细介绍“mybatis if test条件判断语句中的判断问题实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis if test条件判断语句中的判断问题实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录