基礎程式設計 Week 1
前言
這裡是嘉義大學 111 學年度上學期基礎程式設計的解題筆記, 我會盡量以程式新手的視角來寫這份筆記。 若有各種問題,歡迎來私訊!
Sum of three numbers
題目敘述:把三個數字相加
解題思路:
Python
的輸入
很方便,使用input()
這個函式
來取得值
,而取得的值是一行的字
,所以要用int()
來將資料轉換型別
,並將他們相加
,最後顯示
出來上面提到了很多專有名詞,就來讓我們慢慢瞭解!
函式
就像是數學中的函數,而在程式中函式能讓你的程式碼重複使用,上述的input()
是 Python 內建的函式!程式通常有輸入、也有輸出,python 中的輸入可以用
input()
;輸出可以print()
,而 printer 是印表機的意思,所以輸出通常又叫做印
值
指的是right value
(=
右邊的值),與之對應的是變數名稱(variable
),稱left value
,把右邊的值交給左邊的值就叫做指派(assign
)一行的字
其實是指 input() 的特性,它只會抓到\n
(換行前的所有字),並回傳字
(string
)。 程式中有很多型別(資料的類別),int
代表整數(integer
)、str
代表字串(string
)、flaot
代表浮點數(也就是小數
)。程式中有數字,當然也會有四則運算(
+
,-
,*
,/
)程式碼:
Hi John
- 題目敘述:輸入一人名,並在人名前面輸出
Hi
- 解題思路:
input()
抓到的是字,所以不用再轉換形態,而程式中要表示一個固定的字串可以用""
包住(python 也可以用''
,但 C++""
與''
是不一樣的!)。print()
中可以放入很多值,並且記得要用,
隔開! - 程式碼:
Square
- 題目敘述:輸入一個整數,並輸出該整數的平方數
- 解題思路:
python
有很方便的語法(syntax),次方的運算只要只用兩個*
(**
)就可以了! - 程式碼:
Area of right-angled triangle
- 題目敘述:給定一直角三角形的底和高,印出它的面積
- 解題思路:三角形公式(底 * 高 / 2)帶入,要注意面積可能是小數,所以使用
除法
(/
),而在 python 中兩個/
(//
)是指整數除法
(只會取得整數的商
) - 程式碼:
Hello, Harry!
- 題目敘述:與 Hi John 類似
- 解題思路:數字有加減乘除,而程式中字串也有所謂的加法!若要在名字前面加上
Hello
,就只要在前面用+
串連字串就可以了! - 程式碼:
Apple Sharing
- 題目敘述:有 n 個人,k 顆蘋果,求每人分到幾顆蘋果、剩幾顆蘋果
- 解題思路:有整數除法外,程式中還有取模數(
mod
)的概念,而在數學上就是取餘數,python 用%
表示。 - 程式碼:
Previous and Next
- 題目敘述:印出數字的下一個與上一個
- 解題思路:白話就是
+1
與-1
, 而整數做完運算若要跟字串一起輸出,就必須轉換形態! - 程式碼:
Two Timestamps
- 題目敘述:計算兩個時間差了幾秒
- 解題思路:
timestamp
在資訊領域滿常出現的,意思是時戳
(也就是時間)。將時間都轉換成秒,再做相減(題目的第二段時間一定比第一段晚,所以不用考慮誰減誰) - 程式碼:
School Desks
- 題目敘述:每間教室都是兩人一桌,三間教室需要幾張桌子?
- 解題思路:每兩人一桌,未滿兩人也是一桌(思考看看要怎麼取得未滿的部分),而三間教室要分開算,最後再相加!
- 程式碼:
結論
第一週是基本的輸入、輸出、以及資料形態的運算,算是寫程式的入門知識。
記得!有問題一定要詢問!