# 2023/9/27 GDSC期初大會
---
## 簡介
>1. 幹部自我介紹
>2. 介紹GDSC
>3. 破冰遊戲
>4. 介紹安裝Python, VScode
>5. 第一次社課
### 1.幹部自我介紹
* 社長:廖珈鋒
* 教學組:王博均,陳書凱,蔡誌桓,楊詠旭,陳昱逢,高聖傑,蔡明軒
>是程式大佬,他們會**為各位上課,有問題可以找他們**
* 活動組:王御凱,曾子瑜,陳昱逢
>負責**舉辦各項活動,處裡活動相關事宜**
* 美宣組:劉邦均,李姵萱
>負責**設計表單,經營社群帳號,側拍活動照片**
* 總務&機動組:
1. 總務:楊福麟
>負責**管理各項收支,保管社費**
2. 機動:顧智勛
>負責**處裡其他雜務**
### 2.介紹GDSC
#### What is GDSC?
---
我們主要是由兩個東西構成的,**thougths和technology**。由社員提出自己的構思,然後再利用自己擁有的或Google提供的技術
來**產生project**,成為一個專案開發者
![](https://hackmd.io/_uploads/rytag1Gep.png)
之後一年裡不僅僅會有社課,還會舉辦活動,工作坊抑或是和外社合作之類的活動
![](https://hackmd.io/_uploads/rJvdWJMe6.png)
![](https://hackmd.io/_uploads/BylKbkMxT.png)
---
之後會分成兩組,程式組和專案組
* 程式組:
>每個**禮拜四**上課。一學期8堂,**每學期來4堂**就可以拿到證書。
>課程內容包含Python環境建置,Python語法和觀念,網頁爬蟲,Pygame實作
>適合**剛接觸程式**的同學
![](https://hackmd.io/_uploads/HJx48kMga.png)
* 專案組:
>相較程式組來說比較自由一點,每個**禮拜二**上課,一學期6堂,**每學期來3堂**就可以拿到證書
>課程比較自由奔放,鼓勵大家**在生活中尋找問題**,並利用技術解決
>會分成小組,由教學長帶領,合作做出專題
>適合**有一定程式基礎**的同學
#### What can we get?
1. Google的講師資源
>Google會**提供講師資源**,包含了Google的軟體技術或就業歷程等等,也會**贊助我們舉辦各樣活動**
![](https://hackmd.io/_uploads/BysIryGg6.png)
2. 教學組的協助資源
>會在Discord上建立群組,包含了各個幹部,可以**找他們尋求幫助** 上課完也會**有當日的上課筆記,簡報**,所以沒聽清楚的話可以上去看
3. 教學組的教育資源
>教學組除了教Python和帶領專案外,還**可以提供即時的程式疑難雜症解答**,也可以找教學或其他社員**組讀書會**,可以幫忙借鑰匙
4. Google的證書!
>**來滿一定數量的社課即可拿到證書**,增添自己的履歷
#### 社費
---
每學期100元
#### 社服
![](https://hackmd.io/_uploads/rJIovkGea.png)
**有意見的話可以提出**,會視情況做更改
### 介紹安裝Python, VScode
1. 找到python網站並下載(如果python已經裝好便不用下載)
![](https://hackmd.io/_uploads/H1OkC1Mep.png)
* mac:找到終端機輸入:![](https://hackmd.io/_uploads/BJpiTyzgT.png)
2. 運行執行檔並安裝
![](https://hackmd.io/_uploads/BkwzRyfgT.png)
3. 找到vs code網站下載
![](https://hackmd.io/_uploads/rJjIAJMxp.png)![](https://hackmd.io/_uploads/rJWDCJzlT.png)
* mac:需要解壓縮,將解壓縮的檔案搭到application
4. 安裝vs code延伸模組
* 寫程式用![](https://hackmd.io/_uploads/r13hCJfg6.png)
* 筆記用![](https://hackmd.io/_uploads/HJCp01MxT.png)
5. 開啟python檔案
![](https://hackmd.io/_uploads/rkNlylzgT.png)
![](https://hackmd.io/_uploads/rkmZJgfe6.png)
![](https://hackmd.io/_uploads/rkj-yxMep.png)
![](https://hackmd.io/_uploads/Bkd7yeMlT.png)
---
### 第一次社課
* “print()”: 印出自己想要的文字
要打**逗號**在兩個data中間
一般做完print會換行,如果不要,可以用"end=""
```
print("Hello World!")
print("Date: ",end="")
print(2023,"/",9,"/",27)
```
![](https://hackmd.io/_uploads/SJAqzxzxT.png)
* 資料類型
1. ![](https://hackmd.io/_uploads/HJn9ZxMx6.png)
在Python中,"''"和""""和""""相同
2. ![](https://hackmd.io/_uploads/HJPCbgfxa.png)
3. "type()"是用來查看變數的資料類型
```
print(type(1))
print(type("1"))
print(([1,"1"]))
```
![](https://hackmd.io/_uploads/S1OsGefgp.png)
**在Python中資料型態可以變動**
用**等號**在變數右邊給數值
```
a=1
print(type(a))
a="1"
print(type(a))
a=[1,"1"]
print(type(a))
```
![](https://hackmd.io/_uploads/rJEt7lfxT.png)
如果資料型態是字串string(str)但我們要的是整數(int)呢?
```
a=1
b=int(a)
print(b,type(b))
b=float(a)
print(b,type(b))
b=bool(a)
print(b,type(b))
b=str(a)
print(b,type(b))
b=complex(a)
print(b,type(b))
```
![](https://hackmd.io/_uploads/r1vmXsfx6.png)
* 運算子
#### 算數運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| + | 加法 | x+y |
| - | 減法 | x-y |
| * | 乘法 | x*y |
| / | 除法 | x/y |
| % | 取餘數 | x%y |
| ** | 指數 | x**y |
| // | 整數除法 | x//y |
#### 關係運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| == | 等於 | x==y |
| != | 不等於 | x!=y |
| > | 大於 | x>y |
| <= | 小於等於 | x<=y |
| < | 小於 | x<y |
| >= | 大於等於| x>=y |
#### 邏輯運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| and | 和 | x and y |
| or | 或 | x or y|
| not | 不是| not x |
#### 位元運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| & | 位元且 | x&y |
| \| | 位元包含或 |x\|y |
| ^ | 位元互斥或 | x^y |
| ~ | 位元相反 | ~x|
| >> | 右移 | x>>1 |
| << | 左移 | x<<1 |
#### 身分運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| is | 相同 | x is y |
| is not |不同 | x is not y |
#### 成員運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| in | 包含 |x in y |
| not in | 不包含 | x not in y |
#### 指派運算子
| 運算子符號 | 用途 | 例子 |
| ---------- | ---- | ---- |
| = | 指派 | x=y |
| += | 加完再指派| x+=y(x=x+y) |
| -= | 減完再指派 | x-=y(x=x-y) |
| *= | 乘完再指派 | x*=y(x=x*y) |
| /= | 除完再指派 | x/=y(x=x/y) |
| %= | 取完餘數再指派 | x%=y(x=x%y) |
| **=| 指數算完再指派 | x**=y(x=x**y) |
| //= | 整數除完再指派 | x//=y(x=x//y) |
| &= | 執行位元且完再指派 | x&=y(x=x&y) |
| \|=| 執行位元包含或完再指派 | x\|=y(x=x\|y) |
| ^=| 執行位元互斥或完再指派 | x\^=y(x=x^y) |
| >>=| 右移完再指派 | x>>=y(x=x>>y) |
| <<=| 左移完再指派 | x<<=y(x=x<<y) |
例子:x+=1代表把x+1的值賦予給x,當成x這個變數新的值
---
* 備註的方法(用來描述程式碼在幹嘛)
用#
```
print(a)
#print a
```
* +和* 特殊用法
+可以將字串合在一起
```
a=abc
print("a+a=",a+a)
```
![](https://hackmd.io/_uploads/HkfhnjMgp.png)
*可以讓動作重複執行
```
a=abc
n=3
print("a*n=",a*n)
```
![](https://hackmd.io/_uploads/SkzEaszxa.png)
**只有string+string,string+int,list+list,list\*int,
tuple+tuple,tuple\*int可以被使用**
chr()會把**字母換成ASCII code**
ord()會把**ASCII code換成字母**
![](https://hackmd.io/_uploads/HyK7y2fxp.png)
* 輸入
用input()
變數=input()(資料型態只會是string)
變數=input(想要的東西)
```
a=input()
print("your input: ",a)
a=input("input something: "
print("your input: ",a
```
![](https://hackmd.io/_uploads/B1M-g2Gga.png)
若想改變input()的資料型態
用 變數=想要的資料型態(input())
```
a=input()
print(a,type(a))
a=int(a)
print(a,type(a))
a=int(input())
print(a,type(a))
```
![](https://hackmd.io/_uploads/H1Jg-2Mxa.png)
input()會讀取整個句子
若要分開的話用split()
字串名稱.split()
變數=字串名稱.split()
![](https://hackmd.io/_uploads/ry5KzhMeT.png)