--- tags: 2022CRC image: (https://i.imgur.com/Cizw3KT.png) --- # 電算社110下學期社課 --- Python基礎與應用 ###### 讓學員學習Python,並透過一系列的應用,讓大家好好的熟悉Python ### 課程資訊 * 講師:Tony(鄧育翔)、xn( 謝承恩 ) * 上課教室:電教四(二樓右側) :::danger 不小心走錯了嗎? * [點我回課程總覽](https://hackmd.io/LrxY0AOSQSmHSgbOZx5hfQ?view) ::: :::warning Google Colab連結:[點我(建議先登入Google,可以存自己的Colab notes)](https://research.google.com/colaboratory/) 之後每次上課都會有一份幫助你學習的colab note, 點進去之後按<font color='Red'> "複製到雲端硬碟(copy to drive)"</font>,就可以自己也擁有一份 ::: --- ## Python 基礎 ### 2/25 : Python基本介紹 ~ 運算 * 簡報 : [Python 基本介紹 ~ 運算](https://hackmd.io/@aMlEiTwuSHm4R-mC82CwPA/SJsHR3okq) * Colab note : [0225Python基礎介紹](https://colab.research.google.com/drive/1U29Q75WeE3pQD0HFefK1UKFCiK-oZvab#scrollTo=iy2bECZ5zzN-) ### 3/11 : Python條件與迴圈 * 簡報 : [Python條件與迴圈](https://hackmd.io/@aMlEiTwuSHm4R-mC82CwPA/SkrtYyMxq) * Colab note : [0311 python條件與迴圈](https://colab.research.google.com/drive/1ER6reUJpn4awzXsgiQvIv4Suw06Lf8XF#scrollTo=aqyVQHf9wKSi) ### 3/18 : python函式與串列 * 簡報 : [python函式與串列](https://hackmd.io/@aMlEiTwuSHm4R-mC82CwPA/rkB5aaVZq#/) * Colab note : [0318 python函式與串列](https://colab.research.google.com/drive/1lrpympxUYqBqAcQgIQeMplnUAXMeo2j-#scrollTo=YsfCXBMGtyE9) --- ## Python 實作 ### 3/25 : 猜數字遊戲 * 簡報 : [猜數字遊戲](https://hackmd.io/@Tony041010/CRC110-2PythonImplment1-GuessingTheNumber#/4/6) * 模板 : [點我到Github](https://github.com/Tony041010/2022_CRC_Python_Project_Class_Template) ### 4/08 : Hangman劊子手 * 簡報 : [Hangman劊子手](https://hackmd.io/@Tony041010/CRC110-2PythonImplment2-Hangman) * 模板 : [點我到Github](https://github.com/Tony041010/2022_CRC_Python_Project_Class_Template/blob/main/Hangman.py) ### 4/22 : 實作前導課程:class & object Part I * 簡報: [實作前導課程:class & object Part I](https://hackmd.io/@Tony041010/CRC110-2PythonImplementCourse-Class_ObjectPartI) ### 4/22 : 實作前導課程:class & object Part II, Tic-Tac-Toe 井字遊戲(until `print_board_num` ) * 簡報: [實作前導課程:class & object Part II](https://hackmd.io/@Tony041010/CRC110-2PythonImplementCourse-Class_ObjectPartII) * 簡報:[Tic-Tac-Toe 井字遊戲](https://hackmd.io/@Tony041010/CRC110-2PythonImplment3-TicTacToe) * 模板:[點我到Github](https://github.com/Tony041010/2022_CRC_Python_Project_Class_Template/tree/main/TicTacToe) ### 5/13 : Tic-Tac-Toe井字遊戲 (finished) * 簡報:[Tic-Tac-Toe 井字遊戲](https://hackmd.io/@Tony041010/CRC110-2PythonImplment3-TicTacToe) * 模板:[點我到Github](https://github.com/Tony041010/2022_CRC_Python_Project_Class_Template/tree/main/TicTacToe) :::spoiler Debug Information 1. 上課的時候跳出錯誤"**AttributeError: 'TicTacToe' object has no attribute 'board'**"是因為我的`def __init__`左邊的底線是三個,所以他不執行。如果你是對的就不用擔心 2. 在`def play`裡面,一開始的`print_board_nums()`前面需要加class名稱(or 物件也可以),才會執行 ```python= if print_game: TicTacToe.print_board_nums() #這樣才對 ``` 3. 在`def play`中,寫到兩個玩家的`get_move()函式`,我上課時沒有寫引數,但其實他們都需要一個`game`引數(因為要呼叫`available_moves`函式) ```python= if letter = 'O': square = o_player.get_move(game) else: square = x_player.get_move(game) ``` 4. 在`winner`函式中,我最後在`row = self.board[row_ind*3: (row_ind+1)*3]`用[]把右邊的東西包起來了。但其實不用,因為你取一個陣列的某部分下來,他依然會包成一個陣列給你,而不是取數個元素。所以如果你像我當時一樣多加了[],會變成二維陣列,就錯了 ```python= row = self.board[row_ind*3:(row_ind+1)*3] #這樣即可 ``` 很抱歉出了這麼多莫名其妙的錯誤,我會繼續改進,把錯誤減少 ::: 完整Code:[ click me](https://hackmd.io/@Tony041010/TicTacToe_FullCode) ### 5/27 : Tic-Tac-Toe井字遊戲(AI版) * 簡報:[Tic Tac Toe(AI)](https://hackmd.io/@Tony041010/CRC110-2PythonImplment3-TicTacToeAI) ### 6/10 : MineSweeper踩地雷 * 簡報:[MineSweeper](https://hackmd.io/@Tony041010/CRC110-2PythonImplment4-MineSweeper) * 模板:[點我到Github](https://github.com/Tony041010/2022_CRC_Python_Project_Class_Template/blob/main/MineSweeper.py) ### 6/17 : Vigenere Cipher, Password Manager * 簡報:[Vigenere Cipher, Password Manager](https://hackmd.io/@Tony041010/CRC110-2PythonImplment5-PasswordManager)