【Python之路】特别篇--Python内置函数
abs() 求绝对值
i = abs(-100) print(i) # 100
all() 循环里面的参数 如果每个元素都为真,那么all返回值为真 假: 0 False None "" [] {} ( 0 None 空值 即为假! )
ret = all([True,1,]) print(ret) # True
any() 只要其中一个为真,结果为真True.区别于all()
ret = any([0,False,'',{},1]) print(ret) # True
ascii(对象) 从对象的类中找__repr__方法,并获取返回值
class Foo: def __repr__(self): return "hello" obj = Foo() r = ascii(obj) print(r) # hello
bin() 10进制 => 二进制
oct() 10进制 => 八进制
int() 2/8/10/16进制 => 十进制
hex() 10进制 => 十六进制
b = bin(10) print(b) o = oct(10) print(o) # 需要表明当前字符串表示的进制, 默认base=10 i = int('110',base=2) print(i) h = hex(10) print(h) # 0b1010 # 0o12 # 6 # 0xa
bool() 判断bool类型
b = bool(None) print(b) # False
bytes() 字符串 => 字节 的转换
b = bytes('中国',encoding="utf-8") print(b) # b'\xe4\xb8\xad\xe5\x9b\xbd'
bytearray() 字节列表 里面每一个元素为字节
chr() 返回对应ascii码的字符
a = chr(65) print(a) # A
ord() 返回对应字符的ascii码
a = ord('a') print(a) # 97
随机验证码应用
#!/usr/bin/env python # -*-coding:utf-8 -*- import random temp = '' for i in range(4): n = random.randrange(0, 4) if n == 1 or n == 3: rad = random.randrange(0, 10) temp += str(rad) else: rad = random.randrange(65, 91) temp += chr(rad) print(temp)
callable() 是否可执行
def f1(): return True c = callable(f1) print(c) b = 123 a = callable(b) print(a) # True # False
classmethod()
compile() 接收字符串并编译成函数
compile(source, filename, mode[, flags[, dont_inherit]]) #中文说明:将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。 #参数source:字符串或者AST(Abstract Syntax Trees)对象。 #参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。 #参数model:指定编译代码的种类。可以指定为 ‘exec’,’eval’,’single’。 str = "3 * 4 + 5" a = compile(str,'','eval') eval(a)
complex() 创建复数
delattr() 点击此处
hasattr() 点击此处
setattr() 点击此处
getattr() 点击此处
dir() 返回参数的属性、方法列表
li = [] print(dir(li))
help() 查看详细帮助信息
print(help(list))
divmod(a,b) 实现a 除以 b,然后返回商与余数的元组
r = divmod(10,3) print(r) # (3, 1)
enumerate() 遍历序列中的元素以及它们的下标
eval() 执行表达式 ,有返回值
ret = eval(" 1 + 3 ") print(ret) a = eval(" a +60" , {"a":99} ) print(a) # 4 # 159
exec() 执行代码 ,没有返回值
exec("for i in range(10):print(i)")
filter(函数,可迭代对象) 过滤,筛选, 循环可迭代对象,获取每个参数,每个元素都执行函数, 如果函数返回True 则符合条件!
def f1(x): if x > 22: return True else: return False ret = filter(f1,[11,22,33]) # filter(lambda x : x>22 , [11,22,33,44] ) for i in ret: print(i) # 11 # 22 # 33
map() 所有数统一做一个操作
def f1(x): return x+100 ret = map(f1,[11,22,33]) # ret = map(lambda x : x+100 , [11,22,33] ) print(ret) for i in ret: print(i) # <map object at 0x0000000003668278> # 111 # 122 # 133
frozenset()
globals() 获取当前代码的所有全局变量
locals() 获取当前代码的所有局部变量
hash()
id() 获取内存地址
isinstance() 判断某个对象,是否由某个类创建
arg = '' ret = isinstance(arg,str / list / tuple) print(ret) # True
issubclass() 判断是不是子类
len() 计算长度
iter() 创建可迭代对象
obj = iter([11,22,33,44]) r1 = next(obj) print(r1) r2 = next(obj) print(r2) #11 #22
next()
yield() 👉详情点击
max() 求最大值
min() 求最小值
memoryview()
object()
open() 文件操作 => 猛击这里
pow() 求指数
print(pow(2,3)) # 8
property() 👉详情点击
repr() __repr__的返回值 同理ascii() , 但是 ascii()返回值,存在中文会转义
reversed() 反转
mylist = [5,4,3,2,1] mylist.reverse() print(mylist) # [1, 2, 3, 4, 5]
round() 四舍五入、保留小数位数
print(round(3.8)) # 4 print(round(1.23456,2)) # 1.23
slice() li[1:2] => __sliceitem__()
sorted() 排序
sum() 求和
r= sum([11,22,33,44]) print(r) # 110
super() 找到父类
type() 查看类型
vars() 查看一个对象中有多少个变量 => obj.__dict__
zip() 接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表
li1=[11,22,33,44] li2=["aa","bb","C","b"] r = zip(li1,li2) for i in r: print(i) # (11, 'aa') # (22, 'bb') # (33, 'C') # (44, 'b')
__import__() 导入模块
import dandom random.randrange() 等于 r = __import__('random') r.randrange()
排序
字符串排序 => 数字 (按顺序 1 ,123 , 25 65 ) => 字母(ascii ) => 中文(16进制)
li = [11,55,00,99,22,33,44] new_li = sorted(li) li = ['a' ,11,22] li.sort() # 只能同种类型 排序!!