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

Python 新手村 2020 Part 2

By Falcon Lee (小草)

Python 新手村 2020 Part 2

  • 84