Pyhton---- 内置函数

  Built-in Functions  
abs()dict()help()min()setattr()
all()dir()hex()next()slice()
any()divmod()id()object()sorted()
ascii()enumerate()input()oct()staticmethod()
bin()eval()int()open()str()
bool()exec()isinstance()ord()sum()
bytearray()filter()issubclass()pow()super()
bytes()float()iter()print()tuple()
callable()format()len()property()type()
chr()frozenset()list()range()vars()
classmethod()getattr()locals()repr()zip()
compile()globals()map()reversed()__import__()
complex()hasattr()max()round() 
delattr()hash()memoryview()set() 

函数分成了6大类

调用相关

  callable(o),o是参数,看这个变量是不是可调用。

如果o是一个函数名,就会返回True

def fucn():
    a = 1
    print(a)
    print(locals())
    print(globals())
# fucn()
print(callable(fucn))
View Code
def func():pass
print(callable(func))  #参数是函数名,可调用,返回True
print(callable(123))   #参数是数字,不可调用,返回False
实例

帮助相关

  help: 可以帮助查看一些内置函数的方法特性,可以help(list),包含方法名及使用方法

在控制台执行help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出

或者直接执行help(o),o是参数,查看和变量o有关的操作。。。

查看内置属性

  dir: 查看该数据类型的内置方法,比help(list)更直观的看到内置方法

dir() 默认查看全局空间内的属性,也接受一个参数,查看这个参数内的方法或变量

print(dir(list))  #查看列表的内置方法
print(dir(int))  #查看整数的内置方法

模块

import:导入模块

import time

__import__

os = __import__('os')
print(os.path.abspath('.'))

文件打开

open:打开模式,r/w/a ,    rb/wb/ab/.  如果同时使用读写,造成光标混乱

open()  打开一个文件,返回一个文件操作符(文件句柄)

操作文件的模式有r,w,a,r+,w+,a+ 共6种,每一种方式都可以用二进制的形式操作(rb,wb,ab,rb+,wb+,ab+)

可以用encoding指定编码.

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
#mode:默认读,buffering:是否要缓存,encoding:以什么方式解码

内存相关的

:(id,hash)

  hash功能:数据的查找和存储

  字典的key,使用hash,形成唯一的值,再次查找时,通过索引进行查找value,这就是字典的键唯一性的问题,

  哈希判断一个数据类型是否可哈希,一次执行时,对同一个hash的结果总是不变。多次执行代码时,内存地址可能会改变

  id:查找地址

输入输出

  input:

  print:(1)*args,动态参数,(2)sep: 指定分割符,多个打印内容之间的分隔符,(3)file:写入文件,file

  所有的print都当作往一个文件里写内容

line = open('name.txt','w',encoding="utf-8")
def mai():
    import time
    for i in range(65,91):
        s = "\r{name:s}".format(name=str(i))
        time.sleep(0.5)
        print(s,file=line)
mai()

  print("\r%s"%1)"\r",每一次把光标移动至头部,flush = True :强制每次打印的内容立即打印,不要缓存

字符串类型:

  exec:可以处理字符串式的python代码,无返回值

  eval:和exec功能相同,但是有返回值.eval与exec模块,能够接受并运行python程序代码的字符串,。这种结构是python能够实现产品定制的原因,:因为python可以动态的修改,用户可以改进系统内部的代码,
  而不需要拥有或编译整个系统的代码。

  compile 将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。

  
compile :一次编译,可以多次执行调用
>>> #交互语句用single
>>> code3 = 'name = input("please input your name:")'
>>> compile3 = compile(code3,'','single')
>>> name #执行前name变量不存在
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    name
NameError: name 'name' is not defined
>>> exec(compile3) #执行时显示交互命令,提示输入
please input your name:'pythoner'
>>> name #执行后name变量有值
"'pythoner'"
View Code

和数字相关  

divmod

