执行第一个程序 Hello World 有两种选择 : 直接开启直译器上输入一行行程序代码,Enter 执行 o Windows: 开启 Python(command line) o Mac/Unix:Terminal 输入 python - 输入 print "Hello World" 跟以往一样

Similar documents
Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

電腦做什麼事~第六章

python内存管理

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

針灸治療膝關節疼痛綜述

Learn_Perl 3-02.pdf

CC213

電腦做什麼事~第七章

山东建筑大学学分制管理规定(试行)



Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft PowerPoint - 07 派生数据类型

C/C++语言 - C/C++数据

93年各縣國中教師甄試最新考情.doc

NethersoleJO89(8).indd

PowerPoint 簡報

<4D F736F F D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

ex

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

2015年全国射箭冠军赛.xls

2017年全国射箭重点体校锦标赛.xls

2015年全国室外射箭锦标赛.xls

2015年全国射箭重点学校锦标赛.xls

#$%# & (! )! *! +! +! &! +!! * &! * )!! +, )! + &)!) $! )!+ *! +. &) #!/ #! #$$% & #$$ & #0#1! ) * # #$$( &! ) * +,!





Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式]

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

技 巧 5: 避 免 除 以 0 的 運 算 在 做 除 的 運 算 時, 先 檢 查 除 數 的 數 值, 避 免 有 除 以 0 的 情 況 若 運 算 中 除 數 為 0,SAS 會 在 LOG 中 註 記 提 醒 並 將 運 算 結 果 設 定 為 遺 漏 值, 減 慢 程 式 的 執 行

Excel VBA Excel Visual Basic for Application

CC213

PowerPoint プレゼンテーション

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

範本檔

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

台北老爺校外實地參訪結案報告


糖尿病食譜



,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


2002 4,,, 1941,,,,,,,,,,,,,,,,,, : ;:, 1991,

untitled

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

Microsoft Word - 11.doc

AL-M200 Series

Progperl.PDF

xforce keygen microsoft office 2013

ebook71-8

ebook8-30

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

