---
# System prepended metadata

title: python-新手上路-Day1｜變數｜if...else
tags: [python, 新手上路]

---

![](https://hackmd.io/_uploads/BJ4slReah.png)

# python-新手上路-Day1｜變數｜if...else

這一篇會學到的

1. input()
2. 什麼是變數
3. if...else if...else

# 輸入

## input 輸入

在程式中，我們使用 'input' 函數來接收使用者的輸入

```python=
n = input()
nn = input('請輸入一些字')
```

### 多行輸入
```python=
#第一種方法
import sys
# for line in sys.stdin.read().splitlines*():
for line in sys.stdin:
    line = line.strip()
    print(line)
```
```python=
#第二種方法

while 1:
    try:
        n = input()
        print(n)
    except:
        break
```


### 引入檔案

如果有引入檔in.txt的話
```python=
# a.py
a = input()
print(a)
```

```python=
# in.txt
Everything will get better
```

然後在終端裡打
```
python a.py < in.txt
```
就會印出
```
Everything will get better
```
### 印在檔案裡
直接打這行就可以了
~~前提是你引入檔案有成功~~
```
python a.py < in.txt > out.txt
```

如果不用引入檔案就直接打就可以了
```
python a.py > out.txt
```

### 中文輸入
有時候在 in.txt 檔案裡輸入中文的時候
在 `text.py < in.txt`
讀進來的資料會是亂碼
所以會需要
```python=
import sys

a = sys.stdin.reconfigure(encoding="utf-8")
for line in a:
    print(line)
```
就可以讀中文了

      
# print 輸出

> 當你用 'print' 顯示東西時，程式不會給你掌聲，但至少它不會扔番茄！

 'print' 函數能夠將結果呈現在螢幕上
 
```python=
print('hi')
```

# 變數

> 像是在命名寵物一樣，程式中取名變數也是一門藝術，畢竟 'x' 和 'y' 可不是什麼好名字！

在程式中，變數是儲存數據的容器，而在教學中，我們可以將學生的腦袋想像成儲存知識的 '變數'。
Python中常見的基本型別有：`int` (整數)、`float` (浮點數)、`str` (字串)、`list`(列表)


```python=
int_val = 10
float_val = 12.3
str_val = 'hello python'
boolean_val = True
nv = None

print(int_val, float_val, str_val, boolean_val)
print(type(int_val))
print(type(float_val))
print(type(str_val))
print(type(boolean_val))
print(nv)
```
1. 我們可用=來給變數宣告初始值
2. 我們可用type這個函式來得知變數的型態

## 數學運算子

可被用做運算、加減乘除、次方

|    方法    | 程式碼 |
|:----------:| ------ |
|    加法    | n + 2  |
|    減法    | n - 2  |
|    乘法    | n * 2  |
|    除法    | n / 2  |
| 除法(整除) | n // 2 |
|  n的次方6  | n ** 6 |
|   取餘數   | n % 6  |


## 註解

> 註解就像是語言學家為了未來的自己寫下的筆記，因為連當初寫程式的自己都不會記得這是在幹嘛。
```python=
# 在程式中，變數是儲存數據的容器
```

```python=
'''
多行註解

'''
```

---

# 流程控制(if...else)

> 有人說，程式設計師就像是翻譯員，將你的思想翻譯成電腦能理解的語言，然後再生氣地問你為什麼想的這麼亂。

> 邏輯就像是去迷宮，只不過是在完全黑暗的房間裡，而且迷宮裡的牆還會隨機改變位置

在Python中，使用if、elif（相當於其他語言的elseif）、else結構可以實現條件判斷和控制流程。

請注意，在Python中，不同於其他語言，它使用==縮排==（空格或制表符）來表示程式碼塊的層次結構，這是確保代碼的正確執行的關鍵。
## Bollean(布林)型態

True (真)

False (假)

可以利用邏輯條件生成

### 1. 比較運算子

| 運算子 | 效果 |
| -------- | -------- |
| x < y     | X是否小於Y     |
| x <= y     | X是否小於等於Y     |
| x > y     | X是否大於Y     |
| x >= y     | X是否大於等於Y     |
| x == y     | X是否等於Y     |
| x != y     | X是否不等於Y     |

```python=
10 <= 60 # 會變成 True

20 == 40 # 會變成 False
```
---
### 2. 複合式
> 當你全都要的時候

| 運算子 | 效果 |
| -------- | -------- |
| a or b| A或B其中一個條件成立就回傳True |
| a and b| A或B兩個條件都成立才回傳True |
| not A| 如果A為True，則回傳False，反之則回傳True |

```python=
# 要是3和5的倍數
number = int(input()) # 輸入一個數字
number % 3 == 0 and number % 5 == 0
```

```python=
boolean = 12 + 4 > 80
print(boolean) # 會輸出 False
```

## 發揮你的想像力

1. 草稿

```python=
如果 (條件1):
    條件1成立，做這裡的事情
(條件2):
    條件2成立，做這裡的事情
都不成立:
    條件不成立，做這裡的事情
```

2. 把邏輯加上

```python=
如果n可以被2整除:
    輸出【是偶數】
如果可以被3整除:
    輸出【是3的倍數】
都不成立:
    輸出【不是偶數也不是3個倍數】
```

3. 最後變成程式碼

(換成程式)
你設定的條件(邏輯判斷)，
==用`if`開頭，用 `:` 結尾==

```python=
if n % 2 == 0:
    print('是偶數')
elif n % 3 == 0:
    print('是3的倍數')
else:
    print('不是偶數也不是3個倍數')
```
看得懂了，對吧?
```python=
# 再看一個範例    
    
hungry = True
tired = True

if hungry:
    print("我餓了，我想吃東西！")
    print("去找點吃的。")
else:
    print("我不餓，我可以不吃。")
    print("好，我可以繼續工作了。")

# 或者更短一點的寫法
print("我需要咖啡" if tired else "我還可以繼續碼字。")

```

## 牛刀小試

[TQC+ 程式語言Python 第2類：選擇敘述](https://jbprogramnotes.com/2020/05/tqc-%e7%a8%8b%e5%bc%8f%e8%aa%9e%e8%a8%80python-%e7%ac%ac2%e9%a1%9e%ef%bc%9a%e9%81%b8%e6%93%87%e6%95%98%e8%bf%b0/)

## 下一篇
[python-新手上路-Day2｜for｜while｜字串切片](/T8_eqzIUTpSZpE-KQALOAw)

## 回目錄
[回目錄](https://hackmd.io/@lucashsu95/python-list)