2017年5月24日 星期三

Python ê 基礎 - 變數

佇咧寫 Python 程式, 上基礎就是變數. 變數是暫時囥物件的所在. Python 佇運行過程中, 有時一寡運算的結果, 咱愛先留个, 後壁才提出來用。比論講:

$ python3
>>> sum = 2 + 3
>>> sum
5
>>> result = sum * 6
30

>>> print(sum) 
5
>>> print(result)
30

佇這咧簡單的程式[tîng-sit]內, sum, result 就是變數. 了後隨時會使提出來用。頂一个算式實際上就是 (2+3)*6.

變數的值, 用相仝符號 '=' 來囥入去. sum = 2 + 3 就是算出結果, 順紲囥--入去 sum 內底.

變數號名有一寡限制, 愛是英文字母𤆬頭, 後壁綴英文字數字抑是底線, 比如講 gua, dog1, my_dog 攏會使. 猶毋過, 像 3dogs, %lang 就袂用--得.

另外的限制, 是有一寡 Python 的保留字, 親像 for, while, if, end, 這是 python 留--落來欲家己用个.

莫踏--著這寡限制, 你會使號凊彩你佮意的名. 毋過, 上好是愛有小可仔意思, 和程式 uì 頭到尾的理路有關係. 因為你可能寫了擲--咧, 半年了後才閣抾轉來看. 嘛有可能你的程式真有路用, 真濟人用, 愈寫愈大, 有千萬的變數, 落尾煞無人知影你的變數佇創啥物, 連你家己嘛袂記得。比如講:

a = 2 + 3 
b = 7 + 9
c = a * b

和

sum1 = 2 + 3
sum2 = 7 + 9
result = sum1 + sum2

這兩的是做仝款的代誌. 毋過, 第二个雖然無解說, 逐家嘛臆个出來伊佇創啥. 號一个好名, 是真好的習慣

2017年5月16日 星期二

進一步 ê 數學, 順紲介紹程式庫

咱頂擺有講著基礎數學的 +, -, *, / 運算. 毋過, 數學的物件閣真濟, 按呢是無夠。

像指數較簡單, 用 ** 就會使, 像平方 22 , 立方23, 就是

$ python3
>>> 2**2
4
>>> 2**3
8

無論偌濟次方, 攏無siáng 問題. 若是開平方 √2咧? 開立方咧? 當然, 咱會使用數學智識, 開平方就是指數 1/2, 開立方就是指數 1/3/, 所以

>>> 2**(1/2)
1.4142135623730951
>>> 2**(1/3)
1.2599210498948732

閣落來, 像對數[tuì-sòo] Log, 圓周率[înn-tsiu-lu̍t] π, 幾何 的 sin, cos, 這寡無法度逐項攏用數學智識uì上基礎來推論出來, 傷了工, 閣僫做, 嘛失去學程式的意義.

學程式有一咧重要的觀念: 莫重複發明輪仔。

學寫程式, 就是欲利用電腦削削叫个計算速度, 閣有濟濟人寫好的家私. 你想欲做的代誌, 檢采較早有人想過, 嘛做出來也. 咱若會當揣著 in 寫好的家私, 直接捎來用, 會使咱省足濟時間咧。

學會曉 Python, 你就徛佇這咧磅空口, 這磅空內有濟濟个軟體寶藏. 看你欲入來無? 欲行外遠? 內面个寶藏, 你一世人嘛用袂了。

咱以數學來講, 若欲較深咧, 會使利用 math 這咧 module. Module 這个概念, 後擺咱會閣較詳細介紹, 佇遮先[sing]知使用方式.

欲使用 math 這个 module, 咱愛先共伊掠入來目前个環境, 這咧命令號做 import (進口).

$ python3
>>> import math

紲落來, 你就會使用伊內底个家私. 伊的物件, 攏是 math.XXX() 个樣, 比如講, 欲算對數 log2 10, 就是

>>> math.log(10, 2)
3.3219280948873626
>>> math.log2(10)
3.321928094887362
>>>

