---
tags: Python
---
# 變數
## 宣告?Python不需要!
### Python中的變數是不需要事先進行宣告的,我們只要直接使用即可。
---
## 輸入
在Python中,我們使用 `input()` 函式來進行輸入,且預設輸入型態皆是字串 `str`。
因為 `input()` 是一個函式,所以小括號是不可以省略的。
而Python也提供了一個便利的功能,讓我們可以直接在 `input()` 的小括號裡面打上提醒使用者輸入的內容,例如:
```python=
s = input("請輸入你的名字: ")
```
此時在螢幕上會顯示 `請輸入你的名字: ` 並等待使用者輸入,
當我們輸入時,便會直接存進s這個變數中。
---
## 輸出
Python的輸出是使用`print()`函式,括號內可以有多個變數,且輸出完會自動換行。
例如:
```python=
s = input("請輸入你的名字: ")
print(s, "你好!")
```
輸入: `ABC`
輸出: `ABC 你好!`
我們可以發現,以逗號隔開的變數,Python會自動輸出空格間隔,若不想要空白區隔,有幾種方式可以解決。
* 使用`end=`來實現
在`print()`函式新增一個參數`end=`,這個參數可以讓我們決定`print()`要以什麼作為結尾,沒有此參數便是以換行字元`'\n'`為結尾。
以上面的程式碼為例,我們如果不想要名字與你好之間有空格,則可以寫成:
```python=
s = input("請輸入你的名字: ")
print(s, end='')
print("你好!")
```
輸入: `ABC`
輸出: `ABC你好!`
* 使用**字串串接**來實現
Python的字串只需要使用`+`便可以進行串接,串接時自然就不會有空格了,
以同樣的程式碼舉例:
```python=
s = input("請輸入你的名字: ")
print(s + "你好!")
```
輸入: `ABC`
輸出: `ABC你好!`
可以發現程式碼變短了,可讀性也沒有降低,因此這是一個不錯的方法!
但是,這是輸出的變數同樣是字串的情況,如果想要輸出的變數不是字串呢?
這時候就要使用到**資料轉型**了!
---
## 資料轉型
前面有說到,Python預設輸入型態都是字串`str`,那如果我們想要運算數字,就需要把輸入轉換成整數 `int` 或是浮點數 `float` 型態,
寫法也非常簡單,只要用 `新的變數型態(原本的變數名稱)` 便可以完成資料轉型。
假設我要寫一個程式運算某生成績加十分後的結果 ~~(聽起來很白癡,但就先這樣吧)~~ ,可以寫成:
```python=
grade = int(input("請輸入成績: "))
print("新的成績:", grade + 10)
```
輸入: `55`
輸出: `新的成績: 65`
其中的 `int(input("請輸入成績: ")` 有使用到**複合函式**的概念,
我們先用 `input()` 來取得使用者輸入的內容,再用 `int()` 來將剛剛的輸入轉型成整數型態。
如果要解決前面不想要輸出有空格的問題,也可以使用資料轉型來達成,範例如下:
```python=
grade = int(input("請輸入成績: "))
print("我今天小考考" + str(grade) + "分~")
```
輸入: `55`
輸出: `我今天小考考55分~`