-
枚举对象
返回⼀个可以枚举的对象,该对象的next()⽅法将返回⼀个元组。
s=['a','b','c'] for i,v in enumerate(s,2): # 第二个参数表示开始id print(i,v) ''' 2 a 3 b 4 c '''
-
计算表达式
将字符串str 当成有效的表达式来求值并返回计算结果取出字符串中内容。
s='1+3+5' eval(s) # 9
-
查看变量所占字节数
import sys a={'a':1,'b':2.0} sys.getsizeof(a) # 240 占用240个字节
-
过滤器
在函数中设定过滤条件,迭代元素,保留返回值为 True的元素:
fil=filter(lambda x:x>10,[1,11,2,45,7,6,13]) list(fil) # [11,45,13]
lambda定义与用法:
lambda表达式是一行的函数。它们在其他语言中也被称为匿名函数。即,函数没有具体的名称,而用def创建的方法是有名称的。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。而且当使用函数作为参数的时候,lambda表达式非常有用,可以让代码简单,简洁。
lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。
如果没有参数,则lambda冒号前面就没有,如以上例子。
lambda 参数:操作(参数) lambda [arg1[,arg2,arg3....argN]]:expression
add = lambda x, y: x + y print(add(3, 5)) # Output: 8
-
转为浮点类型
将⼀个整数或数值型字符串转换为浮点数。
float(3) # 3.0
如果不能转化为浮点数,则会报 ValueError:
float('a') --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-11-688063d46f27> in <module> ----> 1 float('a') ValueError: could not convert string to float: 'a'
-
字符串格式化
格式化输出字符串,format(value, format_spec)实质上是调⽤了value的format(format_spec)⽅法。
print('i am {0},age{1}'.format('tom',18)) # i am tom,age18
3.1415926 {:.2f} 3.14 保留小数点后两位 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位 -1 {:+.2f} -1.00 带符号保留小数点后两位 2.71828 {:.0f} 3 不带小数 5 {:0>2d} 05 数字补零(填充左边,宽度为2) 5 {:x<4d} 5xxx 数字补x(填充右边,宽度为4) 10 {:x<4d} 10xx 数字补x(填充右边,宽度为4) 1000000 {:,} 1,000,000 以逗号分隔的数字格式 0.25 {:.2%} 25.00% 百分比格式 1000000000 {:.2e} 1.00e+09 指数计数法 18 {:>10d} ’ 18’ 右对齐(默认,宽度为10) 18 {:<10d} '18 ’ 左对齐(宽度为10) 18 {:^10d} ’ 18 ’ 中间对齐(宽度为10) -
冻结集合
创建⼀个不可修改的集合。
frozenset([1,1,3,2,3]) # frozenset([1,1,3,2,3])
因为不可修改,所以没有像 set那样的 add和 pop⽅法。
-
动态获取对象属性
获取对象的属性。
class Student(): 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属性值 # 'xiaoming'
-
对象是否有这个属性
class Student(): 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,'address') # False
-
返回对象的哈希值
返回对象的哈希值,值得注意的是⾃定义的实例都是可哈希的, list, dict, set等可变对象都是不可哈希的(unhashable)。
hash(xiaoming) # -9223371894423056622 hash([1,2,3]) ''' --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-26-35e31e935e9e> in <module> ----> 1 hash([1,2,3]) TypeError: unhashable type: 'list' '''
-
一键帮助
返回对象的帮助文档。
help(xiaoming) ''' Help on Student in module __main__ object: class Student(builtins.object) | Methods defined here: | | __init__(self, id, name) | Initialize self. See help(type(self)) for accurate signature. | | __repr__(self) | Return repr(self). | | ---------------------------------------------------------------------- | Data descriptors defined here: | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) '''
-
对象门牌号
返回对象的内存地址。
id(xiaoming) # 2278907506984
-
获取用户输入
获取用户输入的内容。
input() ''' 4455 ->4455 '''
-
转为整型
int(x, base =10) , x可能为字符串或数值,将x 转换为⼀个普通整数。如果参数是字符串,那么它可能包含符号和⼩数点。如果超出了普通整数的表⽰范围,⼀个长整数被返回。
int('12',16) # 18
-
isinstance
判断object是否为类classinfo的实例,是返回true。
class Student(): 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
-
父子关系鉴定
issubclass(class, classinfo) issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
- class – 类。
- classinfo – 类
class undergraduate(Student): def studyClass(self): pass def attendActivity(self): pass issubclass(undergraduate,Student) # True issubclass(object,Student) # False issubclass(Student,object) # True
如果class是classinfo元组中某个元素的⼦类,也会返回True。
issubclass(int,(int,float)) # True
-
创建迭代器类型
使⽤ iter(obj, sentinel), 返回⼀个可迭代对象, sentinel可省略(⼀旦迭代到此元素,⽴即终⽌)。
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.l) t=TestIter() t() # 因为实现了__call__,所以t实例能被调⽤ ''' __call__ is called,fowhich would return 1 1 ''' for e in TestIter():# 因为实现了__iter__⽅法,所以t能被迭代 print(e) ''' __iter__ is called!! 1 3 2 3 4 5 '''
-
所有对象之根
object 是所有类的基类。
o=object() type(0) # object
-
打开文件
返回文件对象。
fo=open("文件地址 ",mode='r',encoding='utf-8') fo.read()
字符 意义 ‘r’ 读取(默认) ‘w’ 写入,并先截断文件 ‘x’ 排它性创建,如果⽂件已存在则失败 ‘a’ 写⼊,如果⽂件存在则在末尾追加 ‘b’ ⼆进制模式 ‘t’ ⽂本模式(默认) ‘+’ 打开⽤于更新(读取与写⼊) -
次幂
base为底的exp次幂,如果mod给出,取余。
pow(3,2,4) # 1
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交