girls=['alice','bernice','clarce']
boys=['chris','arnold','bob']#低效(每次循环要检查girls的全部元素)print([b+'+'+g for b in boys for g in girls if b[0]==g[0]])#------------------------#改进(每次只检查首字母符合要求的部分元素)
letterGirls={}for girl in girls:
letterGirls.setdefault(girl[0],[]).append(girl)print([b+'+'+g for b in boys for g in letterGirls[b[0]]])
for i inrange(0,10):#'0'可以忽略print(i)#------------------------在字典
obj={'a':1,'b':2}#获取键for k in obj:print(k)#获取键和值for k,v in obj.items():print(k,'=',v)#------------------------zip()
names=['a','b']
values=[1,2]
arr=zip(names,values)#arr=[('a',1),('b',2)]for k,v in arr:print(k,'=',v)
推导式
result1=[x*x for x inrange(10)if x%3==0]
result2=[(x,y)for x inrange(3)for y inrange(3)]#嵌套循环print(result1)print(result2)
data={i:randn()for i inrange(10)}
#单继承classPerson:
members=0def__init__(self,name="default"):
self.name=name
def__del__(self):print("the obj be del")defsetName(self,name):
self.name=name
defgetName(self):return self.name
defgreet(self):print("hello,world! i'am",self.name)def__inaccessible(self):print("bet you can't see me")classMen(Person):pass
person=Person()print(person.getName())print("--------------------")
mem=Men("zzz")print(mem.getName())print("--------------------")print(mem.members)
mem.members+=1print(mem.members)print("--------------------")print(issubclass(Men,Person))print(isinstance(mem,(Men,Person)))print(hasattr(Men,'setName'))print(callable(getattr(Men,'setName',None)))print(callable(getattr(mem,'setName',None)))setattr(Person,'age',10)print(mem.age)#10setattr(mem,'age',20)print(mem.age)#20print(person.age)#10print(mem.__class__)print("--------------------")del mem
print("--------------------")#多继承classA:defmethod(self):print("i am A")classB:defmethod(self):print("i am B")classC(B,A):pass
ins=C()
ins.method()
#example_01classCustomException(Exception):passifTrue:raise CustomException
#example_02classCalculator:
muffled=Falsedefcalc(self,expr):try:returneval(expr)except ZeroDivisionError:if self.muffled:print('Division by Zero')else:raise#example_03try:
x=input('enter the first number')
y=input('enter the second number')print(x/y)#针对性捕获except(ZeroDivisionError,TypeError,NameError)as e:#Exceptionprint('your number were bogus')print(e)#全捕获except:print('something wrong happened')else:print('no wrong')finally:print('good bye')
python基础名字对函数闭包构造器 generator装饰器高级排序断言iffor循环exec & eval继承异常其他常用名字对girls=['alice','bernice','clarce']boys=['chris','arnold','bob']#低效(每次循环要检查girls的全部元素)print ([b+'+'+g for b in boys for g in ...