divmod(6,2),取商,取余,商余函数, 用在网页分页

print(divmod(10,3))#divmod(x,y):求x除y 的值,并以元组的方式返回商和余数。
#(3,1)

abs:绝对值

round:round(3,145,2)保留两位小数

>>> round(10.5)# 使用round 奇进偶弃, 如果距离两边一样远,会保留到偶数的一边。    比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。
10
>>> round(11.5)
12
#python不支持复数转换为浮点数或者整数
>>> int(4.5+0.j)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert complex to int
>>> float(4+0j)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert complex to float
View Code

pow()

pow(2,3) 幂次运算:第一个数字与第二个数字的幂次运算。pow(2,3,4) 第三个数取余,是2的3次幂 除以4,取余。pow运算后返回的值为int类型。

sum

接收一个可迭代对象,和默认参数,默认参数,计算前面的总和之后然后 和后面的默认参数相加

sum(iterable[,start])#返回迭代对象全部相加的和,如果填写start ,计算全部和之后再加start
print(sum(L,1))

min

print(min([1,2],default=0)) #default 的作用是用来预防传入的可迭代对象为空时,返回一个 默认值
min({1,2,3,4,5},key=lambda n:abs(n))# key 是设置一个匿名函数
max:   
t= (-5,1,2,4)   
print(max(t,key=abs))  
print(max([1,2],default=0))

总结 :

  数字——数据类型相关:bool,int,float,complex

  数字——进制转换相关:bin,oct,hex

  数字——数学运算:abs,divmod,min,max,sum,round,pow


作用域相关
globals :获取全局的变量的字典  

locals: 获取执行本方法所在命名空间内的局部变量的字典

 

reversed():参数是一个序列,返回一个迭代器,不修改原列表 ret = reversed(l)

reverse():参数是一个序列,返回一个None,调用使用l.reverse()

slice():实现切片的函数

fromat:

 



bytes:功能:用于传输,意义:转换成字节码,修改的时候,会重新创建一个新的内存地址,
bytearry:对比较长的字符串,修改次数多。指定某处修改,不会改变bytearry 的内存地址。只对字符有作用,
memoryview#  v = memoryview(bytes("啊水电费",encoding="utf-8"))

old:字符转编码

chr:数字转字符
ASCII:
repr:功能,显示数据类型 print(“name %r”.fromat("金老板"))


enumrate():枚举,返回一个元组
all:接受可迭代对象,有一个假则为假
any:有一个为真则为真

print(zip([1,3,4],[12,4,5])):返回迭代器
zip():接收可迭代的,以短的元素为基准,返回元组:拉链用法
filetr(): 使用该函数,得到的返回值为迭代器,须用list强转
    def fun(x):
        if x % 2 is 0:
            return  True
    a =filter(fun,[1, 4, 6, 7, 9, 12, 17]) #此时的a 为 <filter object at 0x02461730>
    print(list(a))

and: return x and x.strip(): and 前面一个值为假,就不会执行下一个

map():新内容等于原内容

filter 与map: 都是函数名+可迭代对象
且返回值都是可迭代对象
filter:筛选,筛选后的还是原来列表中的
map:对可迭代对象中的每一项做操作,结果不一定是原来列表中的元素
sort:
sorted

数字有关
print(int()) #如果不填写内容,返回0
print(int(3.6)) # 取整
print(int('12',16))#以十六进制进行转换
a = int("0xa",16)
print(a,type(a))#返回类型为int
#总结:int(x,base=10),x可以为字符串,默认为10进制转换

  float:返回浮点数,可以将字符串类型进行转换

print(float(1))
print(float("123"))
#print(float(1))
#print(float("123"))

  bool: bool 继承自int类

#如果传入的为空元祖或者,空字典、空集合都是false,且0 也是false
print(bool(123<1))
print(bool(0))
print(bool({}))
print(bool(' '))
print(issubclass(bool,int))#判断是否为继承关系,如果是返回True

  complex:  

