<?xml version="1.0" encoding="UTF-8"  standalone="yes" ?>
<rss version="2.0">
	<channel>
		<title>社群: 電腦中心電腦科 - 文件區(Python)</title>
		<description>長榮高級中學數位平台 RSS feed provider</description>
		<language>zh-tw</language>
		<link>http://203.64.21.192/board.php?courseID=99&amp;f=doclist&amp;folderID=688</link>
	<item>
		<title>Python - 十分鐘入門</title>
		<link>http://203.64.21.192/board.php?courseID=99&amp;f=doc&amp;cid=1738</link>
		<description>開始囉!!(本篇引述來自http://tech.marsw.tw/blog/&amp;nbsp;
ITRY | MARSW)安裝程式&amp;nbsp; (本篇以2.7.10版本為例)•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows：官網下載2.7.x版本或最新版本3.5.x。在環境變數加上C:\Python27;C:\Python27\Scripts。(如下圖)•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mac&amp;nbsp;內建2.7.5•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unix:內建3.x•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Online：Koding&amp;nbsp;執行第一個程式Hello World有兩種選擇：•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;直接開啟直譯器上輸入一行行程式碼，Enter執行o&amp;nbsp;&amp;nbsp;&amp;nbsp;
Windows:開啟Python(command line)o&amp;nbsp;&amp;nbsp;&amp;nbsp;
Mac/Unix:Terminal輸入python -輸入print &quot;Hello World&quot;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;跟以往一樣寫一個.py的檔案，執行python my_first_python.pymy_first_python.py# encoding:
utf-8&amp;nbsp;print
&quot;Hello World&quot;!!!注意中文的檔案要加上# encoding: utf-8WINDOWSMAC/UNIX&amp;nbsp;//2014-10-20補充網路上看到一張圖片大約40行的code也可以很清楚的供有程式基礎的人快速了解Python&amp;nbsp;簡中對照版(http://wiki.woodpecker.org.cn/moin/ZqQuickIntoPy?action=AttachFile&amp;amp;do=view&amp;amp;target=120417-coffeeghost-q-in-py.png)之後的部分，會更詳細介紹Python好用的功能，將以.py的檔案形式展示程式碼。&amp;nbsp;[語法]python不需要任何代表結尾的符號(ex;)python不需要先指定變數的型態，之後也可以任意轉換型態python可以透過=,+=,-=直接賦值，也可同時給多個變數賦值單行註解為#,多行註解則用&quot;&quot;&quot;開頭與結尾，多運用註解可以幫助你或其他人看懂你的程式碼。#
encoding: utf-8&amp;nbsp;&quot;&quot;&quot;這是一個簡單的python程式介紹基本的語法&quot;&quot;&quot;x
= 3x
+= 2x
-= 1print
xx,y
= 99.99,5print
x,yOutput:499.99 5&amp;nbsp;[數據類型]list是可以隨意更動大小的陣列，可透過append增加。python的list提供很多好用函式：•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len()可以算list長度•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum()可以計算list中所有數值的加總(但list中的元素都需為數值，不可與字串混合)•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count則是可以計算list中某個元素出現次數#
encoding: utf-8&amp;nbsp;my_list
= []my_list.append(1)my_list.append(2)my_list2
= [55.55,&quot;Hi&quot;,3,99,222,222]my_list2[0]=333.333&amp;nbsp;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:]&amp;nbsp;Output:2 3 2333.333 222 [&#039;Hi&#039;, 3] [3, 99, 222, 222]dictionary像是hash-table一樣有一個key對應一個變數#
encoding: utf-8&amp;nbsp;passwd={&#039;Mars&#039;:00000,&#039;Mark&#039;:56680}passwd[&#039;Happy&#039;]=9999&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;passwd[&#039;Smile&#039;]=123456&amp;nbsp;del
passwd[&#039;Mars&#039;]passwd[&#039;Mark&#039;]=passwd[&#039;Mark&#039;]+1&amp;nbsp;print
passwdprint
passwd.keys()print
passwd.get(&#039;Tony&#039;)Output:{&#039;Happy&#039;: 9999, &#039;Smile&#039;: 123456, &#039;Mark&#039;: 56681}[&#039;Happy&#039;, &#039;Smile&#039;, &#039;Mark&#039;]Noneset則是集合，可以進行聯集、交集、差集等運算#
encoding: utf-8&amp;nbsp;admins
= set()users
= {&#039;Smile&#039;, &#039;Tony&#039;,&#039;Happy&#039;,&#039;Sherry&#039;,&#039;Allen&#039;,&#039;Andy&#039;, &#039;Mars&#039;}admins.add(&#039;ihc&#039;)admins.add(&#039;Mars&#039;)&amp;nbsp;print
admins &amp;amp; usersprint
admins | usersprint
admins ^ usersprint
admins - users&amp;nbsp;&amp;nbsp;print
users - admins&amp;nbsp;&amp;nbsp;Output:set([&#039;Mars&#039;])set([&#039;Allen&#039;, &#039;Andy&#039;, &#039;Smile&#039;, &#039;Mars&#039;, &#039;Tony&#039;, &#039;ihc&#039;, &#039;Happy&#039;, &#039;Sherry&#039;])set([&#039;Andy&#039;, &#039;Allen&#039;, &#039;Tony&#039;, &#039;Smile&#039;, &#039;Happy&#039;, &#039;ihc&#039;, &#039;Sherry&#039;])set([&#039;ihc&#039;])set([&#039;Sherry&#039;, &#039;Andy&#039;, &#039;Allen&#039;, &#039;Tony&#039;, &#039;Smile&#039;, &#039;Happy&#039;])&amp;nbsp;[字串]字串可用雙引號&quot;或用單引號&#039;來進行標示#
encoding: utf-8&amp;nbsp;s
= &quot;Hello&quot;&amp;nbsp;s
+= &#039;World&#039;s1
= &quot;HelloWorld&quot;.replace(&quot;ll&quot;,&quot;1&quot;)s2
= &quot;Hello&quot;[0]+&quot;i&quot;print
s,s1,s2,len(s)Output:HelloWorld He1oWorld Hi 10其中python字串內建的分割函式string.split()很好用，可以將字串依指定的字元(字串)切割s3
= &quot;This is a sentence.&quot;s3_split=s3.split(&#039;
&#039;)print
s3_splitOutput:[&#039;This&#039;, &#039;is&#039;, &#039;a&#039;, &#039;sentence.&#039;]而中文的處理，我們可以透過unicode的編解碼來處理#
encoding: utf-8&amp;nbsp;s=&quot;台灣&quot;u
= s.decode(&#039;utf8&#039;)&amp;nbsp;print
&#039;台&#039;,s[0],u[0]print
u[0]==u&#039;台&#039;Output:台&amp;nbsp;?&amp;nbsp;台&amp;nbsp;#沒有解碼過的s是顯示不出來每一個&quot;中文字&quot;的True&amp;nbsp;[型別轉換、基本運算符]要注意的是，由於python不用特別宣告變數，要注意不能讓不同型別的變數同時運算ex: x+s會出錯，因為整數型態與字串型態，兩者是不能同時運算的#
encoding: utf-8&amp;nbsp;x=2**3y=3/2s=&quot;3&quot;print
ord(&#039;a&#039;),ord(&#039;c&#039;),chr(ord(&#039;a&#039;)+2)print
y,int(s)/2,float(s)/2,3%2print
str(x+y),str(x)+str(y)Output:97 99 c1 1 1.5 19 81&amp;nbsp;[Flow Control：判斷式、迴圈]再來就進入到程式設計中很重要的部分：流程控制也可以從這部分開始看到Python之所以容易閱讀的原因，每個流程的結尾是用冒號:屬於該流程底下的執行動作不需要任何括號，而是使用縮排縮排可以使用Tab或四格Space，但不可混用，建議是把編輯器設定成Tab對應四格空白縮排可以讓程式碼更容易閱讀，了解整個程式的架構&amp;amp;邏輯，也是寫程式重要的習慣之一。在python的判斷式中，and,or,not是邏輯運算子。python提供一個很好的函式range，範圍是左邊數字到右邊數字-1，在撰寫迴圈時可以更加快速。另外in函式可以用來判斷某個型別中是否有某個元素，非常的方便！#
encoding: utf-8&amp;nbsp;my_list=[]for
i in range(0,10):&amp;nbsp; &quot;&quot;&quot;//for(i=0;i&amp;lt;10;i++)&quot;&quot;&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
my_list.append(i+1)if
my_list[0]==1 and len(my_list)&amp;lt;10:&amp;nbsp;&amp;nbsp;&amp;nbsp;
my_list[0]+=1&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;1 state&quot;elif
(10 in my_list) or not(len(my_list)==10):&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;2 state&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;range(i,j) is i~j-1&quot;else:&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;3 state&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;none of above&quot;&amp;nbsp;for
i in my_list:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&quot;&quot;&quot;//for(i=0;i&amp;lt;my_list.length();i++)&quot;&quot;&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
print i,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&quot;&quot;&quot;//cout&amp;lt;&amp;lt;my_list[i]&quot;&quot;&quot;printOutput:2 staterange(i,j) is i~j-11 2 3 4 5 6 7 8 9 10[自定義函式Function]python定義函式用def開頭，同樣以冒號:結尾，還有縮排。def
my_function(x,y):&amp;nbsp;&amp;nbsp;&amp;nbsp;
return x-10,y+10x,y
= my_function(10,20)print
x,yOutput:0 30&amp;nbsp;[類別Class]Class的初始化函式是由兩條底線包含著init做宣告。#
encoding: utf-8&amp;nbsp;class
Student:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
def __init__(self, name, grade, age):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.name = name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.grade = grade&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.age = age&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
def set_name(self, name):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.name = name&amp;nbsp;&amp;nbsp;student_objects=[]student_objects.append(
Student(&#039;john&#039;, &#039;B&#039;, 15) )student_objects.append(
Student(&#039;dave&#039;, &#039;A&#039;, 12) )student_objects.append(
Student(&#039;jane&#039;, &#039;A&#039;, 10) )student_objects[0].set_name(&#039;John&#039;)&amp;nbsp;for
i in student_objects:&amp;nbsp;&amp;nbsp;&amp;nbsp;
print i.name,i.grade,i.ageOutput:John B 15dave A 12jane A 10&amp;nbsp;[導入外部資源import]可以用import直接導入整個python檔中所有的函式或是用from檔案import函式，插入特定的函式#
encoding: utf-8&amp;nbsp;import
sys &quot;&quot;&quot;插入sys檔案中所有函式，使用sys檔中的write函式前須加檔名&quot;&quot;&quot;from
time import time &quot;&quot;&quot;從time檔案插入time()函式，使用time()前不需要加檔名&quot;&quot;&quot;sys.stdout.write(
str(time()) + &quot;\n&quot; )Output:1409796132.99 #當下的time&amp;nbsp;[I/O]前例中已經看到很多使用print當Output的案例但print預設是印每一行就會加一個換行，要使用,才會在每次印出之間以空格取代要更自由一點，可以使用library中的write函式。#
encoding: utf-8&amp;nbsp;import
sysfile_in
= file(&#039;db.txt&#039;,&#039;r&#039;)file_out
= file(&#039;copy.txt&#039;,&#039;w&#039;)for
line in file_in:&amp;nbsp;&amp;nbsp;&amp;nbsp;
for i in range(0,len(line)):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
if line[i]!=&quot;\n&quot;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sys.stdout.write(line[i]+&#039;,&#039;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
else:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sys.stdout.write(line[i])&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
file_out.write(line[i])&amp;nbsp;sys.stdout.write(&quot;\n&quot;)file_in.close()file_out.close()&quot;&quot;&quot;#
db.txt11112222sssswwww5555&quot;&quot;&quot;Output:1,1,1,1,2,2,2,2,s,s,s,s,w,w,w,w,5,5,5,5,copy.txt內容和db.txt一樣。[例外處理&amp;nbsp;Exceptions Handling]#
encoding: utf-8&amp;nbsp;def
my_divide():&amp;nbsp;&amp;nbsp;&amp;nbsp;
try:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
10 / 0 #會讓程式出錯,所以需要特別handle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
except ZeroDivisionError:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;不能除以0!!!&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
else:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;沒有任何錯誤&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;
finally:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
print &quot;無論有沒有例外都會執行這一行&quot;my_divide()Output:不能除以0!!!無論有沒有例外都會執行這一行&amp;nbsp;[排序]排序是用程式處理資料中最常用到功能，python提供了很方便的sort函式lambda是簡易型函式，只能回傳一個值，因此如果需要兩個值以上的排列順序，會用attrgetter#
encoding: utf-8&amp;nbsp;class
Student:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
def __init__(self, name, grade, age):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;self.name = name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.grade = grade&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.age = age&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
def set_name(self, name):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
self.name = name&amp;nbsp;&amp;nbsp;student_objects=[]student_objects.append(
Student(&#039;john&#039;, &#039;B&#039;, 15) )student_objects.append(
Student(&#039;dave&#039;, &#039;A&#039;, 12) )student_objects.append(
Student(&#039;jane&#039;, &#039;A&#039;, 10) )&amp;nbsp;student_objects.sort(key=lambda
i: i.grade)for
i in student_objects:&amp;nbsp;&amp;nbsp;&amp;nbsp;
print i.name,i.grade,i.ageprint&amp;nbsp;from
operator import attrgetter&amp;nbsp;student_objects.sort(key=attrgetter(&#039;grade&#039;,
&#039;age&#039;),reverse=True)&amp;nbsp;for
i in student_objects:&amp;nbsp;&amp;nbsp;&amp;nbsp;
print i.name,i.grade,i.ageprintOutput:dave A 12jane A 10john B 15john B 15dave A 12jane A 10________________________________________以上介紹包含了一些最常用到的python功能，給想快速轉換python的人一個入門文章。What&#039;s Next?有了以前學C的基礎後，其實後來要碰任何程式語言都很快，最快學習的方法都是「動手做」一個Project，邊做邊google該語言的程式語法之後再從頭開始「看文件」，從官網或是書上一步步把該程式語言的基礎打好動手做&amp;nbsp;提供一些遊戲化的關卡來當作練習•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckiO&amp;nbsp;一個以連環故事為主題的的Online Judge網站。•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The Python Challenge&amp;nbsp;根據提示解出下一關網址的闖關遊戲，借此練習Python技巧。•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sikuli -&amp;nbsp;程式語言大革命！用圖片寫程式！ 利用Sikuli可以設計出好玩的自動化程式&amp;nbsp;看文件•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Python Tutorial&amp;nbsp;第一堂（1）揭開序幕 很完整的中文教學•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Learn Python The Hard Way&amp;nbsp;英文經典教材•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Invent with Python&amp;nbsp;透過開發遊戲學習Python&amp;nbsp;























































































































































































































































































































































































































































































































































































































































































&amp;nbsp;   </description>
		<pubDate>Tue, 01 Dec 2015 08:39:33 +0800</pubDate>
	</item>
	</channel>
	</rss>
