# 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()的功能是返回序列的長度(例如字符串、列表、元組)