print(complex("1+2j"))#注意:1+2j 中间不能有空格
print(complex("1"))
print(complex(1,2))#返回的元组

 和数字相关的数字运算:

  abs:求一个数字的绝对值

 

数据结构相关

—序列——列表与元组:list 意义可以生成列表,强制转换生成器的结果。使用list函数返回一个list类型的列表,参数是可迭代。

tuple():作用可以使可迭代对象转化为元组,如果参数为字典返回由字典的键组成的元组。如果是列表则返回的是元组,如果列表中还嵌套有列表,是不会改变内层的类型

a =list((134,23))
print(a,type(a))
a =list((134,23))
a =tuple({1:2,3:4})
a =tuple([1,2,3,[1,2,3],4])

序列——列表和元组相关的:list和tuple

序列——字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr

ret = bytearray('alex',encoding='utf-8')
print(id(ret))
print(ret[0])
ret[0] = 65
print(ret)
print(id(ret))
bytearray
ret = memoryview(bytes('你好',encoding='utf-8'))
print(len(ret))
print(bytes(ret[:3]).decode('utf-8'))
print(bytes(ret[3:]).decode('utf-8'))
memoryview

序列:reversed,slice

l = (1,2,23,213,5612,342,43)
print(l)
print(list(reversed(l)))
reversed
l = (1,2,23,213,5612,342,43)
sli = slice(1,5,2)
print(l[sli])
slice
1. 函数功能将一个数值进行格式化显示。
2. 如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化。
>>> format(3.1415936)
'3.1415936'
>>> str(3.1415926)
'3.1415926'
3. 对于不同的类型,参数format_spec可提供的值都不一样

#字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐
print(format('test', '<20'))
print(format('test', '>20'))
print(format('test', '^20'))

#整形数值可以提供的参数有 'b' 'c' 'd' 'o' 'x' 'X' 'n' None
>>> format(3,'b') #转换成二进制
'11'
>>> format(97,'c') #转换unicode成字符
'a'
>>> format(11,'d') #转换成10进制
'11'
>>> format(11,'o') #转换成8进制
'13'
>>> format(11,'x') #转换成16进制 小写字母表示
'b'
>>> format(11,'X') #转换成16进制 大写字母表示
'B'
>>> format(11,'n') #和d一样
'11'
>>> format(11) #默认和d一样
'11'

#浮点数可以提供的参数有 'e' 'E' 'f' 'F' 'g' 'G' 'n' '%' None
>>> format(314159267,'e') #科学计数法,默认保留6位小数
'3.141593e+08'
>>> format(314159267,'0.2e') #科学计数法,指定保留2位小数
'3.14e+08'
>>> format(314159267,'0.2E') #科学计数法,指定保留2位小数,采用大写E表示
'3.14E+08'
>>> format(314159267,'f') #小数点计数法,默认保留6位小数
'314159267.000000'
>>> format(3.14159267000,'f') #小数点计数法,默认保留6位小数
'3.141593'
>>> format(3.14159267000,'0.8f') #小数点计数法,指定保留8位小数
'3.14159267'
>>> format(3.14159267000,'0.10f') #小数点计数法,指定保留10位小数
'3.1415926700'
>>> format(3.14e+1000000,'F')  #小数点计数法,无穷大转换成大小字母
'INF'