頂兩个是仝款ê, 只是 math.log2() 是專門用佇 log2  2 base 个, math.log() 第二个是會使變ê, 你欲tī 2, 3, 4, ... 啥物 base 攏會使.

你若袂用特殊个固定數 (constant), 親像圓周率 π, 自然對數 e,

>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045

賰个閣有足濟 function,像 cos(), sin(), tan(), .. 三角函數(Trigonometric functions), 求上大公因數 gcd(), 角度單位轉換 degrees(), radians(), 濟佮講袂了.
若是按呢, 欲按怎使用佮查咧? 你會使用網路頂 ê 文件, Python 个 文件做囉真好, 你會使去遮查, 嘛會使直接佇 Python3 shell 中央(tiong-ng), 用 help() 來查

>>> help(math)
....
>>> help(math.log)

先用 help(math) 大概 [tāi-khài] 查 math 有啥物函數, 揣著你愛个, 比論講 log(), 才閣用 help(math.log) 查伊的詳細用法.

當然, 數學遐闊, 嘛毋是 math 一咧 module 有tha̋ng 總包. 好佳哉 Python 嘛毋是干焦 math 這一咧數學函數, 基礎个閣有 numbers 來扞 數字个處理, 像複數 (complex number),  cmath, decimal, fractons, random, statistics. 橫直, 等你欲用著个時才去揣就好阿

2017年5月6日 星期六

用 Python3 來做計算機

咱了解欲按怎安裝, 運行 Python 了後, 就會使開始使用囉.

Python 是一咧工具, 你會使共當做耍物仔, 嘛會使用伊來賺食. 就干焦唱歌, 有人家己hinn-hinn-honn-honn 唱歡喜, 嘛有人上舞台做大歌星. 一支筆, 有人寫來記數 niâ-niâ, 嘛有人寫出大部的小說天跤下攏知影伊的名. 總是, 踮電腦的天跤下, 抑是網路的世界, Python 是足有路用的專業工具.

毋過, 咱若欲入門, 嘛免想遐濟. 伊嘛是會使用來耍, 用來解決一寡生活的零星代,趣味就好. 這馬咱先來共伊當做計算機來用.

咱先進入伊的應聲模式:

$ python3
>>> 4 + 6
10
>>> 20 - 7 *2
6
>>> (20 - 7*2)/4
1.5
>>> 100/3
33.333333333333336
>>>

踮頂懸的例tiőng, 咱共上基本的加[ka],減[kiám],乘[sîng],分[pun, 華語:除] 行一遍。踮遮, 台語念法參考筆算个初學這本書.

數學符號, 加是 +, 減是 -, 無問題. 毋過乘改作 *, 分改作 /.
圓括號 () 的意義佮數學定義仝款, 優先計算.
按呢是毋是真簡單呢?

有時, 你揤一捾落落長的算式, 算了才發現有毋著, 欲按怎? 閣重新一字一字揤?

免遐囉嗦--啦, 只要揤向頂的箭頭 ↑ 就會轉去拄仔彼例算式, 才閣揤正鍵→,倒鍵←,倒退鍵(Backspace), 挕掉鍵 (Delete) 來改正.
有時, 你想欲頂一咧計算的結果, 用佇這馬這咧計算, 若按呢愛用底線 _, 比如講:

>>> 2 + 4 +5/3
7.666666666666667
>>> 2 * _
15.333333333333334
>>> 

對分法, 咱閣愛討論較幼咧. 分法有時會分袂了, 欲有賰數(remainder, 華語: 餘數), 抑是直接共賰數擲掉? 抑是欲算幾位的小數? 佇 Python3, 咱用無仝的算符 (operator) 來區別:

>>> 17/3
5.666666666666667
>>> 17//3
5
>>> 17%3
2

斜線 / 是算出小數, 雙斜線是干焦留整數, 百分比 % 是干焦留賰數。

指數 (power) 是雙星 ** 來代表:

