Python 非空即真、列表生成式、三元表达式 day3
一、非空即真:
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false
- 布尔型,False表示False,其他为True
- 整数和浮点数,0表示False,其他为True
- 字符串和类字符串类型(包括bytes和unicode),空字符串表示False,其他为True
- 序列类型(包括tuple,list,dict,set等),空表示False,非空表示True
- None永远表示False
举例一:s = '' if s:print('走if') else:print("走else") #走else 举例二: username = input('username:') if username:print("用户名是%s"%username)#若输入名字则走if else:print("请输入用户名")#若不输入用户名则走else 举例三: a = 0if a :print("go if") else:print("go else")#走else
二、列表生成式:
python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。
对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。
1、range()
一个连续的数字类型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成
b = range(1, 11) print(b) # 结果 range(1, 11)python3直接打印b会显示range(1, 11)对象,并不是直接显示应该列表,如果想显示列表,可以用list()转下 print(type(b))#结果<class 'range'> print(list(b)) # 转list ,输出结果为[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2、列表生成式
(1).如果想对列表里面的数据进行运算后重新生成一个新的列表,如[11,22, 33 ... 1010],按平常思维就是先定义一个列表c,然后for循环挨个运算,算完了再append添加到c,最后c就是新的列表了
# 对列表数平方 b = range(1, 11) c = [] for i in b:c.append(i*i) print(c)# 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
(2).接下来看看用列表生成式如何去实现
# 对列表数平方 b = range(1, 11) c = [x*x for x in b] print(c)# 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
(3).列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表
3、带if判断
1.如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表
c = [1, 3, -3, 4, -2, 8, -7, 6]
d = []
for i in c:if i > 0:d.append(i) # 添加到列表d
print(d)# 结果:[1, 3, 4, 8, 6]
2.接下来可以看看列表生成式,写出更加简洁优雅的代码,快速高效!
# 提取大于0的数 c = [1, 3, -3, 4, -2, 8, -7, 6] d = [x for x in c if x > 0] print(d)# 运行结果[1, 3, 4, 8, 6]
再举个例子:
result3 = [str(i+1).zfill(2) for i in range(1,10)] print(result3) #拆开写等同于 result4 = [] for i in range(1,10):j = str(i+1).zfill(2)result4.append(j) print(result4) #打印结果['01', '02', '03', '04', '05', '06', '07', '08', '09']
三、三元表达式
Python没有三目运算符(?:),但有类似的替代方案,如下:
为真时的结果 if 判定条件 else 为假时的结果
举例:如果77大于66,输出100,否则输出99
a = 100 if 77 > 66 else 99 print(a) #打印结果为100
#另一个例子:题目为判断给定身份证的性别#身份证第17位代表性别,男奇数,女偶数 id_card = '211105200103052312'if int(id_card[-2])%2 == 0:sex = '女' else:sex = '男' print(sex) #上面的代码等同于下面的代码 sex = '女' if int(id_card[-2])%2 == 0 else '男' ##先看if,如果if满足,则为if前面的值,否则取if后面的值 print(sex)
转载于:https://www.cnblogs.com/candysalty/p/10980458.html
Python 非空即真、列表生成式、三元表达式 day3相关推荐
- python判断字符串在元祖_Python基础(2)——字典、元祖、字符串方法、非空即真、文件...
目录: 一.字典 二.元祖 三.字符串方法.切片 四.非空即真,非0即真 五.文件 正文 一.字典 字典 d = { 'username':'xiaohei', 'id':1, 'grand':'天马 ...
- Python实训day03pm【列表生成式、非文本文件的读写与复制、文本文件读写练习】
Python实训-15天-博客汇总表 目录 1.列表生成式 2.列表的嵌套 2.1.习题1 2.2.习题2 3.非文本文件的读写 3.1.读取文件的大小 3.2.复制文件 4.课堂练习 列表生成式 非 ...
- Python学习笔记6(列表生成式)
1.生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3 ...
- 【Python】学习笔记之列表生成式
列表生成式 主要用于生成较为复杂的列表 常用用法 >>> [x * x for x in range(5) if x % 3 !=1 ] [0, 4, 9] #返回除以3余数不为1的 ...
- 初学者python笔记(迭代器、生成器、三元表达式、列表解析、send()与yield())
文章目录 迭代器与for循环的关系 1. 迭代器协议 2. 可迭代对象 3. for循环的本质 4. 强大的for循环机制 5. 迭代器如何工作的 6. while循环模拟for循环与迭代器的结合 7 ...
- 函数递归/二分法/列表,字典生成式/三元表达式/匿名函数/内置函数
一.递归函数 递归函数:就是在函数调用阶段直接或者间接的调用自己 递归函数的两个阶段: 1.回溯:不停的重复的一个过程,在这个过程中将问题不断的简单化,直到最终打到要求(条件) 2.递归:一次次的往回 ...
- python循环构建多个类_Python高级特性:Python迭代、生成器、列表生成式
迭代 给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历称为迭代(Iteration). 在java和C语言中,迭代是通过循环list的下标来完成的,Pyth ...
- 列表生成式,生成器表达式,模块的使用
三元表达式 无论条件成立与否都要返回一个值, 用于简化仅有一个判断的函数(或代码块)递归 递归有循环调用的次数限制,调用函数时,函数相关数据要入栈,而栈区是有限的 二分查找法匿名函数 仅能在定义时使用 ...
- python 函数递归_Python零基础之三元表达式、函数递归、匿名函数教程!超级详细!...
目录 一.三元表达式 二.函数递归 递归调用的定义 递归分为两个阶段:递归,回溯 三.匿名函数 什么是匿名函数? 有名字的函数与匿名函数的对比 lambda匿名函数的应用 四.内置函数 #注意:内置函 ...
最新文章
- 香港大学自然语言处理实验室PhD/RA招生(HKU NLP)
- oracle 日期检查,在检查约束中使用日期,Oracle
- python怎么运行代码-python代码如何运行
- Unable to locate package php5-curl
- 源码安装libjpeg-turbo1.2.1,无root权限
- AndroidM 内核空间到用户空间接口类型
- 一个CSS3滤镜Drop-shadow阴影效果
- zynq开发系列4:EMIO连接按键控制MIO连接的灯
- RoboWare studio学习笔记
- 域名DNS解析找到ip
- JavaScript梗图详解
- 识别到硬盘 计算机不显示盘符,移动硬盘不显示盘符怎么办
- 华硕a550jk4200公版显卡驱动适配教程
- html5 实心圆点,html5使用canvas画空心圆与实心圆
- 宏批量替换多个word指定文字
- 我的男女偶像:莱昂纳多和林青霞
- Qt编写安防视频监控系统25-离线地图
- 坐标系统概念(转载)
- h5py is running against HDF5 1.10.5 when it was built against 1.10.4
- Backup Exec Inventory 与Catalog的含义(转载)