---
# System prepended metadata

title: 型別 Type
tags: [python]

---

# 型別 Type
###### tags: `python`
當我們宣告一個變數`purchaseOfCoke = 100`，把滑鼠放上去會看到![](https://i.imgur.com/FJyIrgi.png)
`int: purchaseOfCoke` 前面的`int`代表「integer（整數）」，也就是說，`purchaseOfCoke`是一個「整數型別的變數」。
你可以用`type()`看到某個變數是什麼型別：
```python=
purchaseOfCoke = 100
supplier = "Cokecola"
print(type(purchaseOfCoke))
print(type(supplier))
print(type(0.12))
# output:
# int
# str
# float
```
其中，`str`代表「string（字串）」、`float`代表「浮點數（小數）」。
python是「弱型別」的程式語言，簡言之，你不用特地告訴他你要用的變數是什麼型態，甚至你可以將一個變數從整數變成字串也是沒問題的。
（會這麼說是因為在滿多程式語言，這麼做都是會出錯的！）

那麼型別的意義在哪裡呢？
例如，你可能會討論一個整數的個十百千萬位，但不會討論一個字串的個十百千萬位。取而代之，你可能會想討論一個字串的長度、是否包含其他的字串。
例如，數字可以進行加減乘除的運算，但字串不行。

```python=
print(3*5)
# output: 15

print("abc" * 3)
# output: abcabcabc

print("abc" / 3)
# TypeError: unsupported operand type(s) for /: 'str' and 'int'
```
在python中，將字串進行乘法，會將該字串重複。但是如果進行除法，則會出現「TypeError」，代表型別上的錯誤。
`TypeError: unsupported operand type(s) for /: 'str' and 'int'`表示：不支援「/（除法）」在「字串」及「整數」間的運算。

### Try it
試著對整數、浮點數（小數）、字串進行不同的運算，觀察他的結果。如果出現錯誤，請試著解讀他的錯誤，想想為什麼會報錯。