Python 新手村
用 Python 打造你的遊戲
2020
小草、RexWu
Part 3
喚起記憶!
先來複習一下之前學到的東西
變數名稱 = 資料
變數,用來存放等號後面的資料,並給它一個名字
# 正確
name = "Rex"
age = 20
# 錯誤
1name = "Rex"
a g e = 20
提醒:變數名稱開頭不能是數字、不能有空格
文字要用引號(單雙皆可)包起來
if( 條件 ): / elif( 條件 ): / else:
括號(可省略)裡面放條件,冒號後換行放符合條件要做的事
grade = input("請輸入成績:")
if grade >= 80:
print("A")
elif grade >= 60:
print("B")
else:
peinr("F")
if 的條件
age < 16
age == 20
age >= 87
name == "小草"
name != "小草"
name == "小草" and age > 20
name == "Rex" or name == "小草"
not name == "Rex"
name != "Rex"
相等需要兩個等號
數學運算子
運算的道具
x = 30
y = 25
print(x + y) #加法
print(x - y) #減法
print(x * y) #乘法
print(x / y) #除法
print(x % y) #餘數除法
print(x ** y)#次方
文字的隱形斗蓬—程式註解
想在程式碼中留下筆記 或是
有部分程式碼要跳過,要怎麼辦呢?
print('大家好,我是一串文字!')
#大家好,我是一串不會被執行的灰色註解文字
"""
大家好
我是一串
跨了好多行的
註解文字
"""
跳脫字元
\\ 反斜線符號 (\)
\' 單引號 (')
\" 雙引號 (")
\a 響鈴符號 (BEL)
\b 空格符號 (BS)
\f 換⾴符號 (FF)
\n 換⾏符號 (LF)
\r 返回符號 (CR)
\t ⽔平縮排符號 (TAB)
\v 垂直跳格符號 (VT)
\ooo ooo 是三個⼋進位的數字
\xhh hh 是兩個⼗六進位的數字
Python 的變數有以下幾種基本型態
型態 | 簡介 | 範例 |
---|---|---|
str | 字串 | "Hello!" |
int | 整數 | 5 |
float | 小數 aka 浮點數 | 51.1 |
bool | 布林(True / False) | True |
complex | 複數 | 1 + 5j |
宣告變數
# str
name = "Rex"
# int
age = 19
# float
height = 180.0
# bool
student? = True
型態轉換
# int -> str
x = 10
str(x)
# float -> str
y = 4.08
str(y)
#str -> int
int("10")
#str -> float
float("10.2")
type()-取得資料型態
x = 10
type(x)
#int
y = 4.08
type(y)
#float
name = 'Rex'
type(name)
#str
input 的型態轉換
x = input("請輸入 x : ")
y = input("請輸入 y : ")
print("x + y = " + x + y)
input 的型態轉換
x = int(input("請輸入 x : "))
y = int(input("請輸入 y : "))
print("x + y = " + x + y)
input 的型態轉換
x = int(input("請輸入 x : "))
y = int(input("請輸入 y : "))
sum = x + y
print("x + y = " + str(sum))
陣列 - list
# 創建陣列
numbers = [81, 99, 49, 15, 60, 33, 66, 82]
# 可以放不同的型態在同個陣列裡,但是不建議
lists = ["字串", 20, 179.9]
# 創建空陣列
li = []
li = list()
list - print
# 創建陣列
numbers = [81, 99, 49, 15, 60, 33, 66, 82]
# 有點醜
print(numbers)
# 漂亮一點惹
print(* numbers)
list - 取得特定元素
numbers = [81, 99, 49, 15, 60, 33, 66, 82]
print(numbers[1])
list - 取得特定元素
numbers = [81, 99, 49, 15, 60, 33, 66, 82]
# 第一個 (81)
print(numbers[0])
# 第二個 (99)
print(numbers[1])
list - 相加
numbers = [81, 99, 49, 15]
dlc = [60, 33, 66, 82]
fullNumber = numbers + dlc
# fullNumber = [81, 99, 49, 15, 60, 33, 66, 82]
list - 新增元素
nums = [0, 1, 3]
# 新增一個在尾端
nums.append(4)
# 新增多個在尾端
nums.extend([5, 6, 7])
# 新增一個元素在特定的位置
# 以下會在 nums[2] (3) 之前新增一個數字 222
nums.insert(2, 222)
list - 刪除元素
nums = [0, 1, 3, 4, 5]
# 刪除最後一項
nums.pop()
# 刪除第 1 項
nums.pop(1)
# 刪除陣列中的 4
nums.remove(4)
list - 其他功能
nums = [5, 0, 4, 0, 1, 2, 3]
# 取得 4 在 list 裡面的位置
nums.index(4)
# 取得 0 在 list 裡面的出現次數
nums.count(0)
# 反轉 list
nums.reverse()
# 排序 list
nums.sort()
list - 其他功能
nums = [5, 0, 4, 0, 1, 2, 3]
# 取得 list 的長度
len(nums)
# 取得 list 中的最大值
max(nums)
# 取得 list 中的最小值
min(nums)
不斷重複的...
迴圈
迴圈 - loop
分成兩種 for 、 while
視情況使用
for loop
# 執行 10 次
for i in range(0, 10):
print(i)
for loop - 與 list 結合
nums = [4, 7, 3, 35]
for i in nums:
print(i)
for loop - 與 list 結合
nums = list()
for i in range(0, 5):
x = input("請輸入第" + str(i) + "個數字: ")
nums.append(x)
while loop
# 執行 10 次
i = 0
while i < 10:
print(i)
i += 1
while loop - 無窮迴圈
會無窮的執行,請記得一定要給條件讓他 break
count = 0
while True:
print(count)
count += 1
if(count == 10):
break
終結迴圈的咒語 - break
nums = [4, 7, 3, 35, 3, 9]
# 跑過所有的 nums 如果遇到 target 就停止迴圈
# 若不是 target 就印出數字
target = 35
for i in nums:
if(i == target):
print("I found 35")
break
else:
print(i)
上次的作業
終極密碼
dict-字典
(dictionary)
dict-字典
key - value
value 可以有多種型態
key 只能為 string
dict - 字典 可以做什麼
-
個人檔案(名字: Rex)
-
摩斯密碼對照(密碼: 明碼)
-
菜單(餐點: 價錢)
-
Others...?
dict 長這樣
{"name": "Rex", "age": 19, "student?": True}
"name": "Rex"
key
value
生成字典
dic = {'name': 'Rex', 'age': 19, 'student?': True}
dic = {}
dic = dict()
print 字典
dic = {'name': 'Rex', 'age': 19, 'student?': True}
print(dic)
#{'name': 'Rex', 'age': 19, 'student?': True}
print(dic['name'])
#Rex
print 字典 + for loop
dic = {'name': 'Rex', 'age': 19, 'student?': True}
for key in dic:
print(key)
#name
#age
#student?
for key in dic:
print(dic[key])
#Rex
#19
#True
增加元素
dic = {}
dic.update({'name': 'Rex', 'age': 19})
實作一下
生成一個字典
再使用 for 分別 print key 和 value
內容:個人資料 、 成績、菜單
編輯字典
dic = {'name': 'Rex', 'age': 19}
dict['age'] = 20
刪除字典
dic = {'name': 'Rex', 'age': 19}
dic.pop('name')
#'Rex'
del dic['age']
dic.clear()
#清空字典內所有元素
取所有 key/value
dic = {'name': 'Rex', 'age': 19}
dic.keys()
#dict_keys(['name', 'age'])
dic.value()
#dict_values(['Rex', 19])
試試看
再來買一次早餐吧
這次加上 list 和 dict 做點變化
下課囉~
來點個名
新手村 2020 Part 3
By Rex Wu
新手村 2020 Part 3
- 99