一、非空即真:

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false

  1. 布尔型,False表示False,其他为True
  2. 整数和浮点数,0表示False,其他为True
  3. 字符串和类字符串类型(包括bytes和unicode),空字符串表示False,其他为True
  4. 序列类型(包括tuple,list,dict,set等),空表示False,非空表示True
  5. 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的更多相关文章

  1. Python非空即真,非零即真

    非空即真,非零即真 #1. 非空即真(只要输入不为空就是真) #username =''(空字典.空字符串.空元组都算空) # a= '' # b=[] # c={} # d=None (返回值是No ...

  2. python协程函数应用 列表生成式 生成器表达式

    协程函数应用 列表生成式 生成器表达式   一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._n ...

  3. xpinyin-函数返回多个值-lambda匿名函数-列表生成式-三元表达式

    import xpinyinp=xpinyin.Pinyin() #实例化print(p.get_pinyin('小白','')) 函数返回多个值:1.函数如果返回多个值的话,它会把这几个值放到一个元 ...

  4. day5_非空即真非零即真

    非空即真(字符串.元组.列表.字典.None),非零即真(指的是int类型或数字这种) # d={}# l=[]# t=()# a = ''# b = None以上都代表空 举例1: name = i ...

  5. Python学习笔记6(列表生成式)

    1.生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3 ...

  6. Python 入门(十)列表生成式

    生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3, ...

  7. Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式

    一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...

  8. 【Python】python内置函数、列表生成式、生成器

    一.内置函数 1 print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真 2 print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真 3 pri ...

  9. python学习之模块(pip),列表生成式,模块操作mysql,excel

    python基础 生成式 列表生成式 格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: res1 = [] for i in range(1,5): res1.append(i) ...

随机推荐

  1. 如何拿CSDN博客上的原图

    比如带水印的地址: http://img.blog.csdn.net/20140408122234546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdT ...

  2. keras 与tensorflow 混合使用

    keras 与tensorflow 混合使用 tr:nth-child(odd) > td, .table-striped tbody > tr:nth-child(odd) > t ...

  3. POJ2777 Count Color 线段树区间更新

    题目描写叙述: 长度为L个单位的画板,有T种不同的颜料.现要求按序做O个操作,操作分两种: 1."C A B C",即将A到B之间的区域涂上颜色C 2."P A B&qu ...

  4. android 用java代码设置布局、视图View的宽度/高度或自适应

    在achat项目中,对话内容的长宽设置为自适应.可是假设文本内容太多,则宽度几乎相同布满,若自己说的和对方说的都非常多内容.则满屏都是文字.则不easy分辨出是来自别人说的还是自己说的.那么须要对本身 ...

  5. Android面试常问的技术问题

    面试时技术经理会问你一些工作中遇到的Android方面的问题.谈谈你所做的项目,和在项目中所扮演的角色. 很多其它内容请參考我的博客:点击打开链接 1.怎样优化ListView? ①Item布局,层级 ...

  6. poi读取word2003(.doc文档)中的表格

    poi读取word2003(.doc文档)中的表格 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API.在网上见到好多通过po ...

  7. Spark入门之DataFrame/DataSet

    目录 Part I. Gentle Overview of Big Data and Spark Overview 1.基本架构 2.基本概念 3.例子(可跳过) Spark工具箱 1.Dataset ...

  8. 第16课 “远程 Git文档库” 的基础操作

    16-1  “远程Git文档库”  的功能 如果  “本地Git文档库” 和  “远程Git文档库”  是存储在不同的计算机中,它们之前传送数据可以通过HTTP/HTTPS.SSH.GIT proto ...

  9. MySQL中DELETE语句嵌套子查询规则

    delete from table .....其中表名不能起别名 比如说:delete from table t where t.id = '1';(这条SQL语句将报错)

  10. Jenkins上Git ssh登陆配置

    1. 首先登陆linux机器 2. 切换到jenkins用户 3. 生成ssh key  ssh-keygen -t rsa -C 'amysu@acxiom.com'   4. 将生成的ssh ke ...