码迷,mamicode.com
首页 > 编程语言 > 详细

what's the python之内置函数

时间:2018-01-05 19:54:00      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:orm   源码分析   ted   eval   open   size   iss   exec   重点   

what‘s the 内置函数?

  内置函数,内置函数就是python本身定义好的,我们直接拿来就可以用的函数。(python中一共有68中内置函数。)

 

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

 

下面我们由作用不同分别进行详述:(字体加粗的为重点要掌握的)

技术分享图片

与作用域相关:global和local

技术分享图片

    global——获取全局变量的字典

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

 

str类型代码的执行:eval、exec、compile

技术分享图片

    eval()——将字符串类型的代码执行并返回结果

    exec()——将字符串类型的代码执行单不返回结果

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

 

技术分享图片
>>> #流程语句使用exec
>>> code1 = for i in range(0,10): print (i)
>>> compile1 = compile(code1,‘‘,exec)
>>> exec (compile1)
1
3
5
7
9


>>> #简单求值表达式用eval
>>> code2 = 1 + 2 + 3 + 4
>>> compile2 = compile(code2,‘‘,eval)
>>> eval(compile2)


>>> #交互语句用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

 

与数字相关的:

技术分享图片

 

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

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

数字——数学运算:abs(输出为数字的绝对值),divmod(使用方法即divmod(数字1,数字2),输出为(数字1整除数字2后得到的数,余数)),min,max,sum,round(精确的功能),pow(pow的使用方法即pow(数字1,数字2),数字1**数字2,即次方的形式

技术分享图片
print(divmod(7,3))#(2,1)

print(round(3.14159,2))#3.14
f = 4.197937590783291932703479  #-->二进制转换的问题
print(f)#4.197937590783292
View Code

 

 

与数据结构有关:

技术分享图片

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

序列——字符串相关的:str,format,bytes,bytesarry,memoryview,ord(ord与chr互为倒数,不过这不需要掌握),chr(返回表示Unicode代码点为整数i的字符的字符串。例如,chr(97)返回字符串‘a‘,同时 chr(8364)返回字符串‘€‘),ascii,repr

序列:reversed(用l.reverse,将原列表翻转并赋值,用list(reversed(l)只是将原列表翻转看看,不改变原列表的值也就是说不覆盖),slice(切片的功能)

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

数据集合:len,sorted(排序功能),enumerate(将一个列表的元素由“索引 值”的形式一一解包出来),all,any,zip,filter(一种过滤的功能),map(一种迭代的功能)

技术分享图片
l2 = [1,3,5,-2,-4,-6]
print(sorted(l2,key=abs,reverse=True))#[-6, 5, -4, 3, -2, 1]
print(sorted(l2))#[-6, -4, -2, 1, 3, 5]
print(l2)#[1, 3, 5, -2, -4, -6]


l = [a,b]
for i,j in enumerate(l,1):
    print(i,j)
#1 a
  2 b



L = [1,2,3,4]
def pow2(x):
    return x*x

l=map(pow2,L)
print(list(l))
# 结果:
[1, 4, 9, 16]







def is_odd(x):
    return x % 2 == 1

l=filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
print(list(l))
# 结果:
[1, 7, 9, 17]
View Code

 

其他:

技术分享图片

 

 

输入输出:input(),print()

    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
import sys
for i in range(0,101,2):
     time.sleep(0.1)
     char_num = i//2      #打印多少个#
     per_str = %s%% : %s\n % (i, * * char_num) if i == 100 else \r%s%% : %s%(i,**char_num)
     print(per_str,end=‘‘, file=sys.stdout, flush=True)
复制代码
View Code

    callable——查看参数是否能被调用

def func():pass
print(callable(func))  #参数是函数名,可调用,返回True
print(callable(123))   #参数是数字,不可调用,返回False

    dir——可用于查看一个数据类型的内置方法,类似于help,是一种帮助

 

附:可供参考的有关所有内置函数的文档https://docs.python.org/3/library/functions.html#object

what's the python之内置函数

标签:orm   源码分析   ted   eval   open   size   iss   exec   重点   

原文地址:https://www.cnblogs.com/zhuminghui/p/8206298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!