【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() # 只能同种类型 排序!!
浙公网安备 33010602011771号