![](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)