#g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp<p,则采用小数计数法,并保留p-1-exp位小数,否则按小数计数法计数,并按p-1保留小数位数
>>> format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点
'3e-05'
>>> format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留1位小数点
'3.1e-05'
>>> format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留2位小数点
'3.14e-05'
>>> format(0.00003141566,'.3G') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写
'3.14E-05'
>>> format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点
'3'
>>> format(3.1415926777,'.2g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留1位小数点
'3.1'
>>> format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留2位小数点
'3.14'
>>> format(0.00003141566,'.1n') #和g相同
'3e-05'
>>> format(0.00003141566,'.3n') #和g相同
'3.14e-05'
>>> format(0.00003141566) #和g相同
'3.141566e-05'
format

数据集合——字典和集合:dict,set,frozenset

数据集合:len,sorted,enumerate,all,any,zip,filter,map

filter和map:http://www.cnblogs.com/Eva-J/articles/7266192.html

sorted方法:http://www.cnblogs.com/Eva-J/articles/7265992.html

 

其他

 字符串类型代码的执行

内置函数——eval、exec、compile

 输入输出相关

input() 输入

s = input("请输入内容 : ")  #输入的内容赋值给s变量
print(s)  #输入什么打印什么。数据类型是str

print() 输出

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    file:  默认是输出到屏幕,如果设置为文件句柄,输出到文件
    sep:   打印多个值之间的分隔符,默认为空格
    end:   每一次打印的结尾,默认为换行符
    flush: 立即把内容输出到流文件,不作缓存
    """
print源码剖析

file关键字的说明

f = open('tmp_file','w')
print(123,456,sep=',',file = f,flush=True)

打印进度条

import time
for i in range(0,101,2):  
     time.sleep(0.1)
     char_num = i//2      #打印多少个'*'
     per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num)
     print(per_str,end='', flush=True)
#小越越  : \r 可以把光标移动到行首但不换行

数据类型相关

type(o) 返回变量o的数据类型

 

内存相关

id(o) o是参数,返回一个变量的内存地址

hash(o) o是参数,返回一个可hash变量的哈希值,不可hash的变量被hash之后会报错。

t = (1,2,3)
l = [1,2,3]
print(hash(t))  #可hash
print(hash(l))  #会报错

'''
结果:
TypeError: unhashable type: 'list'
'''
hash实例

hash函数会根据一个内部的算法对当前可hash变量进行处理,返回一个int数字。

*每一次执行程序,内容相同的变量hash值在这一次执行过程中不会发生改变。

t = (1,2,3)
l = [1,2,3]
print(hash(t))  #可hash
print(hash(l))  #会报错

'''
结果:
TypeError: unhashable type: 'list'
'''

 

 匿名函数

 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

#这段代码
def calc(n):
    return n**n
print(calc(10))
 
#换成匿名函数
calc = lambda n:n**n
print(calc(10))

上面是我们对calc这个匿名函数的分析,下面给出了一个关于匿名函数格式的说明

函数名 = lambda 参数 :返回值

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型

上面是匿名函数的函数用法。除此之外,匿名函数也不是浪得虚名,它真的可以匿名。在和其他功能函数合作的时候

l=[3,2,100,999,213,1111,31121,333]
print(max(l))

dic={'k1':10,'k2':100,'k3':30}


print(max(dic))
print(dic[max(dic,key=lambda k:dic[k])])
res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i)

输出
1
25
49
16
64
res = filter(lambda x:x>10,[5,8,11,9,15])
for i in res:
    print(i)

输出
11
15

现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

#答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
#答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
#还可以这样写
print([{i:j} for i,j in zip(t1,t2)])
1.下面程序的输出结果是:
d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x)
x = t(x)
x = d(x)
print x

2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

3.以下代码的输出是什么?请给出答案并解释。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
请修改multipliers的定义来产生期望的结果。
练习

请务必重点掌握:

其他:input,print,type,hash,open,import,dir

str类型代码执行:eval,exec

数字:bool,int,float,abs,divmod,min,max,sum,round,pow

序列——列表和元组相关的:list和tuple

序列——字符串相关的:str,bytes,repr

序列:reversed,slice

数据集合——字典和集合:dict,set,frozenset

数据集合:len,sorted,enumerate,zip,filter,map

参考文档:

  http://www.cnblogs.com/Eva-J/articles/7206498.html

  https://docs.python.org/3/library/functions.html#object

 

转载于:https://www.cnblogs.com/huyangblog/p/7808193.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值