Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python A Comprehensive Programming Language

Similar presentations


Presentation on theme: "Python A Comprehensive Programming Language"— Presentation transcript:

1 Python A Comprehensive Programming Language
謝育璘

2 Guido van Rossum Monty Python's Flying Circus 吉多·范羅蘇姆在荷蘭出生、成長
蒙提·派森的飛行馬戲團 Python的創始人為Guido van Rossum。在1989年聖誕節期間的阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的指令碼解釋程式 Guido van Rossum Monty Python's Flying Circus

3 直譯 : 不用經過編譯就能執行 .py 程式碼檔(source file) 就是 執行檔(executable file)
不過系統要先安裝好python環境

4 直譯 : 不用經過編譯就能執行 互動式命令列 interpret.py 為什麼沒有print但是能print出來?
提一下 >>> … 是什麼 互動/執行 interpret.py

5 Python 版本 Python 2 vs. Python 3? 為什麼用Python 2 許多函式庫尚未完成 Python 3 的移植
更強大更方便的語法 更強大更方便的函式庫 Python 3 是目前官方持續開發(加新功能)的版本。

6 Python 安裝 Windows Ubuntu Mac https://www.python.org/
sudo apt-get install python2.7 Mac

7 The Zen of Python There should be one – and preferably only one – obvious way to do it.

8 高階語言(比起Java、C++、C) 設計哲學 「優雅」、「明確」、「簡單」 大多東西會符合你的直覺
Python的設計哲學是「優雅」、「明確」、「簡單」。因此其對手Perl語言中「總是有多種方法來做同一件事」的理念在Python開發者中通常是難以忍受的。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。在設計Python語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。由於這種設計觀念的差異,Python原始碼通常被認為比Perl具備更好的可讀性,並且能夠支撐大規模的軟體開發。這些準則被稱為Python格言。在Python解釋器內執行import this可以獲得完整的列表。

9 TIOBE 程式語言排名

10 I/O 基本輸入輸出

11 基本輸出:print()

12 Python vs C:輸入的不同 In C: scanf(“%d”,&a); scanf(“%f”,&a); scanf(“%s”,&a);代表什麼? a 是 int / float / string 的行為會一樣嗎? 其實C有幫我們把 輸入的string 轉成 變數的型態 In Python: python的輸入 input() input() 是一個 函式,有 回傳值 (就是 輸入的string ) 沒有幫我們把轉成任何 變數型態

13 基本輸入:input() input() 以 行 為單位 就算 空白行 也是 行 使用者輸入的 input.py
Input python 2 python 3 差別 input.py

14 小知識:python的註解 單行註解:#之後到換行為止都是註解(所以最多註解單行) 多行註解:利用多行字串 ””” … ”””

15 Built-in DataTypes Number String List Dictionary Set 7, 11.0
‘Hello World’ [7, 11, ‘store’] {‘name’:’marr’, ‘home’:’taipei’} set([7, 11, ‘store’]) elements elements

16 int 整數 + 124 - 1246 * /

17 新增整數變數、四則運算 Elementary arithmetic
xx.oo 是什麼? #include<iostream> using namespace std; int main() { string s = "1234"; cout << s.length() << endl; system( "pause" ); }

18 指定運算子 =

19 變數交換 變數A要跟變數B交換,C++怎麼做? In Python: A, B = B, A

20 小知識:型態承受力 整 數 語言 python C/C++ 型態 int long long 記憶體大小 不固定 8 byte 4 byte
數值大小

21 string 字串 ‘H’ ‘a’ ‘t’ ‘s’ ‘u’ ‘n’ ‘e’ ‘M’ ‘I’ ‘k’

22 新增字串變數、加乘運算 string operation

23 易讀多行字串 multi-line string
前後三個 單引號 或 雙引號 C++ 用\n

24 String

25 Control Flow 程式流程控制:if、while

