---
# System prepended metadata

title: 基礎程式觀念

---

基礎程式觀念
===
**作者 - 張若芯
編輯 - BESTCI跨域人才程式能力培育計畫 / NTU BESA**
**項目** 
==Data type、Variable==
==Assign、Type Casting、Input、numerical calculation==


**共筆內容**
## Data type
* Int (integer) 整數
  - 1 (int)
  - Height = 183 (int)
  - 有下一個的概念
  
* Float (real-number) 實數 
  - 3.14, 2.0 (float)
  - Pi = 3.14 (float)
  - 無下一個的概念

* Str (string) 文字 
  - “Hi” 單引號及雙引號內為字串
  - Name = ‘Jerry’(str)
  - 可用+或，來串連字串
  
* Bool (Boolean)
  - Is_weekday = True (bool)
  - True/False


## Variable
* Function – gives **codes** meaning
* Variable – gives **data** meaning

Naming 命名變數通則
1. No white spaces 
   - use underscore
2. Can't start with numbers 
   - 避免使用數字開頭資料與變數混淆
3. No reserved words 
   - 系統關鍵字(常數、運算字、簡單陳述、複合陳述、定義)不可作為變數，像是for while, def, print, and, while等會變色之字
4. Case-sensitive 
   - 大小寫是不一樣的，系統會偵測為不同東西，例如name和Name是不一樣的
5. keep it lower case
   - 變數盡量使用小寫


## Assign
=  一個等號是表示右值丟左箱，可以換值(reassign)，但前一個數值就會消失
== 兩個等號是數學上的等於之意

a=1.0
a=a+1  (a+=1) 
#2.0 
a=a-1  (a-=1)
#1.0
a=a10 (a=10)
#10.0
a=a/2 (a/=2)
#5.0


## Type Casting
Float dividion / 與 Floor division // 兩者間差異
* Float dividion / 
  - 3/2==1.5
  - 4/2==2.0
  - 相除後的數值皆以float表示
* Floor division //
  - int除以int得到int
    - 3//2==1
    - 4//2==2
    - -1//2==-1
      - -1除以2為-0.5，往下取下一個整數是-1

  - int除以float得到float
    - 6//1.5==4.0

  - float除以int得到float
    - 9.0//5==1.0
      - 9.0除以5，往下取一個整數為1.0

* 轉換為整數
Int(3/2)==1
Int(-1/2)==0
> 無條件捨去float，使之進入int (只取整數)

* 轉換為實數
  - Float(3//2)==1.0
  - Float(-1//2)==-1.0

三題例題如下
(Q1) 
a1=int(-5/2) #-2
a2=int(-5//2) #-3

a1及a2的差異處是
  - /為無條件捨去float，使之進入int (只取整數)
  - //為往下取一個整數，所以-5//2，往下取一個整數是-3

(Q2) 
X=5
Y=float(x)//2  #2.0
X+=1
X=X+1  #6

(Q3)
2*4//10+2*2%4   #0


## Input
* Get in
  - meal=int(input(文字)) 
    - 文字為prompt : 提示的意思
    - Meal為變數

* Get float
  - tax=float(input(文字))

* 在console印出String，並且可以使用**+**連結字串
  - print('文字')


## Numerical calculation
Expression 表示法
順序: 左到右，括弧內優先計算
- 加法 +
- 減法 -
- 乘法 *
- 除法 /
- 除法(取整數) //
- 次方 **
- 取餘數(mod) %
  * Mod% 取餘數
    - 7%5=2
    - 2%3=2

可以使用取餘數來做的事:
1. 讓karel執行turn_left() 
   - 13%4==1 
2. odd/even
   - X=int(input(‘?’))
     - X%2== 0    even
     - X%7== 1    odd

