Python全栈学习笔记day 15:内置函数

全部内置函数列表:

    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()  

函数分类效果图:

https://www.processon.com/view/link/597fcacfe4b08ea3e2454ece?pw=G76Z

G76Z

68个函数,6大类:

一、作用域相关

globals()——获取全局变量的字典

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

二、其他

1、字符串类型代码的执行:

eval() 将字符串类型的代码执行,有返回值

exec()将字符串类型的代码执行,无返回值

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

compile参数说明:   

1. 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。  

2. 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。  

3. 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。

code1 = 'for i in range(0,10): print (i)'
compile1 = compile(code1,'','exec')
exec(compile1)



0
1
2
3
4
5
6
7
8
9

2、输入输出相关:

input() 输入

print() 输出:

     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: 立即把内容输出到流文件,不作缓存
    """

           打印进度条:

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)

3、内存相关:

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

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

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

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

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

4、文件操作相关:

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

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

可以用encoding指定编码.

5、模块操作相关:

import导入一个模块     import time

6、帮助方法:

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

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

7、调用相关:

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

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

8、查看参数所属类型的所有内置方法:

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

三、基础数据类型——和数字相关:

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

进制转换相关:bin,oct,hex

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

三、基础数据类型——和数据结构相关:

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

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

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

重点掌握:

filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

filter的结果集合 <= 执行之前的个数,filter只管筛选,不会改变原来的值
map 执行前后元素个数不变,值可能发生改变
def is_odd(x):
    return x % 2 == 1

ret = filter(is_odd, [1,  6, 7, 12, 17])
print(ret)
for i in ret:
    print(i)



<filter object at 0x0025E3D0>
1
7
17
ret = map(abs,[1,-4,6,-8])
print(ret)
for i in ret:
    print(i)



1
4
6
8

zip:

l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
    print(i)




(1, 'a', '*', 'k1')
(2, 'b', '**', 'k2')

sorted:

对给定的List L进行排序,
方法1.sort进行排序,在原列表的基础上进行排序
方法2.sorted进行排序,生成了一个新列表 不改变原列表 占内存

l = [1,-4,6,5,-10]
l.sort(key = abs)   # 在原列表的基础上进行排序
print(l)


[1, -4, 5, 6, -10]
l = [1,-4,6,5,-10]
print(sorted(l,key=abs,reverse=True))      # 生成了一个新列表 不改变原列表 占内存
print(l)

猜你喜欢

转载自blog.csdn.net/qq_35883464/article/details/83082438