iT邦幫忙

2021 iThome 鐵人賽

DAY 3
1
Software Development

0基礎也看得懂的程式設計-30天學會 Python系列 第 3

30天學會 Python: Day 2-input啦!

變數

在程式中用來 暫存 資料和數值的物件(以後再講物件是甚麼,挖坑+1),有點類似數學中的未知數
可以把變數想成是一個箱子,箱子上有標籤(變數名稱),裡面裝有一筆資料(變數值),且這筆數值可以改變

變數要先建立才能使用,就像是在數學中要先設未知數一樣,在 Python 中語法是:

<變數名稱> = <變數值>

建立一個叫 x,變數值是 10 的變數

x = 10

如果變數的型態是字串,文字內容要用單引號或雙引號標記

name = "Jay"

print() 可以把變數值顯示到視窗上

name = "Jay"
print(name)

用等號可以重新指派(設定)變數值,下面範例中:

  1. 第1行建立變數 x,值是10
  2. 第2行將 x(10)顯示到視窗上
  3. 第3行設定變數 x 的值為20
  4. 第4行將 x(20)顯示到視窗上
  5. 第5行設定變數 x 的值為20
  6. 第6行將 x(30)顯示到視窗上
x=10
print(x)
x=20
print(x)
x=30
print(x)

Python 中同一個變數可以儲存不同型別的資料
下面範例中,執行到第3行前 x 是整數型態,到第3行之後就變成字串了

x=10
print(x)
x='abc'
print(x)

雖然語法可以讓我們用同一名稱的變數儲存不同型別的資料,但習慣上會避免這麼做,除非是以不同型別儲存同一筆資料

數學運算子

運算子 是用來表示 運算 的符號,類似數學中的加/減號,運算元 是參與運算的物件,類似數學中的被加數/加數

數學運算子是用來表示數學計算的符號,加、減、乘、除分別是+, -, *, /

透過 print() 把運算的結果顯示到視窗上

print(1+3)

運算的優先順序和數學一樣,先乘除後加減、括號優先處理

print(1+2*3-4/5)

乘號遇到括號時不能省略

print((1+2)*3)

在 Python 中,當運算結果有小數,或是運算元至少有一個浮點數時,運算結果就會以浮點數表示

print(16/0.5)
print(16/3)

這個例子中,第1行 16/0.5 的結果32雖然是整數,但因為 0.5 是浮點數所以運算的結果也是浮點數(有顯示小數點)
第2行的兩個數都是整數,但因為運算的結果有小數點,所以會以浮點數表示

可以用變數儲存運算的結果

a=1+3
print(a)

變數可以用來做為運算元

a=0
b=10
print(a+b)
c=a*b
print(c)


除了加減乘除,程式語言中還有其他的數學運算子

除模(Modulo)

代表兩數相除的餘數,運算子是 %,主要用途有:

  • 判斷 A 是不是 B 的倍數: A%B 的結果為0,代表 A 除以 B 等於0, AB 的倍數
  • 限制數值的範圍: 當某數除模 n 時,結果只會有 n 種(0, 1, ...,n-1)
print(0%3, 1%3, 2%3, 3%3 , 4%3)

// 和 **

Python 還有兩個獨有的運算子,//**,代表 結果取整數的除法指數運算

遇到結果只能是整數的情況時,可以用 // 運算子做除法
下面例子中,6除以4是1.5,但因為 // 的結果會無條件捨去到整數,所以得到1

print(6//4)

** 可以計算指數

print(2**6)

運算元可以是負數和浮點數

print(-2**3)
print(2**0.5)

型別轉換

同樣的資料可以轉換成不同型別,語法是

<型別>(<變數/數值>)

將字串 "123" 轉換成整數型態,"12.5" 轉換成浮點數型態
字串沒辦法進行數學運算,所以 ab 確實都是數字型態

a = int("123")
b = float("12.5")
print(a+10)
print(b+10)

如果是字串轉換成數字,字串的內容必須是正常的數字,例如 '0', '125', '-5', '3.14',如果字串的內容不是數字('a', 'a125', '15-6', '.541')會造成錯誤而無法執行

型別轉換是將資料其它型別 回傳,所以被轉換的資料本身不變
下面的 num 雖然被轉換成字串,但 num 還是可以做數學運算,可以知道它還是整數型態(只有 s 是字串型態)

num=1234
s=str(num)
print(num+10)

input()

用於輸入數值的函式,執行時視窗會變成可以打字的狀態,當使用者按下 enter 鍵結束,並以字串回傳輸入的內容

當使用者按下 enter,使用者在視窗上打的文字會被讀取並儲存在變數 s

s = input()
print('剛剛輸入的是:', s)

將字串轉換成整數,可以對輸入的數值進行計算

number1=input()
number2=input()
number1=int(number1)
number2=int(number2)

print(number1+number2)

函式的引數可以是另一個函式(就像是數學中可以有 f(g(x)) 一樣),所以 input() 可以寫在 int() 裡面
範例中的第1行會先執行 input(),使用者按下 enter 後輸入的內容(一個字串)被丟給 int() 轉換成整數,最後指派給 number1

number1=int(input())
number2=int(input())

print(number1+number2)

挖坑清單:

  • 空字串的用途
  • 布林的用途
  • 物件

上一篇
30天學會 Python: Day 1-印啦!哪次不印!
下一篇
30天學會 Python: Day 3-世界線分歧
系列文
0基礎也看得懂的程式設計-30天學會 Python30

尚未有邦友留言

立即登入留言