顯示具有 程式視覺化 標籤的文章。 顯示所有文章
顯示具有 程式視覺化 標籤的文章。 顯示所有文章

2021年7月9日 星期五

Python 基礎:Number (數值)

在 Python 的資料型態 datatype 中,

有提到過 Python 的幾個資料型態,

之前也一直有介紹關於字串相關的主題

字串的分割

字串的合併與取代

字串的處理範例

今天要介紹的是

Python 基礎:Number (數值)

Number (數值) 簡單的講就是數字,

也就包含了 整數 int,浮點數 float , 複數 complex 等等,

除此以外 布林 bool 這些都是屬於 Number (數值) 這個型態的範疇。


透過內建函式 type 可以簡單判別一個變數的資料型態,

底下就是一個簡單的判別程式:

a = 10
b = 5.5
c = 3.14j

print(type(a))
print(type(b))
print(type(c))
可以看到輸出的結果分別為:
int
float
complex


光是觀看是不會加深印象的,

透過之前介紹的程式視覺化來認識這個小程式,


這就是今天要介紹的主題:

Python 基礎:Number (數值)





2019年11月22日 星期五

OnlineJudge線上評測系統-常見問題


之前介紹過OnlineJudge線上評測系統,

也列了一個程式範例,

一套新的系統對使用者來說肯定很陌生,

因此也產生了一些問題,

今天就針對這些問題來介紹:

OnlineJudge線上評測系統-常見問題


輸入/輸出範例相關




每個試題都有輸入範例與輸出範例,

而 OJ 是以比對方式來判別程式是否正確,

輸入/輸出範例中未出現的字(包含空格、逗號、換行)都會造成錯誤

上圖中的程式在輸出的時候多出了 “ a + b = “。


輸入/輸出範例相關



上圖中的程式多了輸入提示 '直徑?' ,

輸出也多了 ’面積為’ 、 '周長為' ,

故判定錯誤。


載入模組未加上 import


上圖中的程式使用了 math 模組,但沒有加上 import

資料型態


左圖中的程式假設輸入 a=1 , b=2 ,

雖然有作資料型態的轉換,

但因為輸出的浮點數 3.0 與題目的輸出範例不符,

故判定結果為錯誤。

演示範例:




input得到的資料,其型態為字串



input所得到的資料為字串,

必須先轉變資料型態後,

才能拿來作數值的運算。

以上圖中程式為範例,

分別輸入 1 與 2 ,

最終得到的結果為’ 12 ’ 的字串而非兩數字相加。



而此圖中程式並未作資料型態的轉換,

就直接作相減的運算,

故判定結果為錯誤。

split為字串分割的方法


上圖範例 b = a.split(‘,’),

可看到split回傳值為一個List(如黃底所示),

將原來的字串 a 分割為 ‘hello’ 與 ‘world’ 兩個字串。

程式演示:




上圖程式則是先將字串轉換為浮點數,

導致 c 與 b 已經不是字串,

再使用 split 是錯誤的。


初學者學習程式同時還要適應OnlineJudge線上評測系統,

難免會出現許多基本問題,

只要多練習即可。




2019年9月27日 星期五

程式視覺化工具 Python Tutor


要學好程式語言,

除了要有基本邏輯概念以外,

練習是精通程式語言的最佳辦法,

除了透過線上解題系統自行練習以外,

用程式視覺化工具幫助學習,

這就是今天的主題:

程式視覺化工具 Python Tutor


Python Tutor是一個線上工具,

它提供一個線上撰寫程式的平台以外,

也能將事先寫好的程式碼,

分享給其他人當作範例,

最重要的是它提供控制按鈕讓使用者能逐行執行程式碼,

並顯示記憶體中變數與物件的變化,

藉由觀察變數與物件的實際值,

幫助初學者學習。

 從Python Tutor首頁進入之後,

可看見撰寫程式碼的編輯器,

底下有兩個按鈕,

左邊功能為產生範例程式,

右邊則是讓使用者能線上撰寫程式,

底下是一個程式演示的範例:


可以看到使用者能夠透過左下方的back與forward控制程式執行,

而記憶體中的變數與物件則會即時反應在右半的frame中,

輸出畫面的資料會顯示在右上角。

初學者憑空想像與觀看實際值的變化,

當然是視覺化演示的範例程式來的效率高,

系統會輔以雙色箭頭分別代表目前執行(綠色箭頭)與下一行要執行(紅色箭頭)的程式碼,

使用者能一邊控制程式碼執行,

一邊觀察變數與物件的變化。

至於範例程式如何演示,

底下附上一個範例程式讓大家玩下:



49選6大樂透選號程式,

會在 1 ~ 49 間,

取六個不重複的數字