(Microsoft Word - \272\364\263q\245|\244A_ _\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

Untitiled


科学计算的语言-FORTRAN95


第5章修改稿

校 課 程 計 畫 目 次 壹 校 背 景 分 析 一 1 ~ 一 7 貳 課 程 發 展 組 織 二 1 ~ 二 10 參 校 課 程 願 景 目 的

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

《计算概论》课程 第十九讲 C 程序设计语言应用

FY.DOC

Oracle 4

4. 债 务 人 明 确 表 示 撞 行 拖 欠 的 债 务, 这 在 法 律 上 将 引 起 ( ) 人. 诉 讼 时 效 的 中 止 日. 诉 讼 时 效 的 中 黯 C. 诉 讼 时 效 的 延 长 D. 法 定 诉 讼 时 敷 黯 爵 的 改 变 5. 职 工 代 表 大 会 是 国 有 企

Java 1 Java String Date

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

2005 3

epub83-1

(HMI) IO A

DR2010.doc

101_

Ps22Pdf

Chapter 1 What is Programing Paradigm 1

100

2 A 1 A 2 B B

典型自编教材

RUN_PC連載_12_.doc

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

Microsoft Word - ch04三校.doc

Microsoft Word - Learn Objective-C.doc

Microsoft Word - PHP7Ch01.docx

audiogram3 Owners Manual

ccsun33 [u /fortran]% f77 filename.for 这个指令使用 f77 的 compiler, 其中 filename.for 就是我们所编写的 FORTRAN 程序档案 ccsun33 [u /fortran]% f90 filename.for

第 二 場 場 景 : 路 上 舞 台 道 具 : 兩 個 書 包 角 色 1: 小 清 角 色 2: 橘 子 旁 白 : 隔 天, 在 去 學 校 的 路 上, 橘 子 遇 到 了 小 清 橘 子 : 小 清 早 安! 小 清 :( 眼 神 渙 散, 不 理 會 ) 橘 子 :( 走 近 拍 拍

Microsoft Word - LD5515_5V1.5A-DB-01 Demo Board Manual

Transcription:

Python - 十分钟入门 http://tech-marsw.logdown.com/blog/2014/09/03/getting-started-with-python-in-ten-mi nute Python 是一个强大 快速 简单易读的程序语言 转换到 Python 之后就回不去 C/C++ 了, 尤其在入手 Mac 之后, 不用安装任何软件, 也不需要编译对于 Python 的依赖程度越来越重, 越是喜爱就越想推广 Python 给身旁的朋友 What Can Python Do? 一些有用的 Python 函式库列表 (GUI 界面 游戏 网页 服务器 数据库 ) Python 开发的应用有谁在用 Python 最近找寻了不少资料, 许多在线教学都是按部就班, 对于已有程序基础, 想要快速入门 Python 还是比较麻烦因此写了这一篇, 给 已经学过 C/C++,Java 等程序语言 快速转换 Python 的文件 如果是任何程序语言都没有学过, 建议可以从以下资源一步步学习 Python, 对于建立起程序设计的概念比较有帮助 : CodeCademy 游戏化的学习 ( 英文 ) Python Tutorial 第一堂 (1) 揭开序幕很完整的中文教学 Let's Start! [ 安装 ] Windows: 官网下载 2.7.x 版本 在环境变量加上 C:\Python27;C:\Python27\Scripts Mac 内建 2.7.5 Unix: 内建 3.x Online:Koding

执行第一个程序 Hello World 有两种选择 : 直接开启直译器上输入一行行程序代码,Enter 执行 o Windows: 开启 Python(command line) o Mac/Unix:Terminal 输入 python - 输入 print "Hello World" 跟以往一样写一个.py 的档案, 执行 python my_first_python.py my_first_python.py print "Hello World"!!! 注意中文的档案要加上

Windows Mac/Unix

//2014-10-20 补充网络上看到一张图片大约 40 行的 code 也可以很清楚的供有程序基础的人快速了解 Python 简中对照版 之后的部分, 会更详细介绍 Python 好用的功能, 将以.py 的档案形式展示程序代码 [ 语法 ] python 不需要任何代表结尾的符号 (ex;) python 不需要先指定变量的型态, 之后也可以任意转换型态

python 可以透过 =,+=,-= 直接赋值, 也可同时给多个变量赋值单行批注为 #, 多行批注则用 """ 开头与结尾, 多运用批注可以帮助你或其他人看懂你的程序代码 """ 这是一个简单的 python 程序介绍基本的语法 """ x = 3 x += 2 x -= 1 print x x,y = 99.99,5 print x,y 4 99.99 5 [ 数据类型 ] list 是可以随意更动大小的数组, 可透过 append 增加 python 的 list 提供很多好用函式 : len() 可以算 list 长度 sum() 可以计算 list 中所有数值的加总 ( 但 list 中的元素都需为数值, 不可与字符串混合 ) count 则是可以计算 list 中某个元素出现次数 my_list = [] my_list.append(1) my_list.append(2) my_list2 = [55.55,"Hi",3,99,222,222] my_list2[0]=333.333 print len(my_list),sum(my_list),my_list2.count(222) print my_list2[0],my_list2[-1],my_list2[1:3],my_list2[2:]

2 3 2 333.333 222 ['Hi', 3] [3, 99, 222, 222] dictionary 像是 hash-table 一样有一个 key 对应一个变量 passwd={'mars':00000,'mark':56680} passwd['happy']=9999 passwd['smile']=123456 del passwd['mars'] passwd['mark']=passwd['mark']+1 print passwd print passwd.keys() print passwd.get('tony') {'Happy': 9999, 'Smile': 123456, 'Mark': 56681} ['Happy', 'Smile', 'Mark'] None set 则是集合, 可以进行联集 交集 差集等运算 admins = set() users = {'Smile', 'Tony','Happy','Sherry','Allen','Andy', 'Mars'} admins.add('ihc') admins.add('mars') print admins & users print admins users print admins ^ users print admins - users print users - admins set(['mars']) set(['allen', 'Andy', 'Smile', 'Mars', 'Tony', 'ihc', 'Happy', 'Sherry']) set(['andy', 'Allen', 'Tony', 'Smile', 'Happy', 'ihc', 'Sherry']) set(['ihc']) set(['sherry', 'Andy', 'Allen', 'Tony', 'Smile', 'Happy'])

[ 字符串 ] 字符串可用双引号 " 或用单引号 ' 来进行标示 s = "Hello" s += 'World' s1 = "HelloWorld".replace("ll","1") s2 = "Hello"[0]+"i" print s,s1,s2,len(s) HelloWorld He1oWorld Hi 10 其中 python 字符串内建的分割函式 string.split() 很好用, 可以将字符串依指定的字符 ( 字符串 ) 切割 s3 = "This is a sentence." s3_split=s3.split(' ') print s3_split ['This', 'is', 'a', 'sentence.'] 而中文的处理, 我们可以透过 unicode 的编解碼来处理 s=" 台湾 " u = s.decode('utf8') print ' 台 ',s[0],u[0] print u[0]==u' 台 ' 台? 台 # 没有译码过的 s 是显示不出来每一个 " 中文字 " 的 True [ 型别转换 基本运算符 ]

要注意的是, 由于 python 不用特别宣告变量, 要注意不能让不同型别的变量同时运算 ex: x+s 会出错, 因为整数型态与字符串型态, 两者是不能同时运算的 x=2**3 y=3/2 s="3" print ord('a'),ord('c'),chr(ord('a')+2) print y,int(s)/2,float(s)/2,3%2 print str(x+y),str(x)+str(y) 97 99 c 1 1 1.5 1 9 81 [Flow Control: 判断式 循环 ] 再来就进入到程序设计中很重要的部分 : 流程控制也可以从这部分开始看到 Python 之所以容易阅读的原因, 每个流程的结尾是用冒号 : 属于该流程底下的执行动作不需要任何括号, 而是使用缩排缩排可以使用 Tab 或四格 Space, 但不可混用, 建议是把编辑器设定成 Tab 对应四格空白缩排可以让程序代码更容易阅读, 了解整个程序的架构 & 逻辑, 也是写程序重要的习惯之一 在 python 的判断式中,and,or,not 是逻辑运算符 python 提供一个很好的函式 range, 范围是左边数字到右边数字 -1, 在撰写循环时可以更加快速 另外 in 函式可以用来判断某个型别中是否有某个元素, 非常的方便! my_list=[] for i in range(0,10): """//for(i=0;i<10;i++)""" my_list.append(i+1) if my_list[0]==1 and len(my_list)<10: my_list[0]+=1 print "1 state" elif (10 in my_list) or not(len(my_list)==10): print "2 state"

print "range(i,j) is i~j-1" else: print "3 state" print "none of above" for i in my_list: print i, print """//for(i=0;i<my_list.length();i++)""" """//cout<<my_list[i]""" 2 state range(i,j) is i~j-1 1 2 3 4 5 6 7 8 9 10 [ 自定义函式 Function] python 定义函式用 def 开头, 同样以冒号 : 结尾, 还有缩排 def my_function(x,y): return x-10,y+10 x,y = my_function(10,20) print x,y 0 30 [ 类别 Class] Class 的初始化函式是由两条底线包含着 init 做宣告 class Student: def init (self, name, grade, age): self.name = name self.grade = grade self.age = age def set_name(self, name): self.name = name student_objects=[] student_objects.append( Student('john', 'B', 15) ) student_objects.append( Student('dave', 'A', 12) )

student_objects.append( Student('jane', 'A', 10) ) student_objects[0].set_name('john') for i in student_objects: print i.name,i.grade,i.age John B 15 dave A 12 jane A 10 [ 导入外部资源 import] 可以用 import 直接导入整个 python 檔中所有的函式或是用 from 档案 import 函式, 插入特定的函式 import sys """ 插入 sys 档案中所有函式, 使用 sys 檔中的 write 函式前须加档名 """ from time import time """ 从 time 档案插入 time() 函式, 使用 time() 前不需要加檔名 """ sys.stdout.write( str(time()) + "\n" ) 1409796132.99 # 当下的 time [I/O] 前例中已经看到很多使用 print 当 Output 的案例但 print 预设是印每一行就会加一个换行, 要使用, 才会在每次印出之间以空格取代要更自由一点, 可以使用 library 中的 write 函式 import sys file_in = file('db.txt','r') file_out = file('copy.txt','w') for line in file_in: for i in range(0,len(line)): if line[i]!="\n": sys.stdout.write(line[i]+',')

else: sys.stdout.write(line[i]) file_out.write(line[i]) sys.stdout.write("\n") file_in.close() file_out.close() """ # db.txt 1111 2222 ssss wwww 5555 """ 1,1,1,1, 2,2,2,2, s,s,s,s, w,w,w,w, 5,5,5,5, copy.txt 内容和 db.txt 一样 [ 例外处理 Exceptions Handling] def my_divide(): try: 10 / 0 # 会让程序出错, 所以需要特别 handle except ZeroDivisionError: print " 不能除以 0!!!" else: print " 没有任何错误 " finally: print " 无论有没有例外都会执行这一行 " my_divide() 不能除以 0!!! 无论有没有例外都会执行这一行

[ 排序 ] 排序是用程序处理数据中最常用到功能,python 提供了很方便的 sort 函式 lambda 是简易型函式, 只能回传一个值, 因此如果需要两个值以上的排列顺序, 会用 attrgetter class Student: def init (self, name, grade, age): self.name = name self.grade = grade self.age = age def set_name(self, name): self.name = name student_objects=[] student_objects.append( Student('john', 'B', 15) ) student_objects.append( Student('dave', 'A', 12) ) student_objects.append( Student('jane', 'A', 10) ) student_objects.sort(key=lambda i: i.grade) for i in student_objects: print i.name,i.grade,i.age print from operator import attrgetter student_objects.sort(key=attrgetter('grade', 'age'),reverse=true) for i in student_objects: print i.name,i.grade,i.age print dave A 12 jane A 10 john B 15 john B 15 dave A 12 jane A 10

以上介绍包含了一些最常用到的 python 功能, 给想快速转换 python 的人一个入门文章