本博文中含有来源多处的总结,没有能够将所有的来源引用
python中删除list中的元素方法:remove,pop,del
str=[1,77,8,0]
remove:按值删除
str.remove(8)
pop:按索引删除,会返回被删除的元素
str.pop(2)
del:按索引删除,还可以删除指定范围内的值
del str[2]
del str[1:3]
python中list赋值
a=[23,242,9,0]
b=a#a和b共享一块内存
a[1]=87
print(a)
print(b)
#[23, 87, 9, 0]
#[23, 87, 9, 0]
1) @classmethod
用classmethod修饰表示这是一个类方法,如果没有用@classmethod修饰,则表示这是一个对象方法,使用时必须与一个对象绑定,如下
class MyClass():
def thisIsClassMethod(self):
print "this is a class method"
if __name__ == "__main__":
c = MyClass()
MyClass.thisIsClassMethod(c) #调用时传入参数c,否则编译错误
如果采用@classmethod修饰,则不用传入参数c,可以用下面方式调用:
class MyClass(): @classmethod def thisIsClassMethod(cls,parameter): print "this is a class method" print cls.__name__ print type(cls) #打印类型为classobj if __name__ == "__main__": MyClass.thisIsClassMethod(None) #不用与对象绑定 print type(MyClass)
2) property修饰符
class MyClass:
def __init__(self,num):
self._Num = num
@property
def Num(self):
return self._Num
if __name__ == "__main__":
c = MyClass(100)
print c.Num #注意,这里的访问形式看起来像是访问一个属性,但其实是一个方法
3) staticmethod修饰符
class MyClass:
@staticmethod
def thisIsStaticMethod():
print "This is static method"
if __name__ == "__main__":
MyClass.thisIsStaticMethod()
1、input和raw_input的区别
input假设输入的都是合法的python表达式,如输入字符串时候,要加上引号,而raw_input都会将所有的输入作为原始数据
2、原始字符串前面加上r,eg str=r"C:download java.txt",其中的转移字符 就不会被看成是换行符
第二章 列表和元组
1、列表左边index从0开始,右边从-1开始
2、分片取左不取右,如nums[3:6],取3、4、5
3、步长,nums[0:10:2],每次走2步,或者[8:3:-2]
4、[42]*10 会生成[42,42,42....42]
5、删除元素
names=['hello','betch','cecil','fafda']
del names[2]就会删除'cecil'元素
6、插入元素
nums=[1,5]
nums[1:1]=[2,3,4]
nums[1,2,3,4,5]
7、append
插入一个元素:
lst=[1,2,3]
lst.append(4)
lst变成[1,2,3,4]
8、count
lst=['who','who','or','fada']
lst.count('who')
1、构造函数是私有的,为什么就不能创建实例
私有函数限制在类的范围内,当然不能创建,new一个实例啦
2、map和hash_map
存储结构:map是红黑树,hash_map是hash表
构造函数:map只需要比较函数,hash_map需要hash函数
3、c++11的特性
a)auto关键字
b)lambda表达式
c)变长参数的模版,如:auto p = make_pair(1, "C++ 11");
auto t2 = make_tuple(1, 2.0, "C++ 11", {1, 0, 2});
Print(1, 1.0, "C++11");
4、python闭包
def func(name):
def inner_func(age):
print 'name:', name, 'age:', age
return inner_func
bb = func('the5fire')
bb(26) # >>> name: the5fire age: 26
一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。这个返回的函数B就叫做闭包。你在调用函数A的时候传递的参数就是自由变量
5、python闭包和装饰器
python中的闭包
def func(name):
def inner_func(age):
print 'name:', name, 'age:', age
return inner_func
bb = func('the5fire')
bb(26) # >>> name: the5fire age: 26
一个闭包就是你调用了一个函数A,这个函数A返回了一个函数B给你。这个返回的函数B就叫做闭包。你在调用函数A的时候传递的参数就是自由变量。
装饰器的存在主要是为了不修改原函数的代码,也不修改其他调用这个函数的代码,就能实现功能的拓展。
在写代码时,一般不会轻易对已经实现的类或函数进行修改。为了扩充函数功能,可以使用修饰器。
def w1(func):
def inner(a,b):
print("两个数之积:",a*b)
func(a,b)
return inner
@w1
def f1(a,b):
print("两个数之和",a+b)
f1(3,4)
结果如下:
两数之和: 7
python解释器就会从上到下解释代码,步骤如下:
1.def w1(func): ==>将w1函数加载到内存
2.@w1