Python入門(一)

來源:互聯網
上載者:User

Subsections

縮排

注釋

類型

數學運算

流程式控制制

資料結構

一、縮排
Python開發人員有意讓違反了縮排規則的程式不能通過編譯,以此來強製程序員養成良好的編程習慣。並且Python語言利用縮排表示語句塊的開始和退出(Off-side規則),而非使用花括弧或者某種關鍵字。增加縮排表示語句塊的開始,而減少縮排則表示語句塊的退出。縮排成為了文法的一部分。

二、注釋
''' 多行注釋
# 單行注釋

三、類型
Python採用動態類型系統。在編譯的時候,Python不會檢查對象是否擁有被調用的方法或者屬性,而是直至運行時,才做出檢查。
str 一個由字元組成的不可更改的有串列。在Python 3.x裡,字串由Unicode字元組成。eg:'Wikipedia'
bytes 一個由位元組組成的不可更改的有串列。     b'Some ASCII'
list 可以包含多種類型的可改變的有串列     [4.0, 'string', True]
tuple 可以包含多種類型的不可改變的有串列     (4.0, 'string', True)
set, frozenset 與數學中集合的概念類似。無序的、每個元素唯一。     {4.0, 'string', True}
dict 一個可改變的由索引值對組成的無串列。     {'key1': 1.0, 3: False}
int 精度不限的整數     42
float 浮點數。精度與系統相關。     3.1415927
complex 複數     3+2.7j
bool 邏輯值。只有兩個值:真、假     True False

四、數學運算
Python使用與C、Java類似的運算子,支援整數與浮點數的數學運算。大多數數學函數處於math和cmath模組內。前者用於實數運算,而後者用於複數運算
import math
print(math.sin(math.pi/2))

五、流程式控制制
5.1 if Statements

'''Created on 2012-12-17@author: chenll'''x = int(raw_input("Please enter an integer: "));if x < 0:    x = 0    print 'Negative changed to zero'elif x == 0:    print 'Zero'elif x == 1:    print 'Single'else:    print 'More';

5.2 for Statements

a = ['cat', 'window', 'defenestrate'];for x in a:    print x, len(x);

5.3 break and continue Statements

break 語句和 C 中的類似,用於跳出最近的一級 for 或 while 迴圈。
continue 語句是從 C 中借鑒來的,它表示迴圈繼續執行下一次迭代。

5.4 The range()
如果你需要一個數值序列,內建函數range()可能會很有用,它產生一個等差級數鏈表。
>>> range(5, 10)
[5, 6, 7, 8, 9]
>>> range(0, 10, 3)
[0, 3, 6, 9]

5.5 pass Statements
pass 語句什麼也不做。它用於那些文法上必須要有什麼語句,但程式什麼也不做的場合

5.6 Defining Functions 定義函數
過程只是一個沒有傳回值的函數

def add(m,n):    print(m+n);add(3,5);

帶有傳回值的函數

def add(m,n):    return (m+n);    result=add(1,22);print(result);

5.7 More on Defining Functions 深入函數定義
有時需要定義參數個數可變的函數。
  5.7.1  Default Argument Values 參數預設值 ,最有用的形式是給一個或多個參數指定預設值。這樣建立的函數可以用較少的參數來調用。

def add(m,n,language=1):    print(language);    print(m+n);add(3,5);

  5.7.2  Keyword Arguments  函數可以通過關鍵字參數的形式來調用,形如"keyword = value"。

def add(m,n,language=1):    print(language);    print(m+n);add(3,5,language=2);

六、資料結構
Data Structures
6.1 More on Lists 深入鏈表
a = [xx,xxx,xxxx];
a.append(x) 把一個元素添加到鏈表的結尾,
a.insert(i,x) 在指定位置插入一個元素。
remove(x)  刪除鏈表中值為x的第一個元素。如果沒有這樣的元素,就會返回一個錯誤。
pop(i) 從鏈表的指定位置刪除元素,並將其返回。如果沒有指定索引,a.pop() 返回最後一個元素。元素隨即從鏈表中被刪除。
index(x) 返回鏈表中第一個值為 x 的元素的索引。如果沒有匹配的元素就會返回一個錯誤。
count(x) 返回x在鏈表中出現的次數。
sort()  對鏈表中的元素就地進行排序。
reverse() 倒排鏈表中的元素。

Using Lists as Stacks 把鏈表當作堆棧使用
用append() 方法可以把一個元素添加到堆棧頂。用不指定索引的pop() 方法可以把一個元素從堆棧頂釋放出來。

stack = [3, 4, 5];stack.append(6)stack.append(7);for x in stack:    print(x);print(stack.pop()); # 7

Using Lists as Queues 把鏈表當作隊列使用

使用 append() 方法可以把元素添加到隊列最後,以0為參數調用 pop() 方法可以把最先進入的元素釋放出來.

queue = ["Eric", "John", "Michael"]queue.append("Terry")  queue.append("Graham")   print(queue.pop(0)); # Eric

鏈表的三個重要內建函數,filter(), map(), 和 reduce()。
filter(function, sequence) 返回一個sequence(序列),包括了給定序列中所有調用function(item)後傳回值為true的元素。

def f(x):    for n in range(2,x-1):        if x%n==0:            return False;    return True;seq = filter(f,range(2,25));for item in seq:    print(item);  #列印出素數

map(function, sequence) 為每一個元素依次調用function(item)並將傳回值組成一個鏈表返回。

def cube(x):    return x*x*x;m = map(cube,range(1,5));for x in m:    print(x);  #列印出1到5各數的立方

可以傳入多個序列,函數也必須要有對應數量的參數,執行時會依次用各序列上對應的元素來調用函數。如果某些序列比其它的短,就用None來代替

seq = range(8)def add(x, y): return x+yseq = map(add, seq, seq)for x in seq:    print(x);

reduce(function, sequence) 返回一個單值,它是這樣構造的:首先以序列的前兩個元素調用函數,再以傳回值和第三個參數調用,依次執行下去。

def add(x,y): return x+y;sum = reduce(add,range(1,11));print sum;

6.2 The del statement

6.3 元組(Tuples)和序列(Sequences)
6.4 Sets 集合
6.5 Dictionaries
6.6 Looping Techniques 迴圈技術
在字典中迴圈時,關鍵字和對應的值可以使用 items() 方法同時解讀出來。

knights = {'gallahad': 'the pure', 'robin': 'the brave'}for k, v in knights.items():    print k, v

在序列中迴圈時,索引位置和對應值可以使用 enumerate() 函數同時得到。

for i, v in enumerate(['tic', 'tac', 'toe']):    print i, v# 0 tic 1 tac 2 toe
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.