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