python全栈开发 * 15知识点汇总 * 180621
#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的更多相关文章
- python全栈开发 * 10知识点汇总 * 180612
10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...
- python全栈开发 * 32知识点汇总 * 180717
32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...
- python全栈开发 * 01知识点汇总 * 180530
一 python简介. 1.创始人: 吉多 .范罗苏姆 \ (Guido van Rossum). 2.时间 : 1989年. 3.主要应用领域 : 云计算 \ WEB开发 \ ...
- python全栈开发 * 26知识点汇总 * 180709
26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...
- python全栈开发 * 12 知识点汇总 * 180530
12 知识点总结 装饰器进阶 ⼀. 通⽤装饰器的回顾1.开闭原则: 对增加功能开放. 对修改代码封闭2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能3.通⽤装饰器的写法:def wrap ...
- python全栈开发 * 08知识点汇总 * 180608
08知识点梳理 文件操作一 .文件操作 r (只读)1.r (读) rb(字节)f=open("果蔬大杂烩",mode="r",encoding="U ...
- python全栈开发 * 36知识点汇总 * 180721
36 操作系统的发展史 进程一.手工操作--穿孔卡片 1.内容: 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制 台开关启动程序针对 ...
- python全栈开发 * 31知识点汇总 * 180716
31 模块和包一.模块(一)模块的种类:内置模块,自定义模块,扩展模块第三方模块(二)自定义模块 1.模块的创建 : 新建一个py文件. 2.模块名 : 模块名需要符合变量的命名规范. 3.模块的导入 ...
- python全栈开发 * 24 知识点汇总 * 180705
24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...
随机推荐
- TensorFlow实战Google深度学习框架10-12章学习笔记
目录 第10章 TensorFlow高层封装 第11章 TensorBoard可视化 第12章 TensorFlow计算加速 第10章 TensorFlow高层封装 目前比较流行的TensorFlow ...
- markdownpad目录格式配置
表格语法 | Tables | Are | Cool | | ------------- |:-------------:| -----:| | col 3 is | right-aligned | ...
- linux下fallocate快速创建大文件
以前创建文件我一般用dd来创建,例如创建一个512M的文件: dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1 ...
- Why does deep learning work?
Learning Deep Architectures for AI By Yoshua Bengio http://www.iro.umontreal.ca/~bengioy/papers/ftml ...
- mac关闭占用某个端口的进程
在启动项目的时候有时候会提示端口被占用,但是怎么都找不到那个关闭进程的地方,可以直接通过命令行关闭这个进程: 比如要关闭:8000端口的进程: 1. 查找端口进程: lsof -i: 会把所有的占用8 ...
- python环境与PyDev IDE配置
工具eclipse:我目前用是的Eclipse oxygen.历史版本可参考:https://wiki.eclipse.org/Older_Versions_Of_EclipsePython:http ...
- atom汉化
Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器. 推荐一下 Atom官方网站https://atom.io/ GitHub 以后肯定会通过官方模块把 Atom 和 GitHub 进 ...
- 【GMT43智能液晶模块】例程十:DMA实验——存储器到存储器的传输
实验原理: DMA(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据 传输.本实验采用DMA2控制器的数据流0,选用通道0进行数据传输.通过液晶控制传输 和结果显示. 示例截图 ...
- 此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。
1.问题描述 mvc从一个路径获取所有的图片信息,ajax方法如下: function getimages(day) { var year = $("#selYear").val( ...
- Angular4中路由Router类的跳转navigate
最近一直在学习angular4,它确实比以前有了很大的变化和改进,好多地方也不是那么容易就能理解,好在官方的文档和例子是中文,对英文不太好的还是有很大帮助去学习. 官方地址:https://angul ...