自學記錄: 1、字元串 2、換行/不換行 3、判斷類型 面向對象 ...
自學記錄:
1、字元串
python中單引號和雙引號使用完全相同。 使用三引號('''或""")可以指定一個多行字元串。 轉義符 '\' 反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。。 如 r"this is a line with \n" 則\n會顯示,並不是換行。 按字面意義級聯字元串,如"this " "is " "string"會被自動轉換為this is string。 字元串可以用 + 運算符連接在一起,用 * 運算符重覆。 Python 中的字元串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始。 Python中的字元串不能改變。 Python 沒有單獨的字元類型,一個字元就是長度為 1 的字元串。 字元串的截取的語法格式如下:變數[頭下標:尾下標]
#!/usr/bin/python3 str='Runoob' print(str) # 輸出字元串 print(str[0:-1]) # 輸出第一個到倒數第二個的所有字元 print(str[0]) # 輸出字元串第一個字元 print(str[2:5]) # 輸出從第三個開始到第五個的字元 print(str[2:]) # 輸出從第三個開始的後的所有字元 print(str * 2) # 輸出字元串兩次 print(str + '你好') # 連接字元串 print('------------------------------') print('hello\nrunoob') # 使用反斜杠(\)+n轉義特殊字元 print(r'hello\nrunoob') # 在字元串前面添加一個 r,表示原始字元串,不會發生轉義 #列印結果如下 Runoob Runoo R noo noob RunoobRunoob Runoob你好 ------------------------------ hello runoob hello\nrunoob
2、換行/不換行
print 預設輸出是換行的,如果要實現不換行需要在變數末尾加上 end="":
s = "lamxqx" print(s[1:3],end="") print(s*2) 結果: amlamxqxlamxqx ------------------------------------------ s = "lamxqx" print(s[1:3]) print(s*2) 結果: am lamxqxlamxqx
3、判斷類型
class A: pass class B(A): pass isinstance(A(), A) # returns True type(A()) == A # returns True isinstance(B(), A) # returns True type(B()) == A # returns False -------------------------------------------- 區別: type()不會認為子類是一種父類類型。 isinstance()會認為子類是一種父類類型
-------------------------------------------------------------------------------------------------------------------------
面向對象
例子 -------------------------------------------------------------- #!/usr/bin/python # -*- coding: UTF-8 -*- class Employee: '所有員工的基類' empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def displayCount(self): print "Total Employee %d" % Employee.empCount def displayEmployee(self): print "Name : ", self.name, ", Salary: ", self.salary "創建 Employee 類的第一個對象" emp1 = Employee("Zara", 2000) "創建 Employee 類的第二個對象" emp2 = Employee("Manni", 5000) emp1.displayEmployee() emp2.displayEmployee() print "Total Employee %d" % Employee.empCount ------------------------------------------------------- 知識點: 1、empCount 變數是一個類變數,它的值將在這個類的所有實例之間共用。你可以在內部類或外部類使用 Employee.empCount 訪問。 2、第一種方法__init__()方法是一種特殊的方法,被稱為類的構造函數或初始化方法,當創建了這個類的實例時就會調用該方法 3、self 代表類的實例,self 在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。 執行以上代碼輸出結果如下: Name : Zara ,Salary: 2000 Name : Manni ,Salary: 5000 Total Employee 2 你可以添加,刪除,修改類的屬性,如下所示: emp1.age = 7 # 添加一個 'age' 屬性 emp1.age = 8 # 修改 'age' 屬性 del emp1.age # 刪除 'age' 屬性 你也可以使用以下函數的方式來訪問屬性: getattr(obj, name[, default]) : 訪問對象的屬性。 hasattr(obj,name) : 檢查是否存在一個屬性。 setattr(obj,name,value) : 設置一個屬性。如果屬性不存在,會創建一個新屬性。 delattr(obj, name) : 刪除屬性。 hasattr(emp1, 'age') # 如果存在 'age' 屬性返回 True。 getattr(emp1, 'age') # 返回 'age' 屬性的值 setattr(emp1, 'age', 8) # 添加屬性 'age' 值為 8 delattr(emp1, 'age') # 刪除屬性 'age' ---------------------------------------------------------- Python內置類屬性 __dict__ : 類的屬性(包含一個字典,由類的數據屬性組成) __doc__ :類的文檔字元串 __name__: 類名 __module__: 類定義所在的模塊(類的全名是'__main__.className',如果類位於一個導入模塊mymod中,那麼className.__module__ 等於 mymod) __bases__ : 類的所有父類構成元素(包含了一個由所有父類組成的元組) Python內置類屬性調用實例如下: 實例 #!/usr/bin/python # -*- coding: UTF-8 -*- class Employee: '所有員工的基類' empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def displayCount(self): print "Total Employee %d" % Employee.empCount def displayEmployee(self): print "Name : ", self.name, ", Salary: ", self.salary print "Employee.__doc__:", Employee.__doc__ print "Employee.__name__:", Employee.__name__ print "Employee.__module__:", Employee.__module__ print "Employee.__bases__:", Employee.__bases__ print "Employee.__dict__:", Employee.__dict__ 執行以上代碼輸出結果如下: Employee.__doc__: 所有員工的基類 Employee.__name__: Employee Employee.__module__: __main__ Employee.__bases__: () Employee.__dict__: {'__module__': '__main__', 'displayCount': <function displayCount at 0x10a939c80>, 'empCount': 0, 'displayEmployee':
<function displayEmployee at 0x10a93caa0>, '__doc__': '\xe6\x89\x80\xe6\x9c\x89\xe5\x91\x98\xe5\xb7\xa5\xe7\x9a\x84\xe5\x9f\xba\xe7\xb1\xbb', '__init__': <function __init__ at 0x10a939578>}