Python A Comprehensive Programming Language

Slides:



Advertisements
Similar presentations
To b /r / 劉雨鑫 from C
Advertisements

1 第 3 章 C++ 中的条件与循环 第 3 次见面! acm.nefu.edu.cn/C++_03.ppt.
第一單元 建立java 程式.
董笑菊 电子信息与电气工程学院 计算机科学与工程系
Introduction to C Programming
第 2 章 初探 C++.
程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼)
第一章 C语言概述 计算机公共教学部.
计算机与程序.
TQC+ 物件導向程式認證-JAVA.
程序设计思想与方法入门篇 庄天红.
補充: Input from a text file
程設一.
第二章 JAVA语言基础.
File Access 井民全製作.
C++程序设计 王希 图书馆三楼办公室.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
程式設計實作.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
Python入门培训演示 系统测试部 叶华 文件级别:公开
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
Java程式概觀.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Object-Oriented Programming in C++ 第一章 C++的初步知识
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
程式撰寫流程.
数据集合体.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
程式設計實習課(四) ----C 函數運用----
东北林业大学 陈宇 ACM程序设计 东北林业大学 陈宇
第一單元 建立java 程式.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
注意:教程中给出的所有示例代码请勿直接拷贝使用!会引起不必要的错误!
Chapter 2 & Chapter 3.
软件工程 第四章 软件设计 软件过程设计技术与工具.
輸入&輸出 函數 P20~P21.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
软件设计任务 从工程管理的角度来看,软件设计分两步完成。 概要设计,将软件需求转化为数据结构和软件的系统结构。
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
第二章 Java语法基础.
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
本节内容 Lua基本语法.
Review 1~3.
#include <iostream.h>
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
Programming & Language Telling the computer what to do
C#快速導讀 流程控制.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
變數與資料型態  綠園.
Q6. 某學校將學生的電話號碼存貯在一個文字檔'telist.txt'。 在這交字檔中,每行有14個字符,代表學生班別、班號和電話號碼,
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

Python A Comprehensive Programming Language 謝育璘 r03944051@ntu.edu.tw

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

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

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

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

Python 安裝 Windows Ubuntu Mac https://www.python.org/ sudo apt-get install python2.7 Mac https://docs.python-guide.org/en/latest/starting/install/osx/

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

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

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

I/O 基本輸入輸出

基本輸出:print()

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

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

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

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

int 整數 + 124 - 1246 * /

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

指定運算子 =

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

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

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

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

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

String

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

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

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'

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  0 1 2 3 4 5 6 7 8 9

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'

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

while Statements x = 0 while x < 10: print x, x += 1  0 1 2 3 4 5 6 7 8 9

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

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]]

Dictionary tel = {'jack': 4098, 'sape': 4139} tel['guido'] = 4127  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

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'])

function 函式(函數)

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

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

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

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.

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

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

參考資料與延伸學習 Python官方教學,http://docs.python.org/3/tutorial/index.html Mark Lutz《Python 學習手冊》 OpenFoundry 活動,http://www.openfoundry.org/tw/activities Codecademy,http://www.codecademy.com Wiki條目《Python》,http://zh.wikipedia.org/wiki/Python TIOBE,http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 今天最重要就這一頁 自學可以學得比較多