Presentation is loading. Please wait.

Presentation is loading. Please wait.

To b98902029/r02944039 / 劉雨鑫 from C++ 1. 2 3 4.

Similar presentations


Presentation on theme: "To b98902029/r02944039 / 劉雨鑫 from C++ 1. 2 3 4."— Presentation transcript:

1 to b98902029/r02944039 / 劉雨鑫 from C++ 1

2 2

3 3

4 4

5 你是否想知道 眾多程式設計師口中優雅的語言 5 志玲姐姐

6 6

7 第一印象 Python 才有的東西 7

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

9 直譯 : 不用經過編譯就能執行 互動式命令列 9 interpret.py

10 int 就支援大數 10 big_number.py

11 易讀多行字串 multi-line string 11 前後三個 單引號 或 雙引號 multiline_string.py

12 更易懂的條件式 12 兩種都可以喔 conditional_statement.py

13 即時反應錯誤 13 沒有給初始值 就拿來運算 把 str 當 int 用 error_report.py

14 支援中文變數 14 背影.py

15 一行 http server python -m http.server 15

16 Python 簡介 歷史、哲學、應用 16 Chapter02_introduction

17 簡介  python 是體型一般較龐大的無毒蛇類  1989 年的聖誕節期間,吉多 · 范羅蘇姆為了 在阿姆斯特丹打發時間,決心開發一個新的腳 本解釋程式, python 就此誕生吉多 · 范羅蘇姆阿姆斯特丹  目前版本 3.4.1 / 2.7.8  Python 的官方直譯器是 Cpython ,該直譯器 用 C 語言編寫,是一個由社群驅動的自由軟體, 目前由 Python 軟體基金會管理 吉多 · 范羅蘇姆 17

18 設計哲學 「優雅」、「明確」、「簡單」 高 階語言(比起 Java 、 C++ 、 C ) 18

19 TIOBE 程式語言排名 來源: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 19

20 20 TIOBE 程式語言排名

21 應用範圍 以下這些都在內部 大量地 使用 Python 21

22 你學 python 可以 …  開發任何程式  快速寫出範本程式;如果速度要快,再用 C 寫  強大的計算機  寫出跟虛擬碼 (pseudo code) 很像的 code  HP code wars  變成大蟒蛇  And so on… 22

23 計算機 vs 手算數學 好用 vs 考試用 23

24 環境安裝、設定 for windows7 24 Chapter03_setup

25 環境安裝、設定:概要 1. 安裝 python 2. 安裝 notepad++ 3. 設定 notepad++ 4. 設定環境變數 PATH 本體 萬用編輯器 命令列 25

26 1. 安裝 python http://www.python.org/http://www.python.org/ 下載安裝檔 例: python-3.4.1.msi 下一步安裝法 :D 26

27 2. 安裝 notepad++ (optional) http://notepad-plus-plus.org/ http://notepad-plus-plus.org/ 下載安裝檔 例: Notepad++ Installer Notepad++ Installer 依然下一步安裝法 :3 27

28 2+. 設定 notepad++ (recommend) 解決編碼問題,支援所有語言文字 28

29 2+. 設定 notepad++ (optional) 、 是 python code 重要的一部分 29

30 4. 設定環境變數 PATH (part1) 從 cmd 進入 Python 前,要先讓系統「認得」 ”python” 在哪,因此要設定「 PATH 」 30

31 4. 設定環境變數 PATH (part2) PATH 的值 (value) 設定為 python 安裝資料夾,目前是 C:\Python33 記得跟你資料 夾名稱一樣 31

32 HelloWorld 開始  cmd  python  print(“HelloWorld”) 32

33 互動式命令列  cmd 輸入 python 或 py ,進入 Python 的「互動式命令列」  離開互動式命令列:輸入 exit() 或 ctrl+Z  互動式命令列 就是 一個良好的 python 測試環境  也可以當作強大的計算機 33

34 執行程式:拖進 cmd  真正要寫程式,還是會將程式碼存成.py 檔,再一口氣執行  (系統要先安裝 python ,才能直接執行.py )  為了在程式遇到錯誤跳出時,仍可以看到完整的錯誤訊息  我們可以用拖曳的方式,在 cmd 裡執行.py 檔  (建議路徑不要包括英文以外的字元) 34

