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 ...
随机推荐
- ionic 视图滚动到顶部
问题描述 进入页面, 滚动到底部 点击一个连接, 当前视图内容更新了 内容滚动到了上次的位置导致底部的内容没显示 需要控制自动回滚到顶部 <ion-content delegate-handle ...
- EAS开发报错 :数据库表 或 视图 不存在
一:原因分析 建模之后,发布数据时未能及时在数据库创建相应的表格或视图. 二:解决办法 建模视图下——右键模型——更新数据库. 三:名称字段.描述字段在数据库里的存储格式 ...
- 如何卸载EXCEL中的插件?
1.问题:每一次启动,excel都会弹出一个提示框,是因为将treeplan给删除了.找不到. 2.解决办法: 1)在加载项界面,点击转到.就进入自己加载的工具界面 2)将相应项前面的勾取消--但某插 ...
- iOS ReplayKit实时录制屏幕实现方案的细节记录
项目有个需求,需要把ios设备上的操作画面实时传输出去,也就是类似推流手机直播画面的方案. 一番调研后发现在ios中,我们可以通过ios自带ReplayKit框架实现. 关于ReplayKit的讲解, ...
- 如何加大tomcat可以使用的内存
tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大. linux下,在文件{tomcat_home}/bin/catalina.sh的前面, 增加如下设置:J ...
- 【WCF】解析WCF服务的搭建
WCF是.NET提供的一种服务,可以将自己写的程序(完成特定功能,比如从数据库中读取数据操作等)分装成服务以后,发布到服务器上.然后会生成一个网址,客户端在编程的时候,可以引用这个服务,使用这个服务中 ...
- Linux下通过server-status监控性能
Linux下通过server-status监控性能 前提:安装好Apache,在opt/路径下 查看Apache的工作模式 可以知道是 prefork.c模式 配置server-status 性能 进 ...
- [转]Redis内部数据结构详解-sds
本文是<Redis内部数据结构详解>系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds. 不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构.sds正是在Redis中被 ...
- Java中的Cloneable接口理解
Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...
- ListView中的item中的Onclick事件的优化
ListView的Adapter的优化布局载入器的载入次数最典型的使用方法是使用convertView进行优化,让convertView当做布局载入器的载体,也就是.重用 convertView 用以 ...