---
# System prepended metadata

title: wk03_0921_變數與運算式
tags: [python]

---

# wk_03_0921_變數與運算式_B1003205醫放三謝彤

### 上週使用函數:
1. print()
可輸出()內的字串/變數
2. input()
可使輸入者輸入，成為此code的變數
3. type()
可查資料型態為何
4. int()
可使()內的變數轉為整數
5. float()
可使()內的變數轉為浮點數(若其變數本身就是浮點數的話)
6. srt()
()內輸入字串

## [inclass practice]

### 筆記區
<pre>
#input接收到的是字串，要運算的話要再以int或float使之轉型
2 + 3中， +是運算子；2、3是運算元
算數運算子: %表示取餘數 //表取整除的商數 **表示次方
比較運算子: ==表是否相同 !=表是否不同
邏輯運算子:not、and、or (和true and false 有關係)
複合指定運算子: i+=3 表示 i= i+3 (可簡化code)
</pre>

### 概念練習
<pre>
1. 變數命名
   - 可行的:length、weight
   - 不可行:if、123BBB
2. 變數資料形態
   - 數值形資料類型有哪些 : int()、float()、bool()
   - 字串行資料類型有哪些 : str()
3. "+" 運算子
4. 輸出:"%d %s" %(參數列)
   - %d表示已整數輸出 %d表示已浮點數輸出 %s表示已字串輸出
5. 輸出:"{0} {1}" .format(參數列)
   - .format 可讓資料格式化
6. 輸入命令
7. 運算子優先順序
   -算數>比較>邏輯
</pre>

### 綜合演練


#### 1.實作題3
<pre>
矩形的面積是長*寬、周邊長是(長+寬)*2
請設計程式讓使用者輸入矩形的長和寬，然後計算矩形面積和周邊長。
</pre>

步驟:
1. 需要使用者給的input：矩形的長、寬
2. 中間過程process
3. output：矩形的面積、周長


```python
length=5
width=6


area=length * width
perimeter=(length*width)*2

print("矩形的面積:",area)
print("矩形的周長:",perimeter)
```

    矩形的面積: 30
    矩形的周長: 60
    


```python
length=int(input("輸入矩形的長"))
width=int(input("輸入矩形的寬"))

area=length * width
perimeter=(length+width)*2

print("矩形的面積:",area)
print("矩形的周長",perimeter)
```

    輸入矩形的長6
    輸入矩形的寬5
    矩形的面積: 30
    矩形的周長 22
    


```python
print("矩形的面積:"+ str(area))   #方式1:加字串
print("矩形的周長"+str(perimeter))

print("矩形的面積: %d" % (area)) #方式2:%d
print("矩形的周長 %d" % (perimeter))

print("矩形的面積:%d,周長: %d" % (area,perimeter))

print("矩形的面積:%f,周長: %s" % (area,perimeter)) 
#f表示float，會出現六位小數 s表示str，會出現字串

print("矩形的面積:{},周長:{}" .format(area,perimeter))
print("矩形的周長:{},面積:{}" .format(area,perimeter)) #順序會被影響
print("矩形的周長:{1},面積:{0}" .format(area,perimeter)) #使不被字串順序影響 (開頭是0)
```

    矩形的面積:30
    矩形的周長22
    矩形的面積: 30
    矩形的周長 22
    矩形的面積:30,周長: 22
    矩形的面積:30.000000,周長: 22
    矩形的面積:30,周長:22
    矩形的周長:30,面積:22
    矩形的周長:22,面積:30
    

#### 2.實作題4
許多人出國時會有公制轉英制的困擾，以長度為例，英制和公制的長度轉換公式為:
1 inch (英吋) = 2.54 cm (公分)
請設計程式讓使用者輸入公制的身高(cm)，然後計算出英制的高度是幾英呎、幾英吋
1 英呎 = 12 英吋