35 Practice (optional) 35 trial.py

36 I/O input() / print() 36

37 基本輸出: print() 37 print.py

38 小知識: help() 38 直接在 互動式命令列 查詢函式的用法

39 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 ) 沒有幫我們把轉成任何 變數型態 39

40 基本輸入: input() 40 使用者輸入的 input.py input() 以 行 為單位 就算 空白行 也是 行

41 int 整數 41 Chapter05_int 1246 124 + + - - * * / /

42 Python class ‘int’ + - * / // % ** 42 int __add__ __sub__ __mul__ __div__ __floordiv__ __mod__ __pow__

43 新增整數變數、四則運算 Elementary arithmetic 43 Elementary_arithmetic.py

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

45 指定運算子 = 45 Assignment_operator.py

46 變數交換 變數 A 要跟變數 B 交換, C++ 怎麼做? In Python : A, B = B, A 46 swap.py

47 小知識:型態承受力 47 整數整數 語言 pythonC/C++ 型態 intlong int 記憶體大小不固定 8 byte4 byte 數值大小不固定

48 練習:銀行計息 deposit 48 deposit.py

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

50 Python class ‘str’ + * len( ) [ ] 50 str __add__ __mul__ __len__ __getitem__

51 新增字串變數、加乘運算 string operation 51 string_operations.py

52 易讀多行字串 multi-line string 52 前後三個 單引號 或 雙引號 multiline_string.py

53 藉由 input 得到 string love announcement 53 love_anouncement.py

54 取得字串長度 len() 、取出其中一字 [ ] 54 str_getitem.py / str_getitem.cpp 對 ASCII 以外不友善 完整支援中文

55 跑一遍整個字串 55 str_join.py 怎麼做?

56 Control Flow 程式流程控制: if 、 while 56 Chapter07_ControlFlow 開始 結束 成績 >=60 ? 輸出 ” 合格 ” 讀取成績 輸出 ” 當掉 ” 回報結果

57 何謂好的排版? 57 讓人看起來舒服,層次分明的就是好排版 秘訣:每個區塊都有一條神聖不可侵犯的對齊線 99_bad.cpp / 99.cpp

58 九九乘法表 58 99.py / 99.cpp

59 59 區塊 0 開頭 條件 列: 區塊 1 開頭 條件 列: 區塊 2 區塊 0 開頭 ( 條件 ) 列 { 區塊 1 } 開頭 ( 條件 ) 列 { 區塊 2 } 區塊 1 if/while pythonC/C++ elifelse if Truetrue Falsefalse and&& or|| not! 流程差異對照表 保留字對照 使用 、 對齊吧

60 list 串列 60 Chapter08_list L[0]L[1]L[2] 265 15 ‘ 成功巴士 ’ L[3]L[4] 20.8 ‘297’

61 Python 串列 (list) vs C/C++ 陣列 (array) A[0]A[1]A[2]A[3]A[4] 2226520829715 61 int A[5]; L[0]L[1]L[2] L = [ ‘ 成功巴士 ’, 265, 15 ] 265 15 ‘ 成功巴士 ’ L[3]L[4] 20.8 ‘297’ 綁定型態 長度固定 不綁型態 長度可變 + [ 20.8, ‘297’ ]

62 Python class ‘list’ 62 像是 C++ 的陣列加強版:每一格可以塞任何種類的變數、長度可以任意延伸 + * len( ) [ ] list __add__ __mul__ __len__ __getitem__

63 功能都很直覺 63 len( )[ ]+* Q:如何做到 C++ 的 int a[50]; A: a = [0] * 50 list_op.py

64 取出子部分 C++ 當中,我們該怎麼印出陣列 A 第 3~7 格的元素? for( int i=3 ; i<8 ; i++ ){ cout << A[i] << endl; … } In Python A[3:8] 64

65 取出子部分 [ : ] 65 [ a:b ] 可以讓我們取出 str 或 list 從 第 a( 包括 ) 個元素 開始到 第 b( 不包括 ) 個元素 的子部分 省略的話, 會幫你補上 開頭或結尾

