此系列摘抄自廖雪峰python教程
變數和資料型別
list和tuple
條件語句和迴圈
dict和set
函式切片+迭代+生成器
生成器和迭代器
函式式程式設計
模組物件導向程式設計
物件導向高階程式設計
定製類列舉類和元類
錯誤及處理
python 可以處理任意大小的整數,包括負整數。
字串是以 『 』 或 「 」 括起來的任意文字。
布林值:true、false,可以用and、or、not運算(並、或、非)。
空值:none一、基本資料型別
版本2.7和3.7會有所不同,舊版輸出直接print ***x 但是新版輸出 print(***x)《僅此區別,下述皆遵循2.7>
print 'hello, world'(2.7)
print ('hello, world')(3.7)
print語句也可以跟上多個字串,用逗號「,」隔開,就可以連成一串輸出,列印時遇到逗號會輸出乙個空格。
可以直接計算整數,例如:
print 100 + 200
300 #執行結果
python的注釋以 # 開頭,後面的文字直到行尾都算注釋。
例: # 這句話是個注釋;
但這一句不是。
在電腦程式中,變數不僅可以是數字,還可以是任意資料型別。
在python程式中,變數是用乙個變數名表示,變數名必須是大小寫英文、數字和下劃線(_)的組合,且不能用數字開頭。
在python中,等號=是賦值語句,可以把任意資料型別賦值給變數,同乙個變數可以反覆賦值,而且可以是不同型別的變數。例如:
a = 123 # a是整數
print a
a = 'hello' # a變為字串
print a
這種變數本身型別不固定的語言稱之為動態語言,與之對應的是靜態語言。
變數的儲存:
當我們寫:a = 'abc'時,python直譯器幹了兩件事情:
1.在記憶體中建立了乙個'abc'的字串;
2.在記憶體中建立了乙個名為a的變數,並把它指向'abc'。
定義字串可以用''
或""
括起來表示。
當字串中包含 單引號時 可以用""
表示,同理字串中有雙引號時 可以用''
表示。(小技巧)
轉義:用轉義字元\
進行轉義。\' \"
\n 表示換行
\t 表示乙個製表符
\\ 表示 \ 字元本身
如果乙個字串包含很多需要轉義的字元,對每乙個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字串前面加個字首r
,表示這是乙個 raw 字串,裡面的字元就不需要轉義了。
例如:r'\(~_~)/ \(~_~)/'
但是r'...'
表示法不能表示多行字串,也不能表示包含'和 "的字串(為什麼?)
如果要表示多行字串,可以用'''...'''
表示:
'''line 1
line 2
line 3'''
等同於'line 1\nline 2\nline 3'
還可以在多行字串前面新增r
,把這個多行字串也變成乙個raw字串:
r'''python is created by "guido".
it is free and easy to learn.
let's start learn python in imooc!'''
為了統一所有文字的編碼,unicode應運而生。unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。
unicode通常用兩個位元組表示乙個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為0就可以。
因為python的誕生比unicode標準發布的時間還要早,所以最早的python只支援ascii編碼,普通的字串'abc'在python內部都是ascii編碼的。
python在後來新增了對unicode的支援,以unicode表示的字串用u'...'
表示,比如:
print u'中文'
中文
如果中文字串在python環境下遇到 unicodedecodeerror,這是因為.py檔案儲存的格式有問題。
可以在第一行新增注釋 :
# -*- coding: utf-8 -*-
目的是告訴python直譯器,用utf-8編碼讀取源**。然後用notepad++ 另存為... 並選擇utf-8格式儲存。
python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數:
1 + 2 # ==> 整數 3
1.0 + 2.0 # ==> 浮點數 3.0
但是整數和浮點數混合運算的結果就變成浮點數了:
1 + 2.0 # ==> 浮點數 3.0
只有true和false兩個值,可以用and、or、not運算(並、或、非)。
布林型別還可以與其他資料型別做 and、or和not運算,例如
a = true
print a and 'a=t' or 'a=f'
python把0、空字串''和none看成 false,其他數值和非空字串都看成 true,所以:
true and 'a=t' 計算結果是 'a=t'
繼續計算 'a=t' or 'a=f' 計算結果還是 'a=t'
短路計算:(可以解釋第3條) python變數和資料型別
變數儲存在記憶體中的值。這就意味著在建立變數時會在記憶體中開闢乙個空間。基於變數的資料型別,直譯器會分配指定記憶體,並決定什麼資料可以被儲存在記憶體中。因此,變數可以指定不同的資料型別,這些變數可以儲存整數,小數或字元。python 中的變數賦值不需要型別宣告。每個變數在記憶體中建立,都包括變數的標...
Python變數和資料型別
本節內容如下 變數是程式用來儲存資料的記憶體單元,可以通過變數名稱來操作這些資料和記憶體分配情況。既然,變數要占用記憶體空間,那麼,就要考慮如何分配記憶體的問題,何時分配 分配多大 何時 不過這些在python中都非常簡單,python通過自動記憶體管理以及實現了這些功能。上面我們說了變數是用來儲存...
Python變數和資料型別
變數命名規則 宣告變數 python不需要申明變數,變數一旦初始化,型別和值便確定了。根據值得型別來確定變數的型別。變數賦值 python中使用等號 作為賦值運算子,例如num 20就是一條賦值語句,這條語句用於將20裝入變數a中,這個過程就是賦值。num 20string mayun 多元賦值 另...