文章程式碼顯示

2017年8月16日 星期三

一起學 Python - 01 :數據類型 字串vs整數vs浮點數

# 區塊一
one = 1
two = 2
three = one + two
print(three)

# 區塊二
c_one = "你" #字符串"你"賦予到變量"c_one"
c_two = "好"
c_three = c_one + c_two
print(c_three) #字符串拼接

# 區塊三
f_one = 1.1
f_two = 2.2
f_three = f_one + f_two
print(f_three)

首先請開啟一個新的腳本並且複製上列的程式碼
裡面我略過了關於數據類型方面的說明
主要是希望可以另外開一篇文章來說這件事
我將本篇的程式碼分了幾個區塊,並且分區塊來解釋

# 區塊一
可以看的出來我們將變量one變成1、變量two變成2
變量three則由變量one + two 組成

# 區塊二
變量c_one變成"你"、變量c_two變成"好"
變量c_three則由變量c_one + c_two 組成

# 區塊三
變量f_one變成1.1、變量f_two變成2.2
變量f_three則由變量f_one + f_two 組成

按 F5 快捷鍵執行腳本後可以得到以下結果














由此可見
區塊一實現了兩個變量的相加
區塊二實現了兩個變量(字串)的相加(字符串併)
區塊三實現了兩個變量的相加

然而,three、c_three、f_three這三個變量對於電腦來說都是不同的"數據型態"

數據型態可以由Python內建函數type()來進行檢視。
在交談式視窗中分別輸入
type(three)
type(c_three)
type(f_three)
可以得到以下結果


















可以看到type(three) 回傳 <class 'int'>
此代表著對於Python而言,three這個變量的數據型態為'int' 整數數據型態
也就是他只能是0,1,2這種整數,而不帶小數點

而type(f_three)回傳 <class 'float'>
代表著此變數數據型態為'float' 浮點數數據型態。所謂浮點數簡單的理解為小數即可

type(c_three)回傳 <class 'str'> 代表著字串數據型態



















如此一來就可以解釋在一起學 Python - 00 :跟著零基礎腳步從頭學Python 順道 C語言基礎 教程 入門的第二、三行程式碼中所代表的含義是什麼。

temp = input("輸入猜想的數字") #input回傳值至temp,且為字串
guess = int(temp) #將字串強制轉型為整數

由temp = input("輸入猜想的數字")後方我個人的註解可得知,調用input函數所得到的回傳變量是一個"字串",也就是< class 'str' >

guess = int(temp) 運用了C語言的寫法,其作用為強制轉型。強制轉型就是將原本的數據型態強制轉換到另一種數據型態。

以上述為例,temp原本為"字串"的數據型態,將temp括弧起來並且在前面加入想要改變的數據型態(在此為int)。如此一來就可以將原本為字串的temp強制轉為"整數數據型態int"了














至於為何要強制轉為整數型態? 其原由是為了在後面的比較運算子進行鋪路
if guess == 6 :
在此的比較運算子 == 後方的6,明顯的是一個整數型態
比較運算子要求兩邊的數據型態必須相同(例如同樣為整數,或同樣為字串數據),這也就是為什麼要將 temp 轉為整數數據型態,再存入 guess 變數的原因了。

註:你也可以不將input函數回傳得到的字串符數據型態轉為整數,而後方的 6 必須改為 '6' 但在編程習慣上我們會避免這樣的情形

補充說明:

Python 若將浮點數數據型態強制轉型為整數數據型態,會無條件捨去。






↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引