what's the python之内置函数

Posted ゛竹先森゜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了what's the python之内置函数相关的知识,希望对你有一定的参考价值。

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之内置函数的主要内容,如果未能解决你的问题,请参考以下文章

what's the python之自定义模块和包

what's the python之异常处理

what's the python之函数及装饰器

what's the python之模块

what's the python之面向对象

what' the python之面向对象(进阶)