#15   函数二  与  匿名函数
1.dir() # 查看内置属性,将对象所有方法名放在另一个列表中.
dic={"水果":"香蕉",'蔬菜':"土豆"}
print(dir(dic))
2.迭代器相关 range() next() iter()
# range() # 一般用于for 循环中
# next 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
try:
# 获得下一个值:
x = next(it)
print(x)
except StopIteration:
# 遇到StopIteration就退出循环
break
# iter() 判断对象是迭代器
from collections import Iterable
from collections import Iterator
l = [1,2,3]
print(isinstance(l,Iterable)) # True
print(isinstance(l,Iterator)) # False l1 = iter(l)
print(isinstance(l1,Iterable)) # True
print(isinstance(l1,Iterator)) # True 3.基础数据类型相关 bool int complex (real + imag *j)
bool() # 用于将给定参数转换为布尔类型,如果没有参数,返回 False.
int()# 三种用法:
#(1).直接转化.
s="1234"
print(int(s)) #1234
#(2).小数取整 浮点型转换成整数
print((int(12.23))) # 结果 12
#补充 :float;将字符转成浮点数
# (3). 将二进制转成十进制
print(int("0100",base=2))
complex 复数 (real + imag *j)
print(complex(1,2)) # 结果 (1+2j)
4.进制转换 bin()十转二进制 oct()十转八进制 hex()十转十六进制
print(bin(3)) #0b11 十转二进制
print(oct(8)) # 0o11 十转八进制
print(hex(20)) #0x14 十转十六进制
5.数学运算abs() 绝对值 divmod() round() pow() sum() min() max()
#abs()
li=[-5,-6,-7,55,66]
print(abs(li[1])) # 6 求元素的绝对值
#divmod() 计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)
print(divmod(7,3)) # (2, 1)
#round(小数,位数) 保留浮点数的小数位数,默认保留整数
print(round(3.1415926,4)) #3.1416
# pow() 求x**y次幂。(三个参数为x**y的结果对z取余)
print(pow(2,3)) #8 2的三次幂
print(pow(3,3,5)) #三个参数 先算3的3次幂 ,结果对第三个参数5 取余 # 结果 2
# sum() 两种用法
#1.求和
li=[1,2,3,4,5]
print(sum(li)) # 15 返回列表元素的和
print(sum(li,100)) #115 后面的参数是它的初始值
# 2.设置初始值
print(sum(li,100)) #115 后面的参数是它的初始值
print(sum(li,sum(li))) #初始值也可以是sum函数 结果30
# min()求最小值 可以加函数名
li2=[-3,-4,-5,55,77]
print(min(li2,key=abs)) # 结果 -3
# max()求最大值 也可以加函数名
dic={'a':3,"b":2,"c":1}
print(max(dic)) #结果 c
def func(x):
return dic[x]
print(max(dic,key=func)) # a
print(dic[max(dic,key=func)]) # 结果3
# 用匿名函数
print(max(dic,key=lambda x:dic[x])) # a
print(dic[max(dic,key=lambda x:dic[x])]) # 3
6.list() tuple() reversed() slice() str() format() bytes() bytearry() memoryview()
# list() 创建列表 也可以转化
l = list((1,2,3))
print(l) # [1, 2, 3]
l = list({'k1':1,'k2':2})
print(l) #['k1', 'k2'] 将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)
# tuple()
tu = tuple((1,2,3))
print(tu) #(1, 2, 3)
tu = tuple({'k1':1,'k2':2})
print(tu) #('k1', 'k2') 将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素
# reversed() 将一个序列翻转,并返回此翻转序列的迭代器
li=[22,33,44,55,66]
print(reversed(li)) # <list_reverseiterator object at 0x000002522EC0CCC0> 返回一个地址
for i in reversed(li):
print(i) # 得到它里面的每一个元素
# slice() 构造一个切片对象,用于列表的切片
li=[1,2,3,4,5,6,7]
li2=[2,-3,4,-5,6,-7]
print(li[1:4]) # [2, 3, 4]
print(li2[1:4]) #[[-3, 4, -5]
rule=slice(1,4,2) #第三个参数为步长
print(li[rule]) # [2, 3, 4]
print(li2[rule]) # [-3, 4, -5]
# str() 将数据转化成字符串 # 与具体数据相关,用于计算各种小数,精算等
# 字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐
print(format('1234', '<20')) #左对齐
print(format('test', '>20')) #右对奇
print(format('abcd', '^20')) #居中对齐
# bytes() 把unicode 转换成 bytes
s = '你好'
bs = s.encode('utf-8')
print(bs) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
bs = bytes(s, encoding='utf-8')
print(bs) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
# bytearry()
ret = bytearray('alex',encoding='utf-8')
print(id(ret)) # 2249729581216 内存地址
print(ret) #bytearray(b'alex')
print(ret[0]) # 97 utf-8编码的第一位 a 序号97
ret[0] = 65
print(ret) #bytearray(b'Alex')
print(id(ret)) # 32249729581216
# memoryview()
ret = memoryview(bytes('你好',encoding='utf-8'))
print(len(ret)) # 字节的长度
print(ret) #<memory at 0x000001E263235F48> 地址
print(bytes(ret[:3]).decode('utf-8')) # 解码字节,范围是[0:3] 你
print(bytes(ret[3:]).decode('utf-8')) #解码字节 范围是[3:] 好
7.ord() chr() ascii()
# ord:输入字符找该字符编码的位置
print(ord('我')) # 25105
# chr:输入位置数字找出其对应的字符
print(chr(100)) #d
# ascii:是ascii码中的返回该值,不是就返回/u..
print(ascii('a')) #'a'
print(ascii('中')) #'\u4e2d'
# 8.repr() dict() set() frozenset() len() sorted()
# repr() 返回一个对象的string形式(原形毕露)
name = 'taibai'
print('我叫%r'%name) # 我叫'taibai'
print(repr('{"name":"alex"}')) #'{"name":"alex"}' 有引号
print('{"name":"alex"}') #{"name":"alex"} 无引号
# set() 创建一个集合
# dict() 创建一个字典
# frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
# len() 返回一个对象中元素的个数
sorted()
l = [('a', 1), ('c', 3), ('d', 4),('b', 2) ]
print(sorted(l,key=lambda x:x[1])) # [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
print(sorted(students,key=lambda x:x[2])) #[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
print(sorted(students,key=lambda x:x[2],reverse=True )) #[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
9.all() any() zip() filter() map()
# all() 可迭代对象中,全都是True才是True
print(all([1, 2, True, 0])) # False 最后一项是0
# any() 可迭代对象中,有一个True 就是True
print(any([1, '', 0])) #True
# zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
# 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
li1=["1","2","3",]
li2=["a","b","c","d"]
li3=["*","**",(1,2,3),"2","4"]
print(zip(li,li2,li3)) #<zip object at 0x0000019722FE32C8>
for i in zip(li,li2,li3):
print(i) #(1, 'a', '*')
# filter() 过滤
def func(x):return x%2 == 0
ret = filter(func, [1, 2, 3, 4, 5, 6, 7])
print(ret)
for i in ret:
print(i) #2,4,6
# map() 会根据提供的函数对指定序列做映射
li=[1,2,3,4,5]
def func1(x):return x*x
ret=map(func1,li) #<map object at 0x0000026608732470>
print(ret)
for i in ret:
print(i)
print(map(lambda x:x**2,[1,2,3,4,5]))
for i in map(lambda x:x**2,[1,2,3,4,5]):
print(i) 10.匿名函数 一句话函数 变量=lambda 参数,参数冒号 返回值.
calc = lambda n:n**n
print(calc(10))
# 匿名函数 格式说明
#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型
res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
print(i)
res = filter(lambda x: x > 10, [5, 8, 11, 9, 15])
for i in res:
print(i)

