Python学习笔记(一)

学习http://poson.iteye.com/blog/412556,做以下总结及整理。

1、解决代码中中文注释乱码

在文件开头增加 # -*- coding: utf-8 -*- 或者#coding:utf-8

2、print函数调用可以用圆括号把参数包含在其中,也可以省略圆括号。

比如:

print('hello world')

3、Python的bool类型

真为True,假为False。注意,首字母大写。

4、Python为强类型语言。所以不同类型不能混合使用

比如

age=5
print 'she age is'+age

这样将会出错。应该将age转为字符串型:str(age)

5、某个数与整数相乘,得到的是数学意义上的结果。某字符串与整数i相乘得到的是某字符串本身连接i次。

str='5'
i=5
print str*i,i*i

6、元组、列表、词典

元组(tuple),小括号

列表(list),中(方)括号

词典(dictionary),大括号

7、分支结构

·elif

if 条件 :
  ...
elif 条件 :
  ...
else:
  ...

注意是elif,不是else if

·not expression中的expression值有哪些

if not expression:

None、0、空字符、False都能匹配。

if not 0:
    print 'none'

if not []:
    print 'none'

if not False:
   print 'none'

if not '':
  print 'nont'

if not None:
  print 'nont'

8、函数

·函数体至少要有一个语句。如果函数体为空,需要使用pass语句占位。

def fun1():
  pass

·如果返回多个值,返回值是一个元组(tuple)

9、class

#coding:utf-8 
#表示文件的编码是utf8

#建立一个类,类名是A,注意A后面有一个冒号
class A:
    count = 0
    def __init__(self, name):   #构造函数,传入参数是name;
        self.name = name        #self类似java里面this关键字
    
    def setName(self, name):    #A的一个成员函数
        self.name = name
    def getName(self):
        return self.name
        
#__name__是一个系统变量
#当您直接运行模块,__name__ 的值是 __main__;
#当您把该文件作为一个导入模块,__name__ 就是其他的文件名(不带后缀的文件名)
#这样方便测试
if __name__ == "__main__":
    #初始化一个对象A
    a = A('poson')
    print a.getName()

10、几行代码搞定python 设计模式

#!/usr/bin/env python
# -*- coding:utf-8

class HttpBase:
    def get(self):
        psss
class Http1(HttpBase):
    def get(self):
        print 'http1'
class Http2(HttpBase):
    def get(self):
        print 'http2'


class Base:
    def __init__(self):
        self.httpobj = None
    def http(self):
        self.httpobj.get()
    def compute(self):
        self.http()
        self.show()
    #虚函数
    def show(self):
        pass
    def notify(self, k):
        print 'notify', k
        

#桥接模式,通过A,B 关联不同的http1和http2
class BaseA(Base):
    def __init__(self):
        self.httpobj = Http1()
    def notify(self, k):
        print 'A notify', k
    def show(self):
        print 'show a'
           
class BaseB(Base):
    def __init__(self):
        self.httpobj = Http2()
    def notify(self, k):
        print 'B notify', k
    def show(self):
        print 'show b'

#观测者模式
class Observer:
    def __init__(self):
        self.listOB = []
    def register(self, obj):
        self.listOB.append(obj)
    def notify(self):
        for obj in self.listOB:
            obj.notify(len(self.listOB))

#适配器模式
class B1:
    def http(self):
        BaseB().http()
#工厂模式
class Factory:
    def CreateA(self):
        return BaseA()
    def CreateB(self):
        return BaseB()

#单例模式
class Logger(object):
    log = None
    @staticmethod
    def new():
        
        import threading
        #线程安全
        mylock = threading.RLock()
        mylock.acquire()
        if not Logger.log:
            Logger.log = Logger()
        mylock.release()
        
        return Logger.log
    def write(self, v):
        print 'Logger ', v

if __name__ == "__main__":
    a = Factory().CreateA()
    b = Factory().CreateB()
    
    objS = Observer()
    objS.register(a)
    objS.register(b)
    
    a.compute()
    b.compute()
    objS.notify()
    
    b1 = B1()
    b1.http()
    
    Logger.new().log.write('v')

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值