66 dict 字典 66 Chapter09_dict 123 ‘ 雙十 ’ 1010 ‘ 萌節 ’ ‘ 自由日 ’ 1225 ‘ 聖誕節 ’ keyvalue

67 Python class ‘dict’ 67 字典:以 int 、 str 等 hashable 的 key 儲存 沒有順序關係的 value len( ) [ ] dict __len__ __getitem__

68 新增字典、取用 68 紅藍都是新增的方法 注意: 101 是 int ‘ 成功高中 ’ 是 str dict.py

69 del : 刪除元素 69 適用於 list 、 dict… dict list del.py

70 for :將所有的子元素拿出來一次 70 for 子元素 in 元素集合: 區塊 1

71 for :將所有的子元素拿出來一次 71 元素集合: str 、 list 、 dict… dict list str 照順序 順序難以捉模 拿出來的是 key for.py

72 function 函式(函數) 72 Chapter10_function 電費計算系統 (函式) 電費計算系統 (函式) 電表度數(傳入值) 電費(回傳值)

73 定義函式 73 def 函式名稱 ( 參數 1, 參數 2, 參數 3… ) : do anything you want return 回傳值 1, 回傳值 2… 沒錯!可以 回傳多個變數 回傳型態 函式名稱 ( 參數型態 1 參數 1, 參數型態 2 參數 2, … ){ do anything you want return 回傳值 ; }

74 費波那西數列: 1, 1, 2, 3, 5, 8, 13… 74 fib.py

75 小排序:多個回傳值 75 sort.py

76 Homework 76 Practice

77 hw1 輸入若干 n 個數字,輸出指定第 k 大的數字。如果 k=0 就結束程式。 Sample input: 6 8 15 29 35 47 77 3 2 4 1 0 Sample output: 第 3 大的數字是 35 第 2 大的數字是 47 第 4 大的數字是 29 第 1 大的數字是 77 Hint: 1.array 2.What we mentioned in class. 77

78 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. 78

79 C 到 python 一眼看去 不用打 ; scanf / printf 變成 input / print 變數不用宣告 變數名稱沒有綁住型態 while / if 的 ( ) 變成 : while / if 的 { } 改為用排版 else if 變成 elif true / false 變成 True / False 沒有 i++ / i-- for 有別的用途 input / print 預設是以整行為單位 強迫你排版好看 ! 請用 i+=1 / i-=1 79

80 學測分發: function 也可當變數傳 80 ability_exam.py

81 math 函式庫 math 函式庫的用法都是 math. 函數名稱 ( 引數 ) ,使用上非常的簡單,唯一需要 注意的就是引入的型態必須要是正確的數值型態。 常用的函式有:開根號 math.sqrt 、三角函數 math.sin, math.cos…… 、對數 math.log, math.log10…… 81

82 參考資料與延伸學習  Python 官方教學, http://docs.python.org/3/tutorial/index.html http://docs.python.org/3/tutorial/index.html  Python 官方函式庫, http://docs.python.org/3.3/library/ http://docs.python.org/3.3/library/  Mark Lutz 《 Python 學習手冊》  台大資訊營 python 講義 by 姜姜  OpenFoundry 活動, http://www.openfoundry.org/tw/activities http://www.openfoundry.org/tw/activities  雪凡與好朋友們的 Ren'Py 遊戲引擎初學心得提示  Codecademy , http://www.codecademy.com http://www.codecademy.com  Wiki 條目《 Python 》, http://zh.wikipedia.org/wiki/Python http://zh.wikipedia.org/wiki/Python  TIOBE , http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html  黃佑仁 b98902112 成功高中實習中  Google “Python3 教學 ” 、 “Python3 tutorial” 、 ” 雪凡與好朋友 …” ! 82

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

84 Bonus: Linux 工作站的一些用法 Connention: Pietty http://ntu.csie.org/~piaip/pietty/ Fileupload: Filezilla(Client) https://filezilla-project.org/ Information http://wslab.csie.ntu.edu.tw/ sftp://linux6.csie.ntu.edu.tw 權限與資料夾命名 /.foldername/ 84


Download ppt "To b98902029/r02944039 / 劉雨鑫 from C++ 1. 2 3 4."

Similar presentations


Ads by Google