python全栈开发 * 15知识点汇总 * 180621的更多相关文章

  1. python全栈开发 * 10知识点汇总 * 180612

    10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...

  2. python全栈开发 * 32知识点汇总 * 180717

    32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...

  3. python全栈开发 * 01知识点汇总 * 180530

    一 python简介. 1.创始人:  吉多 .范罗苏姆  \   (Guido van Rossum). 2.时间  :  1989年. 3.主要应用领域  :  云计算 \  WEB开发  \   ...

  4. python全栈开发 * 26知识点汇总 * 180709

    26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...

  5. python全栈开发 * 12 知识点汇总 * 180530

    12 知识点总结 装饰器进阶 ⼀. 通⽤装饰器的回顾1.开闭原则: 对增加功能开放. 对修改代码封闭2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能3.通⽤装饰器的写法:def wrap ...

  6. python全栈开发 * 08知识点汇总 * 180608

    08知识点梳理 文件操作一 .文件操作 r (只读)1.r (读) rb(字节)f=open("果蔬大杂烩",mode="r",encoding="U ...

  7. python全栈开发 * 36知识点汇总 * 180721

    36 操作系统的发展史 进程一.手工操作--穿孔卡片 1.内容: 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制 台开关启动程序针对 ...

  8. python全栈开发 * 31知识点汇总 * 180716

    31 模块和包一.模块(一)模块的种类:内置模块,自定义模块,扩展模块第三方模块(二)自定义模块 1.模块的创建 : 新建一个py文件. 2.模块名 : 模块名需要符合变量的命名规范. 3.模块的导入 ...

  9. python全栈开发 * 24 知识点汇总 * 180705

    24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...

随机推荐

  1. protobuf 动态创建

    https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html https://originlee.com/2015/03/14/ana ...

  2. Adroid动态加载Apk-插件化技术框架(动态代理方案)

    技术:Android + java +动态加载+插件化   概述 为什么要使用插件化?在开发中,一个项目只会越做越大.初始版本可能是单一功能,后续可能加上各种风马牛不相及的功能.所以我认为插件化可以使 ...

  3. WPF相关网址

    5.http://code.msdn.microsoft.com 4.仿真模拟多点触控:http://tinyurl.com/yawwhw2http://multitouchvista.codeple ...

  4. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

  5. 突破这个四个阶段年薪没有50W,还好意思说是搞Java的?

    该视频教程总共分为四个阶段来学习.逐步进阶,并且还会不定期更新.我简介一下每一个阶段的视频资源,学习顺序不分先后. 第一阶段 第一阶段主要从 svn/git 版本号控制.Java高并发.JVM虚拟机. ...

  6. 使用git和github进行协同开发流程

    (本文假设各位已经对基本git的基本概念.操作有一定的理解,如无相关git知识,可以参考Pro Git这本书进行相关的学习和练习) 很多项目开发都会采用git这一优秀的分布式版本管理工具进行项目版本管 ...

  7. asp.net mvc 根据浏览器判断,如果是微信浏览器则进行网页授权,否则直接访问

    遇到这个需求,想到的第一点就是,这个肯定是需要写在一个通用的地方.方便调用.一般可以定义个 父类控制器在OnActionExcuting方法执行前写逻辑,先上代码,一边写代码一边讲解: /// < ...

  8. 【转】使用minizip解压缩多个文件(基于zlib)

    原帖子:使用minizip解压缩多个文件(基于zlib) 写作目的:之前在网上看到很多人在寻找可以解压缩多个文件的程序,其中有尝试zlib的,使用zlib的源码可以生成后缀为点gz的压缩文件,但是一次 ...

  9. [爬虫]采用Go语言爬取天猫商品页面

    最近工作中有一个需求,需要爬取天猫商品的信息,整个需求的过程如下: 修改后端广告交易平台的代码,从阿里上传的素材中解析url,该url格式如下: https://handycam.alicdn.com ...

  10. mac:Go安装和配置+GoLand安装和使用之完整教程

    前言 作为一个go语言程序员,觉得自己有义务为go新手开一条更简单便捷的上手之路.纵使网上教程很多,但总不尽人意.go的入门门槛还是非常低的,无论是安装还是使用. go安装 go 语言支持以下系统:  ...