標籤:而且 大小 速度 其他 產生 編寫 方法 浮點數 print
Python基礎資料型別 (Elementary Data Type)
整數、浮點數(浮點數也就是小數,之所以稱為浮點數,是因為按照科學記號標記法表示時,一個浮點數的小數點位置是可變的)、字串(字串是以‘‘或""括起來的任意文本)、布爾值、空值(空值是Python裡一個特殊的值,用None表示)
print語句
print語句也可以跟上多個字串,用逗號“,”隔開,就可以連成一串輸出,遇到逗號“,”會輸出一個空格;使用“+”拼接不會產生空格
Python注釋
Python的注釋以#開頭,後面的文字直到行尾都算注釋
Python變數
變數是用一個變數名表示,變數名必須是大小寫英文、數字和底線(_)的組合,且不能用數字開頭;
在Python中,等號=是指派陳述式,可以把任意資料類型賦值給變數,同一個變數可以反覆賦值,而且可以是不同類型的變數;這種變數本身類型不固定的語言稱之為動態語言;
樣本 a = 123 # a是整數
a = ‘imooc‘ # a變為字串
Python中raw字串與多行字串
在字串前面加個首碼 r ,表示這是一個 raw 字串,裡面的字元就不需要轉義了。
但是r‘...‘標記法不能表示多行字串,也不能表示包含‘和 "的字串
多行字串,可以用‘‘‘...‘‘‘表示:
‘‘‘Line 1
Line 2
Line 3‘‘‘
在多行字串前面添加 r ,把這個多行字串也變成一個raw字串
Python中Unicode字串
字串的編碼問題:因為電腦只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理(位元組編碼錶)。
以Unicode表示的字串用u‘...‘表示,比如:print u‘中文‘
Unicode字串除了多了一個 u 之外,與一般字元串沒啥區別,逸出字元、raw字串和多行標記法仍然有效;
如果中文字串在Python環境下遇到 UnicodeDecodeError,這是因為.py檔案儲存的格式有問題。可以在第一行添加註釋 # -*- coding: utf-8 -*-
目的是告訴Python解譯器,用UTF-8編碼讀取原始碼。
Python中布爾類型
布爾類型運算:與運算(and):只有兩個布爾值都為 True 時,計算結果才為 True。
或運算(or):只要有一個布爾值為 True,計算結果就是 True。
非運算(not):把True變為False,或者把False變為True。
布爾類型還可以與其他資料類型做 and、or和not運算,Python把0、Null 字元串‘‘和None看成 False,其他數值和非Null 字元串都看成True;
and 和 or 運算的一條重要法則:短路計算
- 在計算
a and b 時,如果 a 是 False,則根據與運演算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。
- 在計算
a or b 時,如果 a 是 True,則根據或運演算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決於 b,因此返回 b。
Python列表:list
list是一種有序的集合(元素是按照順序排列),可以隨時添加和刪除其中的元素。
直接用 [ ] 把list的所有元素都括起來,就是一個list對象。
由於Python是動態語言,所以list中包含的元素並不要求都必須是同一種資料類型,我們完全可以在list中包含各種資料:L = [‘Michael‘, 100, True]
通過索引來擷取list中的指定元素。如:L[0]
倒序索引: 我們可以用 -1 這個索引來表示最後一個元素:L[-1]
添加新的元素: 第一個辦法是用 list 的 append() 方法,把新同學追加到 list 的末尾;
第二個方法是用list的 insert()方法,它接受兩個參數,第一個參數是索引號,第二個參數是待添加的新元素;
pop()方法刪掉list的最後一個元素,pop(index)方法刪掉list中指定索引的元素,並且它還返回這個元素;
對list中的某一個索引賦值,就可以直接用新的元素替換掉原來的元素,list包含的元素個數保持不變。
Python元組:tuple
tuple是另一種有序的列表。tuple和list非常類似,但是,tuple一旦建立完畢,就不能修改。
建立tuple和建立list唯一不同之處是用( )替代了[ ]。
定義單元素的tuple: 單元素tuple要多加一個逗號“,”,避免歧義;
t = (1,) 在列印單元素tuple時,也自動添加了一個“,”,為了更明確地告訴你這是一個tuple。多元素 tuple 加不加這個額外的“,”效果是一樣的:
tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。即指向‘a‘,就不能改成指向‘b‘,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!
Python之條件判斷
if 語句後接運算式,然後用:表示代碼塊開始。
if ... else ... 語句,else 後面有個“:”
if ... 多個elif ... else ... 的結構,一次寫完所有的規則;
Python之迴圈
for 迴圈就可以依次把list或tuple的每個元素迭代出來:
L = [‘Adam‘, ‘Lisa‘, ‘Bart‘]
for name in L:
print name
while 迴圈,while 迴圈不會迭代 list 或 tuple 的元素,而是根據運算式判斷迴圈是否結束。
N = 10
x = 0
while x < N:
print x
x = x + 1
break語句退出迴圈
continue跳過後續迴圈代碼,繼續下一次迴圈。
Python之dict
花括弧 {} 表示這是一個dict,然後按照 key: value, 寫出來即可。最後一個 key: value 的逗號可以省略。使用 d[key] 的形式來尋找對應的 value;
判斷key是否存在:用 in 操作符 ‘Paul‘ in d
使用dict本身提供的一個get 方法,在Key不存在的時候,返回None
dict的第一個特點是尋找速度快,無論dict有10個元素還是10萬個元素,尋找速度都一樣。而list的尋找速度隨著元素增加而逐漸下降。缺點是佔用記憶體大,還會浪費很多內容;
dict的第二個特點就是儲存的key-value序對是沒有順序的;
dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字串、整數、浮
點數都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。
Python集合之set
建立 set 的方式是調用 set() 並傳入一個 list,list的元素將作為set的元素:
s = set([‘A‘, ‘B‘, ‘C‘])
set內部儲存的元素是無序的。set不能包含重複的元素,會自動去掉重複的元素;
訪問 set中的某個元素實際上就是判斷一個元素是否在set中。(用in操作符判斷);
添加元素時,用set的add()方法:如果添加的元素已經存在於set中,add()不會報錯;
刪除set中的元素時,用set的remove()方法,如果元素不存在set中,remove()會報錯;
Python之函數
定義一個函數要使用 def 語句,依次寫出函數名、括弧、括弧中的參數和冒號:,然後,在縮排塊中編寫函數體,函數的傳回值用 return 語句返回。return None可以簡寫為return。
Python的函數返回多值其實就是返回一個tuple,在文法上,返回一個tuple可以省略括弧;
讓一個函數能接受任意個參數,我們就可以定義一個可變參數:可變參數的名字前面有個 * 號,我們可以傳入0個、1個或多個參數給可變參數:def fn(*args):
Python - Learn Note (2)