Try   HackMD

電算社110下學期社課 - Python基礎與應用

讓學員學習Python,並透過一系列的應用,讓大家好好的熟悉Python

課程資訊

  • 講師:Tony(鄧育翔)、xn( 謝承恩 )
  • 上課教室:電教四(二樓右側)

不小心走錯了嗎?

Google Colab連結:點我(建議先登入Google,可以存自己的Colab notes)
之後每次上課都會有一份幫助你學習的colab note,
點進去之後按 "複製到雲端硬碟(copy to drive)",就可以自己也擁有一份


Python 基礎

2/25 : Python基本介紹 ~ 運算

3/11 : Python條件與迴圈

3/18 : python函式與串列


Python 實作

3/25 : 猜數字遊戲

4/08 : Hangman劊子手

4/22 : 實作前導課程:class & object Part I

4/22 : 實作前導課程:class & object Part II, Tic-Tac-Toe 井字遊戲(until print_board_num )

5/13 : Tic-Tac-Toe井字遊戲 (finished)

Debug Information
  1. 上課的時候跳出錯誤"AttributeError: 'TicTacToe' object has no attribute 'board'"是因為我的def __init__左邊的底線是三個,所以他不執行。如果你是對的就不用擔心
  2. def play裡面,一開始的print_board_nums()前面需要加class名稱(or 物件也可以),才會執行
if print_game: TicTacToe.print_board_nums() #這樣才對
  1. def play中,寫到兩個玩家的get_move()函式,我上課時沒有寫引數,但其實他們都需要一個game引數(因為要呼叫available_moves函式)
if letter = 'O': square = o_player.get_move(game) else: square = x_player.get_move(game)
  1. winner函式中,我最後在row = self.board[row_ind*3: (row_ind+1)*3]用[]把右邊的東西包起來了。但其實不用,因為你取一個陣列的某部分下來,他依然會包成一個陣列給你,而不是取數個元素。所以如果你像我當時一樣多加了[],會變成二維陣列,就錯了
row = self.board[row_ind*3:(row_ind+1)*3] #這樣即可

很抱歉出了這麼多莫名其妙的錯誤,我會繼續改進,把錯誤減少

完整Code: click me

5/27 : Tic-Tac-Toe井字遊戲(AI版)

6/10 : MineSweeper踩地雷

6/17 : Vigenere Cipher, Password Manager