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 = 0 if 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 = '' 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)
Python 非空即真、列表生成式、三元表达式 day3的更多相关文章
- Python非空即真,非零即真
非空即真,非零即真 #1. 非空即真(只要输入不为空就是真) #username =''(空字典.空字符串.空元组都算空) # a= '' # b=[] # c={} # d=None (返回值是No ...
- python协程函数应用 列表生成式 生成器表达式
协程函数应用 列表生成式 生成器表达式 一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._n ...
- xpinyin-函数返回多个值-lambda匿名函数-列表生成式-三元表达式
import xpinyinp=xpinyin.Pinyin() #实例化print(p.get_pinyin('小白','')) 函数返回多个值:1.函数如果返回多个值的话,它会把这几个值放到一个元 ...
- day5_非空即真非零即真
非空即真(字符串.元组.列表.字典.None),非零即真(指的是int类型或数字这种) # d={}# l=[]# t=()# a = ''# b = None以上都代表空 举例1: name = i ...
- Python学习笔记6(列表生成式)
1.生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3 ...
- Python 入门(十)列表生成式
生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3, ...
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...
- 【Python】python内置函数、列表生成式、生成器
一.内置函数 1 print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真 2 print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真 3 pri ...
- python学习之模块(pip),列表生成式,模块操作mysql,excel
python基础 生成式 列表生成式 格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: res1 = [] for i in range(1,5): res1.append(i) ...
随机推荐
- 如何拿CSDN博客上的原图
比如带水印的地址: http://img.blog.csdn.net/20140408122234546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdT ...
- keras 与tensorflow 混合使用
keras 与tensorflow 混合使用 tr:nth-child(odd) > td, .table-striped tbody > tr:nth-child(odd) > t ...
- POJ2777 Count Color 线段树区间更新
题目描写叙述: 长度为L个单位的画板,有T种不同的颜料.现要求按序做O个操作,操作分两种: 1."C A B C",即将A到B之间的区域涂上颜色C 2."P A B&qu ...
- android 用java代码设置布局、视图View的宽度/高度或自适应
在achat项目中,对话内容的长宽设置为自适应.可是假设文本内容太多,则宽度几乎相同布满,若自己说的和对方说的都非常多内容.则满屏都是文字.则不easy分辨出是来自别人说的还是自己说的.那么须要对本身 ...
- Android面试常问的技术问题
面试时技术经理会问你一些工作中遇到的Android方面的问题.谈谈你所做的项目,和在项目中所扮演的角色. 很多其它内容请參考我的博客:点击打开链接 1.怎样优化ListView? ①Item布局,层级 ...
- poi读取word2003(.doc文档)中的表格
poi读取word2003(.doc文档)中的表格 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API.在网上见到好多通过po ...
- Spark入门之DataFrame/DataSet
目录 Part I. Gentle Overview of Big Data and Spark Overview 1.基本架构 2.基本概念 3.例子(可跳过) Spark工具箱 1.Dataset ...
- 第16课 “远程 Git文档库” 的基础操作
16-1 “远程Git文档库” 的功能 如果 “本地Git文档库” 和 “远程Git文档库” 是存储在不同的计算机中,它们之前传送数据可以通过HTTP/HTTPS.SSH.GIT proto ...
- MySQL中DELETE语句嵌套子查询规则
delete from table .....其中表名不能起别名 比如说:delete from table t where t.id = '1';(这条SQL语句将报错)
- Jenkins上Git ssh登陆配置
1. 首先登陆linux机器 2. 切换到jenkins用户 3. 生成ssh key ssh-keygen -t rsa -C 'amysu@acxiom.com' 4. 将生成的ssh ke ...