SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Python meetup - 1
Vic Yang
Installation
Installation
Python 2.7 or Python 3.4
https://www.python.org/downloads
Sublime Text 2 - editor with building system
http://www.sublimetext.com/2
pip - python package index (package manager)
http://www.pip-installer.org/en/latest/installing.html
git - version control (optional)
http://git-scm.com/
First Program
‘Hello world’
開啟編輯器,打⼊入print ‘Hello world’以附檔名.py存起
來,如此⼀一來此⽂文件便可被視為python script。
使⽤用sublime的building system便可在sublime裡⾯面看到
執⾏行結果。
!
⼩小練習:四則運算、次⽅方運算
Introduction
Why using Python?
軟體品質 - 可讀性佳、縮排取代⼤大括號、Object-Oriented、別⼈人
寫出來的code⽐比較容易看懂
⽣生產⼒力 - 相對於C++, Java 程式碼的量⼤大約1/3, 1/5
可移植性 - 不同作業平台上可以使⽤用
程式庫 - 最⼤大的好處之⼀一,許許多多的輪⼦子
整合其他語⾔言 - 其他語⾔言平台可以port,例如Iron Python, Jyphon
好吃、新奇、⼜又好玩
缺點
慢,這是⽅方便的代價,但有其他更底層的實作讓這件
事慢慢的變快,例如Pypy, Dropbox的JIT
語法⽅方⾯面的問題,ex. a.len() vs. len(a)
Python 內部資料結構的實作
1. List - Python語⾔言的資料結構實作造成他是最⽅方便卻也是最危
險的資料結構(我也是看了YouTube才知道
2. http://www.youtube.com/watch?v=fYlnfvKVDoM
從功能性來看
動態定型 - Python 會記錄程式執⾏行時的物件種類,不⽤用宣告複雜的形態跟
⼤大⼩小
⾃自動記憶體管理 - 當物件不再使⽤用時,啟動GC,會記錄低階記憶體細節,
總之我們不⽤用擔⼼心
⽀支援⼤大型程式設計 - 可以分⾨門別類的來寫code,整合起來相對⽅方便
內建物件型態 - [], {}, ()…
內建⼯工具 - 類似C++的STL
程式庫公開⼯工具 - 最⼤大的好處之⼀一
協⼒力廠商公⽤用程式
練習
基本語法
條件:if...else...
迴圈:for...in
遞迴
邏輯: and, or, not
程式碼匯⼊入 import
⻑⾧長度len(), 強制轉字串str()
內建程式庫
練習:parse 下⾴頁的xml格式的⽂文件,使⽤用內建函式庫
xml.etree.cElement
輸⼊入:⼀一段字串
輸出:將__TITLE__⽤用程式改成輸⼊入的字串
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	 <key>items</key>
	 <array>
	 	 <dict>
	 	 	 <key>assets</key>
	 	 	 <array>
	 	 	 	 <dict>
	 	 	 	 	 <key>kind</key>
	 	 	 	 	 <string>software-package</string>
	 	 	 	 	 <key>url</key>
	 	 	 	 	 <string>__URL__</string>
	 	 	 	 </dict>
	 	 	 </array>
	 	 	 <key>metadata</key>
	 	 	 <dict>
	 	 	 	 <key>bundle-identifier</key>
	 	 	 	 <string>__BUNDLEID__</string>
	 	 	 	 <key>bundle-version</key>
	 	 	 	 <string>__BUNDLEVER__</string>
	 	 	 	 <key>kind</key>
	 	 	 	 <string>software</string>
	 	 	 	 <key>title</key>
	 	 	 	 <string>__TITLE__</string>
	 	 	 </dict>
	 	 </dict>
	 </array>
</dict>
</plist>
import xml.etree.cElementTree as ET
import sys
!
BUNDLEID = '__BUNDLEID__'
bundle_identifier = 543
!
tree = ET.ElementTree(file='default.plist')
!
root = tree.getroot()
!
for i in tree.iter(tag='string'):
if i.text == BUNDLEID:
i.text = str(bundle_identifier)
!
tree.write(sys.stdout)

Mais conteúdo relacionado

Mais procurados

git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學
Doremi Lin
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
 

Mais procurados (18)

git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學
 
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
 
Git and Github basic with SourceTree
Git and Github basic with SourceTreeGit and Github basic with SourceTree
Git and Github basic with SourceTree
 
幸福快樂的完美結局
幸福快樂的完美結局幸福快樂的完美結局
幸福快樂的完美結局
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率運用 Docker 整合 Laravel 提升團隊開發效率
運用 Docker 整合 Laravel 提升團隊開發效率
 
開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 Git開發用不著打一架 - 分散式版本控制 Git
開發用不著打一架 - 分散式版本控制 Git
 
Git與source tree 基礎教學
Git與source tree 基礎教學Git與source tree 基礎教學
Git與source tree 基礎教學
 
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
 
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CIContinuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
 
Ryu Learning Guide
Ryu Learning GuideRyu Learning Guide
Ryu Learning Guide
 
Jenkins x GitLab CI
Jenkins x GitLab CIJenkins x GitLab CI
Jenkins x GitLab CI
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot用 Go 語言打造 DevOps Bot
用 Go 語言打造 DevOps Bot
 

Destaque

LinkedIn-foredrag i Aalborg v. Morten Vium
LinkedIn-foredrag i Aalborg v. Morten ViumLinkedIn-foredrag i Aalborg v. Morten Vium
LinkedIn-foredrag i Aalborg v. Morten Vium
Morten Vium
 
прикладная информатика
прикладная информатикаприкладная информатика
прикладная информатика
iefmiit
 
Workindenmark herning
Workindenmark herningWorkindenmark herning
Workindenmark herning
Morten Vium
 
Перевод и переводоведение
Перевод и переводоведениеПеревод и переводоведение
Перевод и переводоведение
iefmiit
 
LinkedIn foredrag hos UCN
LinkedIn foredrag hos UCNLinkedIn foredrag hos UCN
LinkedIn foredrag hos UCN
Morten Vium
 
Бизнес-информатика
Бизнес-информатикаБизнес-информатика
Бизнес-информатика
iefmiit
 
Talk at Workindenmark
Talk at WorkindenmarkTalk at Workindenmark
Talk at Workindenmark
Morten Vium
 
копия презентация обнов
копия презентация обновкопия презентация обнов
копия презентация обнов
tanstantin
 
Foredrag om LinkedIn i Jobboxen Ikast-Brande
Foredrag om LinkedIn i Jobboxen Ikast-BrandeForedrag om LinkedIn i Jobboxen Ikast-Brande
Foredrag om LinkedIn i Jobboxen Ikast-Brande
Morten Vium
 

Destaque (20)

Slides
SlidesSlides
Slides
 
LinkedIn-foredrag i Aalborg v. Morten Vium
LinkedIn-foredrag i Aalborg v. Morten ViumLinkedIn-foredrag i Aalborg v. Morten Vium
LinkedIn-foredrag i Aalborg v. Morten Vium
 
Ardilla
ArdillaArdilla
Ardilla
 
прикладная информатика
прикладная информатикаприкладная информатика
прикладная информатика
 
Workindenmark herning
Workindenmark herningWorkindenmark herning
Workindenmark herning
 
Virtuel branding og Networking på LinkedIn
Virtuel branding og Networking på LinkedInVirtuel branding og Networking på LinkedIn
Virtuel branding og Networking på LinkedIn
 
Japan
JapanJapan
Japan
 
Prosser&Foreman
Prosser&ForemanProsser&Foreman
Prosser&Foreman
 
LinkedIn foredrag - Kost & Ernæringsforbundet
LinkedIn foredrag - Kost & ErnæringsforbundetLinkedIn foredrag - Kost & Ernæringsforbundet
LinkedIn foredrag - Kost & Ernæringsforbundet
 
Перевод и переводоведение
Перевод и переводоведениеПеревод и переводоведение
Перевод и переводоведение
 
Ghana
GhanaGhana
Ghana
 
Slides
SlidesSlides
Slides
 
LinkedIn foredrag hos UCN
LinkedIn foredrag hos UCNLinkedIn foredrag hos UCN
LinkedIn foredrag hos UCN
 
Aula de Certificação do CCCMG - 2016 (Professor João Aparecido)
Aula de Certificação do CCCMG - 2016 (Professor João Aparecido)Aula de Certificação do CCCMG - 2016 (Professor João Aparecido)
Aula de Certificação do CCCMG - 2016 (Professor João Aparecido)
 
Бизнес-информатика
Бизнес-информатикаБизнес-информатика
Бизнес-информатика
 
Talk at Workindenmark
Talk at WorkindenmarkTalk at Workindenmark
Talk at Workindenmark
 
копия презентация обнов
копия презентация обновкопия презентация обнов
копия презентация обнов
 
En las fuentes de la alegria san francisco de sales -canonigo f.vidal
En las fuentes de la alegria   san francisco de sales -canonigo f.vidalEn las fuentes de la alegria   san francisco de sales -canonigo f.vidal
En las fuentes de la alegria san francisco de sales -canonigo f.vidal
 
Foredrag om LinkedIn i Jobboxen Ikast-Brande
Foredrag om LinkedIn i Jobboxen Ikast-BrandeForedrag om LinkedIn i Jobboxen Ikast-Brande
Foredrag om LinkedIn i Jobboxen Ikast-Brande
 
3 veje til flere business-kunder på LinkedIn
3 veje til flere business-kunder på LinkedIn3 veje til flere business-kunder på LinkedIn
3 veje til flere business-kunder på LinkedIn
 

Semelhante a Python meetup 1

Python beginner tutorial
Python beginner tutorialPython beginner tutorial
Python beginner tutorial
cri fan
 
设置用vim编辑python
设置用vim编辑python设置用vim编辑python
设置用vim编辑python
King Hom
 
Python简明教程
Python简明教程Python简明教程
Python简明教程
ingong
 
用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验
Leo Zhou
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
frankwsj
 
简单Pthon教程
简单Pthon教程简单Pthon教程
简单Pthon教程
junjun chen
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
Jason Zheng
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
haiyuan ning
 

Semelhante a Python meetup 1 (20)

Windows 環境下建構python 跑VMware API
Windows 環境下建構python 跑VMware API Windows 環境下建構python 跑VMware API
Windows 環境下建構python 跑VMware API
 
LineBot.pptx
LineBot.pptxLineBot.pptx
LineBot.pptx
 
Python beginner tutorial
Python beginner tutorialPython beginner tutorial
Python beginner tutorial
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
 
PIME - 用 Python 和 JavaScript 快速開發 Windows 的中文輸入法
PIME - 用 Python 和 JavaScript 快速開發 Windows 的中文輸入法PIME - 用 Python 和 JavaScript 快速開發 Windows 的中文輸入法
PIME - 用 Python 和 JavaScript 快速開發 Windows 的中文輸入法
 
如何幫樹莓派安裝常用的Python套件(How to Install Python Package on Raspberry Pi)
如何幫樹莓派安裝常用的Python套件(How to Install Python Package on Raspberry Pi)如何幫樹莓派安裝常用的Python套件(How to Install Python Package on Raspberry Pi)
如何幫樹莓派安裝常用的Python套件(How to Install Python Package on Raspberry Pi)
 
设置用vim编辑python
设置用vim编辑python设置用vim编辑python
设置用vim编辑python
 
Python简明教程
Python简明教程Python简明教程
Python简明教程
 
Python01
Python01Python01
Python01
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 
用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验用Cython封装c++代码为python模块的一点经验
用Cython封装c++代码为python模块的一点经验
 
Bitbucket pipeline CI
Bitbucket pipeline CIBitbucket pipeline CI
Bitbucket pipeline CI
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
用简单语言构建复杂系统
用简单语言构建复杂系统用简单语言构建复杂系统
用简单语言构建复杂系统
 
2 Python开发工具链
2 Python开发工具链2 Python开发工具链
2 Python开发工具链
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
Python的module机制与最佳实践
Python的module机制与最佳实践Python的module机制与最佳实践
Python的module机制与最佳实践
 
简单Pthon教程
简单Pthon教程简单Pthon教程
简单Pthon教程
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
 

Python meetup 1