```python
n_cm = 160
# to_inch
m_inch =n_cm /2.54
m_feet =m_inch/12

print("您的身高是:%f 英吋,%f英呎" %(m_inch,m_feet))
```

    您的身高是:62.992126 英吋,5.249344英呎
    


```python
n_cm=int(input("請輸入您的身高"))
m_inch =n_cm /2.54
m_feet =m_inch/12
print("您的身高是:%f 英吋,%f英呎" %(m_inch,m_feet))
```

    請輸入您的身高160
    您的身高是:62.992126 英吋,5.249344英呎
    

## [afterclass practice]

### 運算子先後優先順序


```python
#1
A=5+3*2/(7-4)
print(A)  ##括號內的先算，而後左到右計算
```

    7.0
    


```python
#2
A=(10%3)**2+4//2
print(A)  ## 10%3表示10/3的餘數(1) 4//2表示4/2的商數(2)
```

    3
    


```python
#3
A=(8+2)*(5-3)/2
print(A) 
```

    10.0
    


```python
#4
A=2**3+4**(1/2)-1
print(A) ## **表示次方
```

    9.0
    


```python
#5
A=(10>5)or(3!=3)and(8//2<=4)
print(A) ## (10>5)or(3!=3)兩者中只要有其中一項對，就是true。而and的前後都要是true，結果才會是true
```

    True
    


```python
#6
A="Hello"+""+"World"*2
print(A)
```

    HelloWorldWorld
    


```python
#7
A=(15/3)%2!=0and not(10>7)
print(A) ##and的左邊項是對的，但右邊項是錯的，故答案是false
```

    False
    

    <>:2: SyntaxWarning: invalid decimal literal
    <>:2: SyntaxWarning: invalid decimal literal
    C:\Users\ASUS\AppData\Local\Temp\ipykernel_11104\4237635827.py:2: SyntaxWarning: invalid decimal literal
      A=(15/3)%2!=0and not(10>7)
    


```python
#8
A=(3+2)**2/4*5%6
print(A)
```

    1.25
    


```python
#9
A=2*(4+6)-(5%3)**2
print(A) ##20-4=16
```

    16
    


```python
#10
A=len("Python")+int("3")+(5>2)
print(A)
```

    10
    

### 綜合演練

<pre>
實作題1.
一年一班只有2位同學，程式設計讓老師分別輸入2位同學的姓名及成績，然後計算成績總分，最後以下圖格式列印:
</pre>


```python
name1=input("請輸入第一位學生的姓名:")

score1=int(input("請輸入第一位學生的成績:"))

name2=input("請輸入第二位學生的姓名:")

score2=int(input("請輸入第二位學生的成績:"))

print("姓名    成績")
print(name1,"    ",score1)
print(name2,"    ",score2)
print("成績總分為:",score1+score2)
```

    請輸入第一位學生的姓名:林大毛
    請輸入第一位學生的成績:78
    請輸入第二位學生的姓名:陳學文
    請輸入第二位學生的成績:100
    姓名    成績
    林大毛      78
    陳學文      100
    成績總分為: 178
    

<pre>
實作題2.
計程車計費方式第1公里為70元，多1公里加收30元。程式設計讓運將輸入乘客的搭乘公里數，然後計算乘車費用。
</pre>


```python
kilometer=int(input("請輸入路程公里數(整數):"))

cost=70+30*(kilometer-1)


print("您的車程車資費為:",cost)
```

    請輸入路程公里數(整數):6
    您的車程車資費為: 220
    

### 影片心得 lesson 5

<pre>
%-的意思是把文字都靠左對齊；%6.2表示共有六位，整數三位、小數點一位、浮點兩位。
林林總總都讓我覺得PYTHON還是有很多規則，但課程上因為時間沒辦法全部教授給我們，所以這種影片還是很有用的!
</pre>

## [self-practice]

<pre>
len()的功能是返回序列的長度(例如字符串、列表、元組)