1 求绝对值或复数的模
>>> abs(-6)
6
2 元素都为真
# 接受一个迭代器,如果迭代器的所有元素都为真,那么返回 True,否则返回 False
all([1,0,3,6])
False
all([1,2,3])
True
3 元素至少有一个为真
# 接受一个迭代器,如果迭代器里至少有一个元素为真,那么返回 True,否则返回 False
any([0,0,0,[]])
False
any([0,0,1])
True
4 ascii 展示对象
# 调用对象的 repr() 方法,获得该方法的返回值,如下例子返回值为字符串
class Student(object):
def __init__(self, id, name):
self.id = id
self.name = name
def __repr__(self):
return 'id=' + self.id + ', name=' + self.name
xiaoming = Student(id='001', name='xiaoming')
print(
xiaoming
)
print(
ascii(xiaoming)
)
5 十转二
# 将十进制转为二进制
bin(10)
'0b1010'
6 十转八
# 将十进制转为八进制
oct(9)
'0o11'
7 十转十六
# 将十进制转为十六进制
hex(15)
'0xf'
8 判断是真是假
# 测试一个对象是True, 还是False
bool([0,0,0])
True
bool([])
False
bool([1,0,1])
True
9 字符串转字节
# 将一个字符串转换成字节类型
s = "apple"
bytes(s, encoding='utf-8')
b'apple'
10 转为字符串
# 将字符类型、数值类型等转换为字符串类型
i = 100
str(i)
'100'
11 是否可调用
# 判断对象是否可被调用,能被调用的对象就是一个 callable 对象,比如函数 str,
int 等都是可被调用的,但是例子 4 中 xiaoming 实例是不可被调用的:
callable(str)
True
callable(int)
True
callable(xiaoming)
False
12 十转 ASCII
# 查看十进制整数对应的 ASCII 字符
chr(65)
'A'
13 ASCII 转十
# 查看某个 ASCII 字符对应的十进制数
ord('A')
65
14 静态方法
# classmethod 装饰器对应的函数不需要实例化,不需要 self 参数,但第一个参数需
要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。
class Student(object):
def __init__(self, id, name):
self.id = id
self.name = name
def __repr__(self):
return 'id=' + self.id + ', name=' + self.name
@classmethod
def f(cls):
print(cls)
15 执行字符串表示的代码
# 将字符串编译成 python 能识别或可执行的代码,也可以将文字读成字符串再编译。
s = "print('valuebai')"
r = compile(s, "<string>", "exec")
print(r)
exec(r)
16 创建复数
# 创建一个复数
complex(1,2)
(1+2j)
17 动态删除属性
# 删除对象的属性
18 转为字典
# 创建数据转为字典
dict()
{}
dict(a='a', b='b')
{'a':'a', 'b':'b'}
dict(zip(['a', 'b'], [1,2]))
{'a':1, 'b':2}
dict([('a', 'b'), (1,2)])
{'a':1, 'b':2}
19 一键查看对象所有方法
# 不带参数时返回当前范围内的变量、方法和定义的类型列表;带参数时返回参数的属性,
方法列表
In [96]: dir(xiaoming)
Out[96]:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__weakref__', 'name']
20 取商和余数
# 分别取商和余数
divmod(10,3)
(3,1)
21 枚举对象
# 返回一个可以枚举的对象,该对象的 next() 方法将返回一个元组
s = ['a', 'b', 'c']
for i, v in enumerate(s):
print(i, v)
22 计算表达式
# 将字符串str当成有效的表达式来求值并返回计算结果提取出字符串中的内容
s = "1+3+5"
eval(s)
9
23 查看变量所占字节数
import sys
a = {'a':1, 'b':2.0}
sys.getsizeof(a)
240
24 过滤器
# 在函数中设定过滤条件,迭代元素,保留返回值为True的元素:
fil = filter(lamda x: x>10,[1,11,2,45,7,6,13])
list(fil)
[11,45,13]
25 转为浮点类型
# 将一个整数或数值型字符串转换为浮点数
float(3)
3.0
如果不能转为浮点数,会报ValueError:
比如: float('a')
26 字符串格式化
# 格式化输出字符串,format(value, formatspec)实质上是调用了value的 ***for-mat*(formatspec)方法。
print("i am {0}, age{1}".format("tom",18))
i am tom, age18
27 冻结集合
# 创建一个不可修改的集合,因为不可修改,所以没有像set那样的add和pop方法
frozenset([1,1,3,2,3])
frozenset({1, 2, 3})
28 动态获取对象属性
# 获取对象属性
class Student(object):
def __init__(self, id, name):
self.id = id
self.name = name
def __repr__(self):
return 'id=' + self.id + ', name=' + self.name
xiaoming = Student(id='001', name='xiaoming')
getattr(xiaoming, 'name') # 获取xiaoming这个实例的name属性值
29 对象是否有这个属性
class Student(object):
def __init__(self, id, name):
self.id = id
self.name = name
def __repr__(self):
return 'id=' + self.id + ', name=' + self.name
xiaoming = Student(id='001', name='xiaoming')
hasattr(xiaoming, 'name')
->True
hasattr(xiaoming, 'phone')
->False
30 返回对象的哈希值
# 返回对象的哈希值,值得注意的是自定义的实例都是可哈希的,list,dict,set等可变对象都是不可哈希的
hash(xiaoming)
->6139638
hash([1,2,3])
->报错
31 一键帮助
# 返回对象的帮助文档
help(xiaoming)
32 对象门牌号
# 返回对象的内存地址
id(xiaoming)
33 获取用户输入
# 获取用户输入内容
input('请输入')
34 转为整型
# int(x, base=10), x可能为字符串或数值,将x转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。
int('12', 16)
->18
35 isinstance
# 判断object是否为类classinfo的实例,是返回True
class Student(object):
def __init__(self, id, name):
self.id = id
self.name = name
def __repr__(self):
return 'id=' + self.id + ', name=' + self.name
xiaoming = Student(id='001', name='xiaoming')
isinstance(xiaoming, Student)
->True
36 父子关系鉴定
class undergraduate(Student):
def studyClass(self):
pass
def attendActivity(self):
pass
print(issubclass(undergraduate, Student))
-> True
issubclass(object, Student)
-> False
issubclass(Student, object)
-> True
# 如果class是classinfo元组中某个元素的子类,也会返回True
issubclass(int, (int, float))
-> True
37 创建迭代器类型
# 使用iter(obj, sentinel),返回一个可迭代对象,sentinel可省略(一旦迭代到此元素,立即终止)
lst = [1, 3, 5]
for i in iter(lst):
print(i)
class TestIter(object):
def __init__(self):
self.l = [1, 3, 2, 3, 4, 5]
self.i = iter(self.l)
def __call__(self): # 定义了__call__ 方法的类的实例是可调用的
item = next(self.i)
print("__call__ is called, fowhich would return", item)
return item
def __iter__(self): # 支持迭代协议(即定义有__iter__() 函数
print("__iter__ is called")
return iter(self.i)
t = TestIter()
print(t())
for e in TestIter():
print(e)
38 所有对象之根
#object 是所有类的基类
o = object()
type(0)
->object
39 打开文件
# 用with oepn(),不用open()
40 次幂
# base 为底的exp次幂,如果mod给出,取余
pow(3,2,4) # 3的2次幂,取4的余数
->1
41 打印
lst = [1,3,5]
print(lst)
print('lst:', lst)
print(f'key:{lst}'})
print('lst:{}'.format(lst))
42 创建属性的两种方式
# 返回property属性,典型的用法:
class C:
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
#使用property 类创建property属性
x = property(getx, setx, delx, "I'm the 'x' property")
使用python装饰器,实现与上面的代码是一样效果的
# 返回property属性,典型的用法:
class C:
def __init__(self):
self._x = None
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def delx(self):
del self._x
43 创建range序列
# 1)range(stop)
# 2)range(start, stop[,step])
# 生成一个不可变序列
range(11)
->range(0,11)
range(0,11,1)
->range(0,11)
44 反向迭代器
rev = reversed([1,4,2,3,1])
for i in rev:
print(i)
45 四舍五入
# 四舍五入,ndigits 代表小数点后保留几位:
round(10.0232323232, 3)
-> 10.023
46 转为集合类型
# 返回一个set对象, 集合内不允许有重复元素:
a = [1,4,2,3,1]
set(a)
->{1,2,3,4}
47 转为切片对象
# class slice(start, stop[, step])
# 返回一个表示由range(start, stop, step)所指定索引集的slice对象,它让代码可读性、可维护性变好。
a = [1,4,2,3,1]
my_slice_meaning = slice(0.5.2)
a[my_slice_meaning]
->[1,2,1]
48 拿来就用的排序函数
a = [1,4,2,3,1]
sorted(a, reverse=True)
-> [4,3,2,1,1]
a = [
{
'name': 'xiaoming',
'age': 18,
'gender': 'male',
},
{
'name': 'xiaohong',
'age': 11,
'gender': 'female',
}
]
a = sorted(a, key=lambda x: x['age'], reverse=False)
print(a)
->[{'name': 'xiaohong', 'age': 11, 'gender': 'female'}, {'name': 'xiaoming', 'age': 18, 'gender': 'male'}]
49 求和函数
a = [1,4,2,3,1]
sum(a)
->11
sum(a,10)
->21
50 转元组
# tuple() 将对象转为一个不可变的序列类型
i_am_list = [1,3,5]
i_am_tuple = tuple(i_am_list)
print(i_am_tuple)
->(1,3,5)
【环境】 win10_x64 + python3.6.5
【Me】 https://github.com/Valuebai/ https://valuebai.github.io/
【参考】 1、出处:https://github.com/jackzhenguo/python-small-examples