函数基础:内置函数

内置函数:

abs()  # 取绝对值
dict()   # 把一个数据转成字典
min()  # 取最小值
max() # 取最大值
bool() # 判断括号里面的是不是True。bool(0)和bool(False)是False,bool([ ]) #布尔一个空列表或者空字符串也是False。#  空字符串自带bool值,为:False  # None也自带bool值为False
all()   # 判断括号里面的iterables所有元素的bool()是不是True(如果这个iterables里面含有0,那all(iterables)肯定是False)。如果这个iterables是空的,all(iterables)也返回True。
any() # 判断括号里面的iterables的元素中,只要有一个元素的bool()是True, any(iterables)就返回True
dir() # 打印程序里面所有的变量
slice(开始,结束,步长)  #设置切片规则
divmod(x,y)  # 返回一个元祖,元祖的形式是(x//y ,x%y)
id()  # 判断内存地址

sorted(iterable,*,key=None,reverse=False)   # 进行排序(reverse=False是从小到大排序,reverse=True是从大到小)

enumerate() #枚举
bin()  # 转成2进制

eval() 和 exec():

eval()  # 将字符串str当成有效的表达式来求值并返回计算结果(只能处理单行代码)。  
exec() # 功能和eval()一样,他们的区别在: 1. exec()可以对多行代码有效;2. eval()有返回值,但exec()没有返回值。

eval() 可以参考链接: http://blog.csdn.net/SeeTheWorld518/article/details/47983511

如:

情况1:
a = '1+2+3'
res1 = eval(a)  # eval()有返回值,前面可以把返回值赋给变量
print('res:',res1)
# 输出结果:
# res: 6

情况2:
a = '1+2+3'
res2 = exec(a)  # 没有返回值,
print('res:',res2)# 输出结果:
# res: None   # 由于exec()没有返回值,赋给了变量也只能输出None

其它:

ord()  # 返回在ASCII码中的位置  如:ord('a') 为97
chr() # 跟ord()正好相反  如: chr(97) 为'a'

int()  # 把其他类型数据转换成整数
str()  # 把其他类型数据转换成字符串
float()  #  转换成浮点型
sum(iterable)   #求和
bytearray()  # 可以将字符串转换成字节数组(通过这种方式可以修改原字符串)。 

bytearray() 如: (用处不多)

s = '中文'
s1 = bytearray(s,'utf-8')   #转换字符串的时候必须指明encoding,函数将字符串使用str.encode方法转换成字节数组
print(s1)

# 输出结果:
# bytearray(b'xe4xb8xadxe6x96x87')

bytearray() 其他用法用法可参考: https://www.cnblogs.com/sesshoumaru/p/5979159.html

map() & filter() & reduce()

map():

map(function,iterables)   #  将iterables中的每个元素进行前面的function

示例如下: 

print(list(map(lambda x:x*x, [1,2,3,4,5])))  # map完后要把它list一下,要不然打印的是map的内存地址
# 输出结果:
# [1, 4, 9, 16, 25]

filter():

filter(function,iterables)    # 从iterables中过滤出能使前面函数为True的值。

示例如下:

print(list(filter(lambda x:x>3, [1,2,3,4,5])))  # filter完之后要list一下

# 输出结果:
# [4, 5]

reduce() (2.7Python)

# Python3中的reduce移到了functools里面, 用法: 
reduce(function, sequence, initial=None)   # --> value,

# python3官方解释: Apply a function of two arguments cumulatively to the items of a sequence,from left to right, so as to reduce the sequence to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty.

示例如下(python3中的):

import functools
print(functools.reduce(lambda x,y:x*y, [1,2,3,4]))
#输出结果:
#24

import functools
print(functools.reduce(lambda x,y:x*y, [1,2,3,4],10))
#输出结果:
#240

import functools
print(functools.reduce(lambda x,y:x*y, [ ],5))
#输出结果: 
# 5

pow(x,y) 

pow(x,y)  # x的y次方

print()

print(value,......,sep = ' 空格 ',end= '
', file = None)  # print的括号里面默认有一个end='
' (换行符),如果你不想print完之后换行,可以在end='x'里面换成你想以什么结束打印的符号,什么都不写也可以 ;还默认有一个空格,这个空格里面的内容也可以修改(sep是separate的缩写)。

如:

print('hahaha','哈哈哈', sep='-->', end='|')

# 打印结果:
# hahaha-->哈哈哈|    

print也可以把内容直接打印在文件中。如:

msg = '又回到最初的起点,加油'
f = open('print测试','w')
print(msg,'记忆中你青涩的脸',sep='|',end='',file=f)  # 里面的内容都打印在了文件中

# print结果:
# msg和“记忆中你青涩的脸” 都写在了文件‘print测试’里面了。

其它

tuple()  #变成元祖
callable()  #判断是否可调用   (列表、字符串等的结果是False,函数的输出结果是True。所以可以用这个判断一个变量是不是函数)
frozenset()  #使一个集合不可修改
vars()  # 打印当前所有的变量名和其对应的值,dir()只能打印变量名
locals()  # 通常在函数内部运行,打印函数内部所有的局部变量     #  返回一个字典
globals()  # 打印全局变量,不管globals()是在函数内还是函数外运行   #  返回一个字典

zip(list1,list2)   # 可以使两个列表中的值一一对应起来放入一个小元祖内; # 返回一个 zip 对象,可 list() 可dict()

round(数字,n)  # round是约等于(五舍六入),保留小数点后n位;
hash()  # 把要哈希的内容变成一个数字
set()  # 变成集合
原文地址:https://www.cnblogs.com/neozheng/p/8360572.html