發表文章

目前顯示的是 1月, 2021的文章

高中生解題系統 A017. 五則運算

簡單的寫法,因為在python,eval可以用來計算   while   True :    try :     a =  input ()     a.replace( " " , "" )      print ( eval (a.replace( '/' , "//" )))    except :      break 正統的寫法,我還在想,一直出現BUG,邏輯越寫越亂。。。 希望我可以寫出來,我把它分成兩個部分來想 1.處理括號 2.要符合四則運算 程式碼(待編輯)

python小遊戲:看誰的追蹤人數比較多

 如標題,紀錄一下程式碼 主程式碼: from art import logo,vs import random from game_data import data from replit import clear #判斷使用者猜的正確嗎 def thescore(guess,a_score,b_score):   if a_score>b_score:     # print(guess=="a")     return guess=="a"   elif a_score<b_score:     # print(guess=="b")     return guess=="b" #輸出LOGO print(logo) b_account = random.choice(data) score = 0 while True:   #隨機生成兩個讓使用者猜的資料   #取名字一個a 一個b   #讓b變成a,b再重新選一個   a_account = b_account   b_account = random.choice(data)   while a_account==b_account:     b_account = random.choice(data)   #a和b的分數   a_score = a_account["follower_count"]   b_score = b_account["follower_count"]   print(a_score,b_score)   #print出a和b的資訊   print(f"A: {a_account['name']} , a {a_account['description']} from {a_account['country']} ")   print(vs)   print(f"B: {b_account['name']} , a {b_account['description']} from {b_account...

hangman game

 hangman就是我們常常在玩的猜單字遊戲(小時候上英文課時常常玩) 遊戲結束的方式有兩種: 1.猜對完整單字,人沒被完整畫出來 2.人被完整畫出來 那我們今天就是要用python把遊戲寫出來啦! 大概構思: 首先 當然要先有單字,能讓使用者去猜,一開始測試時,可以用list裝幾個單字 第二步 就是從list中,隨機選取一個單字,這時候就要使用random模組的choice 第三步 讓使用者輸入一個字母,可以做防呆機制,例如:把使用者輸入的字母,都轉換成小寫或大寫 第四步 用迴圈去檢查使用者輸入的字母,是否存在我們隨機挑出來的字母中 第五步 去判斷上面迴圈跑的結果。 hangman_art模組程式碼: stages = ['''   +---+   |   |   O   |  /|\  |  / \  |       | ========= ''', '''   +---+   |   |   O   |  /|\  |  /    |       | ========= ''', '''   +---+   |   |   O   |  /|\  |       |       | ========= ''', '''   +---+   |   |   O   |  /|   |       |       | =========''', '''   +---+   |   |   O   |   |   |       | ...

高中生解題系統 A013.羅馬數字

心得: 這題大概解了兩天,大概8小時(哭...),一開始看完題目後,感覺蠻簡單,結果沒看仔細,漏了一些題目要求,(這些後來,在解題中都慢慢發現也去改正了),不過用那麼長的時間去解題,解出來之後成就感真的超大。雖然中途放棄,跑去看別人的解題思路,然後還看不懂~哈,但是隔天起床好像突然就懂了,然後就模擬別人的解題思路,去寫出程式碼 參考:https://dctimelearninghowtocode.blogspot.com/2020/01/zerojudge-a013-python.html 解題思路: 題目要求我們求出兩組羅馬數字的差的絕對值,若是0就輸出ZERO,然後把題目給的範例羅馬數字輸出 MCMXCVIII,轉成阿拉伯數字,會是1000+(-100)+1000+(-10)+100+5+1+1+1,為什麼有些數字是負數呢?   因為如果在羅馬數字中,有一個特別的規定,若是一個數字出現超過三次就要用減法來表示 舉例: I=1 V=5 X=10 L=50 C=100 D=500 M=1000 若是要表示三,羅馬數字會是III,若是要表示四,羅馬數字不能是IIII,因為上面有說,一個羅馬數字不能重複出現超過三次以上,那要怎麼表示呢? 答案是:IV(就是-1+5) 以上是如何把使用者輸入的羅馬數字轉換成我們所使用的阿拉伯文字,然後題目要求我們算出使用者所輸入兩筆阿拉伯數字差的絕對值,最後把算出來的答案轉成羅馬數字輸出 程式碼: #處理使用者所輸入的羅馬數字(每次只取一筆) def   conduct_romnumber ( num ):    #基本羅馬數字對應的阿拉伯數字   rom_number = { "I" : 1 , "V" : 5 , "X" : 10 , "L" : 50 , "C" : 100 , "D" : 500 , "M" : 1000 }    #用來裝分割後的字串(下面會分割)   num_list = []    #儲存算出來的阿拉伯數字   sum =  0    #將字串分割成一個字一個字(例如:"MI",分割後...