python 基础知识整理

时间:2023-02-10 10:12:38
列表推导式
类似 data=[x+1 for x in range(10)]执行结果就是 [1,2,3,4,5,6,7,8,9,10]
还有 even_numbers=[x for x in range(10) if x%==0] 执行结果【0,2,4,6,8】
 
生成器表达式(generator expression)
用法与列表推导式类似
ever_number=(x for x in range(1000) if x%==0) 每次处理一个对象,节省内存
 
字符串string
不可修改,获得的结果都是其新的拷贝,常用函数
 python 基础知识整理
字符串前面可以有修饰符
比如mystring=u“hello”   u代表Unicode字符
mystring=r'c:\program\file'  r代表raw字符,就是字符串不经过转义等
格式化字符串
>>> '%s is number %d'  %(s[:6],1)
输出list类型s[0]-s[5] is number 1
 
 
 
 
常见异常exception
 
python 基础知识整理
 
函数
定义函数的时候可以直接指定默认值
例如:def check_web_server(host,port=80,path='/')
 
*args 和**kwargs
一般来说,函数调用或者声明中,* 代表元组,**代表字典
例如 check_web_server('127.0.0.1','8000','admin/')
等同于host_info=('127.0.0.1','8000','admin/')
check_web_server(*host_info)
如果host_info=[host:'127.0.0.1',port:'8000',path:'admin/']
那就是check_web_server(**host_info)
 
变长参数也可以使用*args或者**kwargs来传递
例如 def f(*args,**kwargs):
    这样的函数可以按照 f(),f(a,b,c),f(a,b,foo=c,bar=d)来调用
 
django 装饰器

def deco(func):  
    print("deco")  
    return func  
 
@deco  
def foo():  
    print("foo")  

foo()  等同于deco(foo)
执行结果 为
deco
foo
 
面向对象编程
 
class AddressBook(object):
    version=0.1
    def __init__(self,name,phone):
        self.name=name
        self.phone=phone
方法必须带上self对象,python支持动态实例属性,即没有在定义里声明的属性也可以使用
例如 john=AddressBook(‘john’,‘111111’)
john.address='beijing'  也是允许的
 
继承
class EmployeeAdressBook(AdressBook):
     def __init__(self,name,phone,id,social):
            AdressBook.__init__(self,name,phone)
            self.id=id
            self.ssn=social
继承需要显式调用父类方法
 
python 正则表达式
>>> import re
>>> m=re.serch(r'foo',seafood)
>>> print m
<_sre.SRE_Match object at ...>
>>>m.group()
'foo'