2019独角兽企业重金招聘Python工程师标准>>>

一。生成器
 
生成器三种方式:
 
1)生成器函数
 
2)数据转化

def gener():
    print(111)
    yield 222
    print(333)
    count = yield 444
    print(count)
    print(555)
    yield 666
g = gener()
print(g)
# print(list(g))
print(g.__next__())
print(g.__next__())
print(g.send('asd'))
print(list(g))
# 输出结果:
# <generator object gener at 0x0000017116671BF8>
# 111
# 222
# 333
# 444
# asd
# 555
# 666
# []      此时生成器函数运行到yield 666 的位置,所以g转化成列表是空[]

# 如果一开始只打印print(list(g))----->输出结果完全不同。结果如下:
# 111
# 333
# None
# 555
# [222, 444, 666]

3)用生成器表达式
 
列表推导式与生成器表达式比较:
 
列表推导式,生成器表达式
1)列表推导式比较直观,占内存
2)生成器表达式不容易看出内容,省内存.
[ 变量(加工后的数据) for 变量i in 可迭代的数据类型 ] 列表的推导式, 循环模式
[ 变量(加工后的数据) for 变量i in 可迭代的数据类型 if 条件] 列表的推导式, 筛选模式
 
列表推导式

# 打印选项1,选项2。。。直到选项10
li = ['选项%s'%i for i in range(1,11)]
print(li)

# 打印30以内能被4整除的所有整数
l1 = [i for i in range(31) if i % 4 == 0]
print(l1)

# 把{'name':'alex','age':29}里的键跟对应的值调换
dic = {'name':'alex','age':29}
dict = {dic[i]:i for i in dic}
print(dict)

# 把里面有两个e元素的罗列出来组成列表
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
l2 = [name for i in names for name in i if name.count('e') == 2]
print(l2)

生成器表达式

#  打印30以内能被4整除的所有整数
l1 = (i for i in range(31) if i % 4 == 0)
print(l1)     #<generator object <genexpr> at 0x0000026AFA1E1BF8>
for i in l1:
    print(i)
#
# 0
# 4
# 8
# 12
# 16
# 20
# 24
# 28

二。内置函数
 
Python自带的函数。比如range(),input(),len(),print(),dir(),max(),int(),min(),sum(),str(),list(),tuple(),id()
 
1.

#print()
print('666',end='')
print('666')
# 输出结果:  666666
print(1,2,3,4,5,sep='|')
# 输出结果:  1|2|3|4|5

# 可以直接把想写的内容写入文件
f = open('file','w',encoding='utf-8')
print(666,file=f)
f.close()

2.
 
dir() 查找对象的所有方法
print(dir([]))
3.

locals()  将局部的变量储存起来
globals() 将全局的变量,函数名,等等 储存起来.
def func():
    name = 'alex'
    print(locals())
    print(globals())
func()

4.
 
help(str) 将你查询的对象所有信息都拿出来.
5.

# abs()取绝对值
print(abs(-1))
# 结果:  1
def func(ret):
    print(44)
# 最大值
ret = max(1,2,-3,key=abs)
print(ret)     #-3
# #最小值
ret = min([1,2,3])
print(ret)      #1
# #sum iterable,初始值
ret = sum([1,2,3],10)
print(ret)       #16

6.

#callable 判断此变量是不是函数名
name = 'alex'
print(callable(name))   #False
def func():
    print(666)
print(callable(func))   #True

7.

#hash() 通过哈希表的规则,将对象转换成哈希值
print(hash('fdsakfhdsafsda'))
print(hash('fd'))
print(hash('fsdsafsda'))
print(hash('fdsdsafsda'))
print(hash('dsakhdsafsda'))
print(hash(('a','b')))
print(hash(True))
# 输出结果:
# 1415579162147690152
# 5615420092049468879
# 4610262276372645226
# -5880321922146481963
# -9092531373745077475
# 1754971611771896552
# 1

8.
 
#all 可迭代对象里面的所有的值转化成bool值如果都是True则,返回True
print(all([1,2,3,0]))    #False
9.

#十进制转化成二进制
print(bin(100))     #0b1100100
# #将十进制转化成八进制
print(oct(9))     #0o11
# #将十进制转化成十六进制
print(hex(33))     #0x21

10.
 
#数据类型str()
#float  :有限小数,无线循环小数,不包含(无线不循环小数)
print(1.35432,type(1.35432))    #1.35432 <class 'float'>
print(float(3))      #3.0
11.

complex()
'''
实数: 有理数,无理数.
虚数:j2
复数: 1 + 2j
'''

12.
 
#divmod() 分页
print(divmod(7,2)) #(3,1)(商,余数)
13.重要的

#enumerate(iterable,start 起始值) 枚举
l = ['手机','电话','耳机',]
for i in enumerate(l):
    print(i)
# 输出结果:
# (0, '手机')
# (1, '电话')
# (2, '耳机')
l = ['手机','电话','耳机',]
for i,j in enumerate(l,100):
    print(i,j)