26 Code Indenting No explicit begin or end No curly braces
if age > 18: print “You are old enough.” else: print “You are too young.”

27 if Statements 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'

28 For Statements words = ['cat', 'window', 'defenestrate']
for w in words: print w, len(w),  cat 3 window 6 defenestrate 12 range(5, 10)  [5, 6, 7, 8, 9] range(0, 10, 3)  [0, 3, 6, 9] xrange vs. range for i in xrange(10): print i 

29 else, break, continue for n in range(2, 10): for x in range(2, n): if n % x == 0: print n, 'equals', x, '*', n/x break else: print n, 'is a prime number'

30 else, break, continue for num in range(2, 10): if num % 2 == 0: print "Found an even number", num continue print "Found a number", num

31 while Statements x = 0 while x < 10: print x, x += 1

32 資料結構:List、Dictionary、Set
Data Structure 資料結構:List、Dictionary、Set

33 List squares = [1, 4, 9, 16, 25] len(squares)  5 squares[-1]  25
squares[-3:]  [9, 16, 25] # slicing returns a new list squares[:]  [1, 4, 9, 16, 25] # slicing returns a new list squares + [36, 49]  [1, 4, 9, 16, 25, 36, 49] squares.append(36)  [1, 4, 9, 16, 25, 36] squares[2:3] = []  [1, 4, 25] squares[:] = [] x = [[‘a’, ‘b’, ‘c’], [1, 2, 3]]

34 Dictionary tel = {'jack': 4098, 'sape': 4139}
tel['guido'] =  tel = {'jack': 4098, 'sape': 4139, 'guido': 4127} del tel['sape']  tel = {'jack': 4098, 'guido': 4127} tel.keys()  ['guido', 'irv', 'jack'] 'guido' in tel  True 字典:以 int、str等hashable的key 儲存 沒有順序關係的value

35 Set basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
fruit = set(basket) # create a set without duplicates 'orange' in fruit  True a = set('abracadabra')  set(['a', 'r', 'b', 'c', 'd']) a = set('abc') b = set('ade') a – b  set(['c', 'b']) a | b  set(['a', 'c', 'b', 'e', 'd']) a & b  set(['a']) a ^ b  set(['c', 'b', 'e', 'd'])

36 function 函式(函數)

37 Function Example def myFunc(a, b, c): “”” document strings x = a + 1
y = b + 2 z = C + 3 return x, y, z 可以回傳多個變數

38 File Handling fileobj = open(“myfile”, “r”)
lines = fileobj.readlines() for line in lines: print line

39 hw1 輸入若干n個數字,輸出指定第k大的數字。如果k=0就結束程式。 Sample input: Sample output: 第3大的數字是 35 第2大的數字是 47 第4大的數字是 29 第1大的數字是 77

40 hw2 寫一個python程式來判斷輸入字串有沒有雙回文。 (回文: aba / a)(輸入字串不會有空白) (是不是兩個回文字串黏在一起)
Sample input:abcbaacca Sample output: yes, abcbaacca = abcba + acca Sample input:abcbaca Sample output:no, abcbaca is not a double palindrome Hint: 1.Write a function to determine whether an input string is a palindrome . 2.What we mentioned in class.

41 python 與 C 的差異 不用打; input/print 預設是以整行為單位 變數不用宣告 變數名稱沒有綁住型態
while / if 用: 結尾 while / if 用縮排排版 else if 變成 elif 沒有i++ / i-- ,要用 i += 1 / i -= 1 動畫: 一次只秀一列 左右連起來

42 THE END 課堂有限,學海無涯。 自學才是王道!

43 參考資料與延伸學習 Python官方教學,http://docs.python.org/3/tutorial/index.html
Mark Lutz《Python 學習手冊》 OpenFoundry 活動, Codecademy, Wiki條目《Python》, TIOBE, 今天最重要就這一頁 自學可以學得比較多


Download ppt "Python A Comprehensive Programming Language"

Similar presentations


Ads by Google