>>> 5**2
25

Python3 的數學規則, 親像先乘分, 後加減, uì 倒手爿算到正手爿, 攏佮數學仝款。

2017年5月5日 星期五

Python ê 戲文模式

戲文(script, 華語:劇本,台詞) 模式, 就是你愛先共欲做的代誌先寫予好, 囥佇一咧文字檔內底. 紲落來才叫 python 去讀這咧文字檔案, 按照te̋ 做. 就干焦演員愛照戲文來搬戲仝款.

戲文愛先uì頭到尾寫予好, 無 Python 搬戲搬到一半會搬袂落去.

咱這馬先來寫一咧上簡單的戲文,拍開凊彩一咧你慣勢的文字編輯程式, 像 Notepad(記事本), UltraEdit, gedit, vi/vim, 攏會使. 毋過, Microsooft Word 是袂用--得, 因為伊毋是純文字檔。伊的檔尾溜是 .doc. 純文字檔的檔尾溜是 .txt. 佇 Python, 咱會予伊一个專用的檔尾溜: .py.

咱就來寫一咧簡單戲, 拍開了後, 寫下跤的詞:

#!/usr/bin/python3
print("gâu 早, 咱來算數")
sum = 1 + 3 *6 + 7/3
print(sum)

共伊號一咧名, 譬如講 simple.py, 儉--起來. 拍開命令窗, 叫 python3 來搬戲囉

$ python3 simple.py 
gâu 早, 咱來算數
21.333333333333332
$
佇這段戲文內, 咱干焦叫 Python 做三項代誌: 先 ai̋-sah-tsut 一咧, 算數, 共答案印--出來.
伊佮應聲模式無仝款, 戲文乎伊, 伊就佮戲文uì頭到尾做了, 就煞鼓跳出來阿!

2017年5月1日 星期一

Python ê 應聲模式

Python 有兩種運行的模式, 一種號做戲文模式, 另一種是應聲模式。
戲文模式佇遮紹介.


應聲(interactive, 華語:交談) 模式, 就干焦兩人佇答喙鼓, 你就和 Python 佇答喙鼓. 你講一句, 伊隨喙就應。這模式其實是 uì 命令窗仝款个意思.
這馬, 咱先來欲起動應聲模式, 就是干焦佇命令窗內揤 "python3", "ENTER", 看著三支角 ">>>", 就入去應聲模式。



這咧時陣, 你踮內揤啥物, 上尾揤 ENTER, Python 隨會應. 無論是伊看--有抑是看--無你的命令, 伊攏會應. 看--無伊就回--講: "我毋知你佇講啥物", 順紲共你講伊感覺佗位毋著:

>>> dfdfee
Traceback (most recent call last):
  File "", line 1, in
NameError: name 'dfdfee' is not defined
>>> 

莫驚著伊講甲落落長, 橫直[huînn-ti̍t], 有一个 Error 就是伊看--無, 後擺咱才詳細了解伊是佇咻--啥物.

咱來寫伊看有个, 像:

>>> print("Hello")
Hello
>>>

>>> 2+5
7
>>>

問伊 Hello, 就應你 Hello, 叫伊算數, 閣袂重耽,隨算予--你. 你有注意著--無? 一算了, 馬上出現三支角 >>> 佇等待你紲落來的新命令。

簡單講: 看著三支角 >>>, 就是換你講話, 落命令。 揤 ENTER, 代表換 Python 照你的命令去運行, 若有啥物結果抑是錯誤, 佇下一逝共你報告!


這就是應聲模式的特色!




佇 Linux 來看GPX 檔案

最近定定有戶外活動。使用𤆬路機 (GPS) 來記錄行過的路線。普通我記錄路線,攏是用手機仔抑是專門个𤆬路機,罕得用電腦來看。 毋過,"仙人拍鼓有時錯,跤步踏差啥人無"。有一擺我無細膩,袂記得共一擺活動的路線收煞起來,閣直接開始記錄下一擺的活動,按呢共幾落...