Variable and Input¶
Variable¶
接下來,我們來看怎麼使用變數,以及輸入自己想要的東西。
或許你可能會覺得神奇,為什麼 x 可以變成數字,又可以變成字串,還有為什麼第一個與第三個的輸出會是相同的。
再來用一些 old-school 的比喻,你可以將 x 想像成一個箱子,而等號右邊的「值」就是箱子裡裝的東西。既然箱子裡面的東西可以變,那我是不是可以說 x 是一個變數呢?
但請你先忘掉這個比喻,因為這個比喻並不完美,但我想你應該能夠理解,x 是一個變數,而 = 是指派運算子(Assignment Operator),他會將等號右邊的東西指派給等號左邊的變數,或者說 x 會指向等號右邊的物件(Object)。
Quote
在Python中,一切都是物件。
請觀看下面的動畫。
VØJ, Narvent - Memory Reboot (4K Music Video)
再來介紹幾種不同的變數類型。
type 告訴你括號中的東西是什麼類別(Class)。
b 與 c 都是浮點數(Float),也就是小數點的數字,而 d 則是字串,e 與 f 則是布林(Boolean),而 h 則是空值。
Note
type(x)回傳x的類別。int整數。float浮點數。str字串。bool布林。None空值。
Question
print(type(3 + 4.0))會印出什麼?print(type(3 + True))會印出什麼?
@EditTime : 2024-01-27 16:44
Input¶
但是如果每次想要修改 x 裡面的東西,難道都要在程式碼中修改嗎?能不能我自己來輸入呢?
喔幹,怎麼一下子多出那麼多東西,別慌,我來解釋,但請你先回想在前一節中學過的東西,你可以發現 input, int, 都是函式。而 input 括號中的字串會顯示在控制台中提示你要輸入什麼,int 則是把括號中的東西的類別轉換成整數。
那為什麼印出type(x) 得到 <class 'str'> 呢?代表 x 是一個字串,這是因為 input 總是將你輸入進來的東西當成字串,但我想要讓 z = x + y 這個數學式子成立,所以需要用 int 來將字串轉換成整數再進行運算。
那下面這個程式碼的輸出結果是什麼呢?
沒錯,字串的相加,就是相連。那你要不要試試看相減?
接下來我們來做個有趣的實驗,順便認識一下 f-string
那 f-string 是什麼東西呢?他是一種字串格式化(String Formatting)的方法,他會將括號內的東西轉換成字串,並將字串中的 {} 替換成括號內的東西。
而執行完程式碼後,你會發現 b 與 c 的類別不同,但他們的值卻相同,這是因為 int() 與 float() 都是將括號內的東西轉換成整數與浮點數,而 int() 會將浮點數的小數點捨去,而 float() 則會將整數轉換成浮點數。
那麼 b == c 是什麼意思呢?其中 == 是比較運算子(Comparison Operator),他會比較等號左右兩邊的東西是否相等,如果相等,則回傳 True,否則回傳 False。
Multiple Input¶
那如果我今天想要一次輸入好幾個字串,每一個字串以空格來隔開呢? 但在這之前,我們先來看一個小程式 :
我知道怪怪的,為什麼字串後面接了一個 .split() 呢?在這裡他很像是函式,但又不是函式,那他叫什麼呢?他被稱為 "Hello World" 這個字串的方法(Method),但未來你可能還會聽到類別方法(Class Method),以及靜態方法(Static Method) 等名詞,我怕你會搞混,所以你就先認逗點後面的是「方法」就好了。
而 .split() 會把字串以括號內的東西來切割字串並回傳(那你想想括號內什麼都沒放,預設會是什麼?),而看看等號左邊,我用 a, b 去接著,這稱為開箱(Unpacking)
那現在你應該能看懂下面的程式碼了,因為 input() 也會回傳一個字串,因此他也能夠使用 .split()
Note
input()接受輸入,回傳一個字串。int(x)將x轉換成整數。float(x)將x轉換成浮點數。str.split()以括號內的東西來切割字串,並回傳。
@EditTime : 2024-01-25 22:13
Question
print(int(input()) + int(input()))會印出什麼?124.spilt("1")是合法的嗎?bool(0)與bool(1)會回傳什麼?- 看以下的程式碼,為什麼它們的功能相同,
a與b成功互換了呢?
@EditTime : 2024-01-25 22:17
Practice¶
在這篇文章中,你學到了:
Info
- 如何使用
print()與input()。 - 知道變數的概念。
- 知道
type(x)與int(x), float(x)的用途。 - 知道
str.split()的用途。 - 知道如何使用
f-string。
那現在你可以試試看以下的題目了。
ZeroJudge - a001. 哈囉
@EditTime : 2024-01-27 17:02