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 做點變化

下課囉~

來點個名

 

Made with Slides.com