Python学習ノート(一)
勉強しますhttp://poson.iteye.com/blog/412556以下のようにまとめて整理します.
1、解決コードの中の中国語の注釈は文字化けしています.
ファイルの先頭に萼-*-codingを追加します.utf-8-*-または菗coding:utf-8
2、print関数呼び出しは、括弧でパラメータを含めてもいいし、括弧を省略してもいいです.
たとえば:
本当にTrueです.falseと偽っています.最初の文字を大文字にしてください.
4、Pythonは強いタイプの言語です.ですから、タイプによっては混ぜて使うことはできません.
たとえば
5、ある数は整数と乗算され、得られたのは数学的な結果である.ある文字列は整数iと乗算され、ある文字列自体がi回接続されています.
タプル、小かっこ
リスト、中かっこ
辞書、大かっこ7、分岐構造
・elif
・not expressionの中のexpressionの値はどれらがありますか?
if not expression:
None、0、空の文字、Falseにもマッチします.
・関数体には少なくとも1つの語句が必要です.関数が空の場合は、パス文でビットを占めます.
9、クラス
1、解決コードの中の中国語の注釈は文字化けしています.
ファイルの先頭に萼-*-codingを追加します.utf-8-*-または菗coding:utf-8
2、print関数呼び出しは、括弧でパラメータを含めてもいいし、括弧を省略してもいいです.
たとえば:
print('hello world')
3、Pythonのbookタイプ本当に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、タプル、リスト、辞書タプル、小かっこ
リスト、中かっこ
辞書、大かっこ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、関数・関数体には少なくとも1つの語句が必要です.関数が空の場合は、パス文でビットを占めます.
def fun1():
pass
・複数の値を返すと、戻り値は元のグループになります.9、クラス
#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')