首页 > 编程语言 >python 项目如何使用三元表达式?

python 项目如何使用三元表达式?

时间:2023-02-14 09:23:22浏览次数:37  
标签:even count python else __ 三元 表达式

对于精通Python语言的程序员来说,Python 有一种语法刚入行的人看到会一脸懵,坦白的来说他其实非常的简单,仅仅只是一个语法,别拿它太当回事,知道会用就OK了。 对于我个人来说三元表达式很简单,无非就是下面的这样的格式嘛。

a = 10
b = 22
 
max = a if a>b else b
 
if a>b:
max = a
else:
max = b
这是不是很好理解。 但是我还是决定写一遍文章来记录这个三元表达式,这是为什么呢? 因为这里面还是有一些比较难理解的东西,就是我们下面要说的三元表达式的嵌套。 就说下面这道题,我一开始就没有搞明白。 使用嵌套的三元组表达式统计数字频率,如果是2的倍数加1,如果是4的倍数加2,否则加0
if __name__ == '__main__':
pi = [3, 14, 15, 9, 26, 5, 35, 8, 97, 932]
even_count = 0
for i in pi:
# TODO(You): 请在此实现统计代码
assert even_count == 6
#请选出下列能正确实现这一功能的选项。 我们先说正确答案,然后再来理解哈。
even_count += 2 if i % 4 == 0 else 1 if i % 2 == 0 else 0
我们如果不用三元表达式来写这段代码应该是怎么样呢? 完整代码如下:
if __name__ == '__main__':
pi = [3, 14, 15, 9, 26, 5, 35, 8, 97, 932]
even_count = 0
for i in pi:
# TODO(You): 请在此实现统计代码
if i % 4 == 0:
even_count += 2
elif i % 2 == 0:
even_count += 1
else:
even_count += 0
print(even_count == 6)
看了分解的代码,我们再来理解上面的代码,为了方便,复制到下面:
even_count += 2 if i % 4 == 0 else 1 if i % 2 == 0 else 0
我们要清楚,这样的嵌套其实最后最能选定一个结果,就是说,这个嵌套跟我们的python中的if…elif…else结构一样,而不是if…if…else,这样的结构可能会选定多个结果。 我们从左往右读代码也是一样的,也是python对这句话的执行顺序。 首先读
if i % 4 == 0
如果这个条件成立,那就直接执行。
even_count += 2
后面的条件也就不管了,如果这个条件不成立,才会继续判断条件。
if i % 2 ==0
如果条件成立,那么就会执行相应的语句。
even_count += 1
否则执行语句。
even_count += 0
不知道我这样说你理解了没有,至于这道题为什么是要 if i % 4 == 0 在 if i % 2 ==0 前面,是因为前面一个条件包含了第二个条件,这样想,如果把 if i % 2 ==0 放在 if i % 4 == 0 前面,那么那些4的倍数就不会被单独提出来,而是和2的倍数一起放在一个集合里面,这显然不是我们想要的。

标签:even,count,python,else,__,三元,表达式
From: https://www.cnblogs.com/q-q56731526/p/17118549.html

相关文章

  • python配置虚拟环境
    首先安装pipinstallvirtualenvpipinstallvirtualenvwrapper创建虚拟环境:mkvirtualenv虚拟环境名称列出所有虚拟环境:lsvirtualenv切换虚拟环境:workon 虚拟环境......
  • 一文看懂 Python 中的函数参数
    函数定义中的参数也就是形式参数,规定了在调用函数时如何传递实际参数以及这些参数有无默认值。实参传递方式deff(a):print(a)实参传递方式有两种,位置和关键字。......
  • Python 高级编程之网络编程 SocketServer(七)
    目录一、概述二、socket模块与socketserver关系三、socketserver模块使用1)创建TCPServer2)创建UDPServer四、异步服务器类(对线程、多进程)1)ThreadingMixIn(多线程)2)Forki......
  • python中list中的元素去重
     直观方法最简单的思路就是: 代码如下:ids=[1,2,3,3,4,2,3,4,5,6,1]news_ids=[]foridinids:   ifidnotinnews_ids:       news_ids.a......
  • SparkSQL指南-快速开始(Python版)——(一)
    快速开始创建环境Spark程序主要分为三个阶段:创建环境数据操作关闭环境(在Streaming程序中为执行环境)下面是批处理的SparkSQLAPI的创建环境的类:SparkSession,其目的......
  • python中defaultdict 的用法
    defaultdict:当我使用普通的字典时,用法一般是dict={},添加元素的只需要dict[element]=value即,调用的时候也是如此,dict[element]=xxx,但前提是element字典里,如果不在字......
  • 电商网站Web自动化测试实战( 编写京东搜索脚本python+selenium框架)
    电商网站Web自动化测试实战(编写京东搜索脚本)1,打开京东页京东首页地址:https://www.jd.com/,故进入京东首页如下:2,打开浏览器开发者模式定位元素前需先打开浏览器开发者......
  • python pandas库总结-数据分析和操作工具
    参考:https://pandas.pydata.org/Input/output相关函数pandas.read_excel—将Excel文件读入pandas数据框支持读取xls,xlsx,xlsm,xlsb,odf,ods和odt文件扩展名,支持单......
  • python爬虫学习——列表
    namelist=[]#定义一个空的列表namelist1=["小张","小红","小李"]print(namelist1[0])print(namelist1[1])print(namelist1[2])testlist=[1,"测试"]#列表中......
  • python入门学习笔记004--趣学Python算法--第4例百钱百鸡
    中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只? ......