## 01 與Python的邂逅
###### - Python 小社課 -
###### **Gino**
---
#### 認識Python

----

**\\Python他發明的/**
----
### 語言特性
----
**\\code簡潔&人性化/**
```cpp=
/* 長得很醜的C++ */
#include <iostream>
using namespace std;
int main() {
cout << "Hello\n";
return 0;
}
```
```python=
# 簡簡單單的Python
print("Hello")
```
----
### **物件導向語言!**
----
蛤...什麼是物件導向...?
沒關係之後小社課會教OwO
一定要來歐>u<
----
但是...
**/直譯式語言\\ - 讓Python速度慢**

----
**/動態型別語言\\ - 讓Python速度慢**
----
儘管速度這麼慢...
**\\還是很受歡迎/**!
---
### **常用編輯器**
我也好想寫Python ><,但應該用什麼寫呢?
----
記事本寫code + 打指令執行Python

----
~~記事本寫code + 打指令執行Python~~
毒瘤
----
#### **離線編輯器**
----
Python官方ㄉ

----
Sublime Text

----
專業一點的 - **整合開發環境**
Jetbrain的PyCharm

----
注意!
使用這些編輯器前
請先到官網裝Python包來用
https://www.python.org/downloads/
----
#### 線上編輯器
----
講師個人最喜歡也唯一推薦 -
----
**Repl .it**

----
Google打python online

----
註冊一隻帳號
就可以把寫過的檔案存在網站裡
----
耶伊可以開始寫code了><
---
## **Hello, world!**
#### **- 基本輸入、輸出-**
----
Python輸出訊息到螢幕
```python=
print("Hello, world!")
print("Welcome to CRC!")
```
----

----
讓使用者輸入一行文字
```python
input()
```
----
```python=
print(input())
```
把輸入進來的文字原封不動輸出
---
## **變數**
#### **- 儲存資料的空間 -**
----
有一個變數x,把它"**設為**"12345
```python
x = 12345
```
----
印出變數x
```python=
print(x)
```
---
## **常見變數資料型態**
----
整數、浮點數
int, float
```python=
my_int = 123456
my_float = 11.321
```
順帶一提
Python的整數無上限(不像C++)
Python的浮點數誤差有點嚴重
----
字串
str
```python=
my_str = "CRC is the best!"
my_str2= 'CRC is the best!'
```
----
布林值
bool
```python=
my_bool = True
my_bool = False
```
----
## **變數當然可以輸入!**
----
回憶一下

----
問:變數x是什麼型態?
```python=
x = input()
```
----
那...想輸入數字怎麼辦?
----
```python=
# x是浮點數
x = input()
x = int(x)
# y是浮點數
y = input()
y = float(y)
```
----
簡化
```python=
# x是整數
x = int(input())
# y是浮點數
y = float(input())
```
---
## **變數的運算**
----
### **數字**
----
#### 整數
```python=
a = 5
b = 3
print(a + b) # 8
print(a - b) # 2
print(a * b) # 15
print(a / b) # 1.6666666666666667
print(a // b) # 1 (因為 5/3 的整數部分是1)
print(a % b) # 2
print(a ** b) # 125
```
優先順序:
1. **次方**
2. **取餘數**、**除->取整數部分**、**乘除**
3. **加減**
----
算式太長可以加括號
`((5 + 1) * (2 ** 5 - 4) + 3) % 6`
----
#### 浮點數
其實跟整數一樣
但是Python小數誤差很嚴重
```python=
a = 5.1
b = 1.6
print(a + b) # 6.699...
print(a - b) # 3.499...
print(a * b) # 8.16
print(a / b) # 3.187499...
print(a // b) # 3.0
print(a % b) # 0.299...
print(a ** b) # 13.555...
```
----
#### 字串
字串加法 = 接龍
```python=
s = "ABC"
t = "DEF"
print(s + t) # "ABCDEF"
print(s * 3) # "ABCABCABC"
```
----
#### 布林值
```python=
T = True
F = False
print(T and F) # False
print(T or F) # True
print(not T) # False
print((not T) or (T and F)) # False
```
跟中文語法的邏輯一樣
- and(且): 兩個都要成立 -> True
- or (或): 一個成立就可以了 -> True
- not(不): 對,就是"不"
----
比較兩筆資料、變數的關係
```python=
one = 1
two = 2
print(one > two) # False
print(one >= two) # False
print(one == two) # False
print(one <= two) # True
print(one < two) # True
print(one != two) # True
```
字串的比較適用**字典序**
布林值則是 **True > False**
---
## **複習!**
----
- Python介紹
- 常用編輯器
- 輸入輸出(print, input)
- 變數
- 變數資料型態
- 變數的運算&比較運算
---
## **練習!**
----
CRCOJ
- 0018北極熊大遷徙(★★★)
- 0002不要學我說話(★★★)
- 0003一元一次方程式(★★★★)
- 0023好氣喔!店員是破腦(★★★★★)
{"metaMigratedAt":"2023-06-15T13:07:28.044Z","metaMigratedFrom":"YAML","title":"01 與Python的邂逅","breaks":true,"slideOptions":"{\"transition\":\"fade\",\"spotlight\":{\"enabled\":false}}","contributors":"[{\"id\":\"ac1507e0-f05c-4708-bdd2-c56d13fb0dbb\",\"add\":4286,\"del\":563}]"}