# 输出结果:
# 100 手机
# 101 电话
# 102 耳机

14.

#eval 有返回值 除去字符串两边的引号,返回里面的内容
#exec 没有返回值 除去字符串两边的引号,执行里面的代码    #流程语句
s = "{'name':'alex'}"
s1 = "1+2+3+4"
print(eval(s),type(eval(s)))           #{'name': 'alex'} <class 'dict'>
print(exec(s),type(exec(s)))           #None <class 'NoneType'>
print(eval(s1))                        #10
code = '''for i in range(10):
    print(i)'''
print(exec(code))                     # 0 1 2 3 4 5 6 7 8 9 None

转载于:https://my.oschina.net/u/3657436/blog/1619889

生成器表达式 内置函数相关推荐

  1. format函数python生成列表_python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)...

    一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...

  2. Python装饰器、生成器、内置函数、Json-Day05

    装饰器 装饰器本质上就是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理 ...

  3. 轩小陌的Python笔记-day13 匿名函数、生成器、内置函数、推导式

    day13 内置函数和推导式 今日概要: 匿名函数 生成器 内置函数 附加:推导式,属于数据类型的知识,内部的高级的用法会涉及到[生成器]和[函数]的内容. 1. 匿名函数 传统的函数的定义包括了:函 ...

  4. python-迭代器、生成器、内置函数及面向过程编程

    一.迭代器 迭代器是迭代取值的工具,迭代是一个重复的过程,每一次重复都是基于上一次的结果而来的. 为什么要用迭代器呢? 1.可以不依赖索引取值 2.同一时刻在内存中只有一个值,不会过多的占用内存 如何 ...

  5. python学习笔记(装饰器、迭代器生成器、内置函数、软件目录开发规范)

    装饰器 定义:本质是函数,(功能:装饰其他函数):就是为其他函数添加附加功能 模拟场景一,在现有的函数中增加某个功能.现有的做法是定义新函数,并且加入函数中.需要修改源代码. def logger() ...

  6. vba数据类型,运算符,内置函数,循环判断语句,窗体控件

    文章目录 VBA基本数据类型 示例代码 声明常量,运算符和表达式 内置函数 代码 可视化编程 判断语句 循环语句 窗体控件,窗体的加载卸载 listbox,checkbox,combobox VBA基 ...

  7. 函数【七】高阶函数/内置函数

    python函数式编程 高阶函数:就是把函数当成参数传递的一种函数 1.函数名可以进行赋值: 2.函数名可以作为函数参数,还可以作为函数的返回值: a.函数是第一类对象 b.函数可以被赋值 c.可以被 ...

  8. python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    一.三元表达式 语法:[成立1 if condition1 else成立2 if condition2 else ...if 成立N conditionN else 不成立] sex = 'man' ...

  9. Python--三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数...

    三元表达式 列表推导式 生成器表达式 递归与二分法 匿名函数 内置函数 一.三元表达式 name=input('姓名>>: ') res='True' if name == 'lee' e ...

最新文章

  1. 你听过BA、DA、AA、TA么?全网疯传的架构实践全景图!
  2. 韩磊老师与C#编程风格
  3. SAP Return to External Vendor
  4. 推荐:梁宏达与体育评书
  5. 前端性能优化之DOM(三)
  6. 爬虫 - HDU题目信息
  7. python中构造方法可以被继承吗_python – 类继承:构造函数应该兼容吗?多重继承的情况?...
  8. Android Coding利器之掌握小技巧,助你Coding更上一层楼~
  9. cmd中加载java源文件_如何在cmd中编译和运行java源文件
  10. 人工智能加速期:算法为王还是场景落地优先 ?
  11. python实现tsinghua-tencent 100000数据集的json文件转为xml文件
  12. (40)不确定性约束
  13. 互联网晚报 | 8月29日 星期日 | vivo宣布9月13号起实行双休工作制;快狗打车赴港IPO;我国中老年网民规模近3亿...
  14. Excel 电子表格文件格式剖析
  15. 百度收录批量查询_如何查看网站是否被收录?
  16. 转《七年之前和七年之后》-祭奠高考
  17. fftn N 维快速傅里叶变换(Matlab)
  18. 竞价推广(SEM)是什么
  19. Excel之COUNTIF函数 判断包含关系
  20. PAT做题过程中的一些方法技巧总结

热门文章

  1. boost::gil::for_each_pixel用法的测试程序
  2. boost::fibers::shared_future的用法实例
  3. boost:验证Boost概念检查的class_requires 库应该在预期的时间内捕获错误
  4. ITK:图像阈值演示可用的阈值算法
  5. ITK:过滤图像而没有复制其数据
  6. VTK:结构化网格之SGrid
  7. VTK:图片之ImageContinuousErode3D
  8. VTK:几何对象之TessellatedBoxSource
  9. OpenGL GLFX开放GL效果库
  10. C++使用数组实现queue之二(附完整源码)