Python 新手村
用 Python 打造你的遊戲
2020
小草、RexWu
Part 2
喚起記憶!
先來複習一下上週學到的東西
特殊的文字—跳脫字元
\\ 反斜線符號 (\)
\' 單引號 (')
\" 雙引號 (")
\n 換⾏符號 (LF)
有些東西不能直接打出來要怎麼辦?
其他的跳脫字元
\\ 反斜線符號 (\)
\' 單引號 (')
\" 雙引號 (")
\a 響鈴符號 (BEL)
\b 空格符號 (BS)
\f 換⾴符號 (FF)
\n 換⾏符號 (LF)
\r 返回符號 (CR)
\t ⽔平縮排符號 (TAB)
\v 垂直跳格符號 (VT)
\ooo ooo 是三個⼋進位的數字
\xhh hh 是兩個⼗六進位的數字
再試試看
breakfast = input('菜單:\n1.漢堡\n2.吐司\n3.蛋餅\n4.鐵板麵\n5.奶茶/紅茶\n老闆娘說,同學今天想吃什麼?:')
打了好多的「print」有沒有覺得有點麻煩?
有沒有覺得省了不少 print 呢?
數學運算子
運算的道具
x = 30
y = 25
print(x + y) #加法
print(x - y) #減法
print(x * y) #乘法
print(x / y) #除法
print(x % y) #餘數除法
print(x ** y)#次方
time
操作時間的魔法
import time
time.sleep(1)
# 暫停 1秒 的時間
time.sleep(0.5)
# 暫停 半秒 的時間
屬性
資料型態
Python 的變數有以下幾種基本型態
型態 | 簡介 | 範例 |
---|---|---|
str | 字串 | "Hello!" |
int | 整數 | 5 |
float | 小數 aka 浮點數 | 51.1 |
bool | 布林(True / False) | True |
complex | 複數 | 1 + 5j |
屬性相同才可以運算!
宣告變數
# str
name = "小草"
# int
age = 20
# float
height = 179.9
# bool
isHandsome = True
取得變數型態 type()
x = 5
type(x)
# int
name = "小草"
type(name)
# str
f = 4.08
type(f)
# float
型態轉換
# int -> str
x = 10
str(x)
# float -> str
y = 4.08
str(y)
型態轉換(cont.)
#str -> int
int("10")
#str -> float
float("10.2")
型態轉換(cont.)
#錯誤!
message = "圓周率是 3.14"
float(message)
好好的變數為什麼要幫他切掉???
input 的型態轉換
# 這應該不是你想要的
age0 = input("請輸入你的年齡: ")
age1 = input("請輸入另一個人的年齡: ")
print("你們的年齡總合是: " + age0 + age1)
挑戰
輸入兩個人的年齡
將他們相加
再輸出
提示:修改剛剛那張剪報的 code !
input 的型態轉換(cont.)
# 錯誤
age0 = int(input("請輸入你的年齡: "))
age1 = int(input("請輸入另一個人的年齡: "))
print("你們的年齡總合是: " + age0 + age1)
input 的型態轉換(cont.)
age0 = int(input("請輸入你的年齡: "))
age1 = int(input("請輸入另一個人的年齡: "))
result = str(age0 + age1)
print("你們的年齡總合是: " + result)
從零開始的爆肝生活
陣列
有沒有人想過
為什麼這是第三堂課
簡報卻是 Part 2 ?
如果你還記得
第一堂課的剪報 是 Part 0
陣列 - list
# 創建陣列
score = [81, 99, 49, 15, 60, 33, 66, 82]
# 可以放不同的型態在同個陣列裡,但是不建議
person = ["小草", 20, 179.9]
# 創建空陣列
score = []
score = list()
list - print
# 創建陣列
score = [81, 99, 49, 15, 60, 33, 66, 82]
# 有點醜
print(score)
# 漂亮一點惹
print(* score)
list - 取得特定元素
score = [81, 99, 49, 15, 60, 33, 66, 82]
print(score[1])
list - 取得特定元素(cont.)
咦?
list - 取得特定元素(cont.)
score = [81, 99, 49, 15, 60, 33, 66, 82]
# 第一個 (81)
print(score[0])
# 第二個 (99)
print(score[1])
list - 相加
score0 = [81, 99, 49, 15]
dlc = [60, 33, 66, 82]
fullScore = score0 + dlc
# you get
# fullScore = [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 - 其他功能(cont.)
nums = [5, 0, 4, 0, 1, 2, 3]
# 取得 list 的長度
len(nums)
# 取得 list 中的最大值
max(nums)
# 取得 list 中的最小值
min(nums)
挑戰
創建一個包含至少 4 個成績的陣列 然後
-
在最前面、最後面新增一筆成績(使用input)
-
刪除最低分的成績
-
print 出所有的成績
不斷重複的...
迴圈
剛剛的 print 出所有的成績
print(score[0])
print(score[1])
print(score[2])
print(score[3])
print(score[4])
豪多 print RRRR
(# ゚Д゚) (# ゚Д゚) (# ゚Д゚)
萬一 list 有 100 個元素
(╬゚д゚)╭∩╮
print(score[0])
print(score[1])
print(score[2])
print(score[3])
print(score[4])
print(score[5])
print(score[6])
print(score[7])
print(score[8])
print(score[9])
print(score[10])
print(score[11])
print(score[12])
print(score[13])
print(score[14])
print(score[15])
print(score[16])
print(score[17])
print(score[18])
print(score[19])
print(score[20])
print(score[21])
print(score[22])
print(score[23])
print(score[24])
print(score[25])
print(score[26])
print(score[27])
print(score[28])
print(score[29])
print(score[30])
print(score[31])
print(score[32])
print(score[33])
print(score[34])
print(score[35])
print(score[36])
print(score[37])
print(score[38])
print(score[39])
print(score[40])
print(score[41])
print(score[42])
print(score[43])
print(score[44])
print(score[45])
print(score[46])
print(score[47])
print(score[48])
print(score[49])
print(score[50])
print(score[51])
print(score[52])
print(score[53])
print(score[54])
print(score[55])
print(score[56])
print(score[57])
print(score[58])
print(score[59])
print(score[60])
print(score[61])
print(score[62])
print(score[63])
print(score[64])
print(score[65])
print(score[66])
print(score[67])
print(score[68])
print(score[69])
print(score[70])
print(score[71])
print(score[72])
print(score[73])
print(score[74])
print(score[75])
print(score[76])
print(score[77])
print(score[78])
print(score[79])
print(score[80])
print(score[81])
print(score[82])
print(score[83])
print(score[84])
print(score[85])
print(score[86])
print(score[87])
print(score[88])
print(score[89])
print(score[90])
print(score[91])
print(score[92])
print(score[93])
print(score[94])
print(score[95])
print(score[96])
print(score[97])
print(score[98])
print(score[99])
(╬゚д゚)╭∩╮
(╬゚д゚)╭∩╮
(╬゚д゚)╭∩╮
(╬゚д゚)╭∩╮
(╬゚д゚)╭∩╮
(╬゚д゚)╭∩╮
(╬゚д゚)╭∩╮
不斷重複的...
迴圈
迴圈 - loop
顧名思義的...迴然後...圈(好爛
重複執行動作 直到達成條件
迴圈 - loop (cont.)
分成兩種 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 結合 (cont.)
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 1:
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)
挑戰
創建一個包含至少 6 個不同名字的陣列
-
使用迴圈印出每個名字
-
印出的過程中,若發現你的名字,則印出"Hello " + 你的名字,並停止迴圈的執行
提示:創建的時候可以用 for + input
最後,給大家一個大挑戰
做出一個與電腦玩的終極密碼
你會需要一個東西
random
import time
還記得操作時間的魔法嗎?
import time
time.sleep(1)
# 暫停 1秒 的時間
time.sleep(0.5)
# 暫停 半秒 的時間
import random
random 很像它
import random
# 隨機產生一個 0 ~ 100 的整數
random.randint(0, 100)
# 隨機產生一個 0 ~ 1 的浮點數
random.random()
# 隨機產生一個 0 ~ 10 的浮點數
random.uniform(0, 10)
demo 一下
To be continued
結束惹,來點個名吧
9171
新手村 2020 Part 2
By Rex Wu
新手村 2020 Part 2
- 46