iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
0
自我挑戰組

不要太認真學 Python! 之 我又重新報名了系列 第 16

不要太認真學 Python! - Day 19

  • 分享至 

  • xImage
  •  

[前情提要]

我居然發現自我挑戰組除了有滷肉飯挑戰,還有甜點挑戰...

https://ithelp.ithome.com.tw/upload/images/20190921/20120423XvkB7Lhm3o.jpg

早知道當初就不要自討苦吃選 Python 這個主題了啦)丟筆賭氣中

https://ithelp.ithome.com.tw/upload/images/20190921/20120423vvcWvqJZxI.jpg

好啦,其實也根本沒在管別人在寫什麼,而且也很感謝有這個比賽,才可以讓我很有定力的學習程式,而且樂在其中,所以真的沒有怨言欸,畢竟當自己的小孩一樣,自己選的跪著也要爬完。

昨天一整個不知道怎麼搞的,一直在死胡同裡打轉。
希望今天可以翻牆而出啊!!!
不過我看,我又是要先發文後補文了...)大嘆三聲


照慣例線上程式碼,文章候補。

先說一下,這是經過邦友指點的程式碼,真的很感謝幫忙,不過我自己有點心虛。
總覺得不太喜歡一直被 cover,顯得自己很弱雞...

import random

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')

GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()

def GuessGame():
    rang1 = int(input("請設定本局遊戲的最小值:"))
    rang2 = int(input("請設定本局遊戲的最大值:"))
    num = random.randint(rang1,rang2)
    guess = "guess"
    i = 0
    while guess != num:
        i += 1
        guess = int(input("你猜數字多少:"))
        if guess == num:
            print("恭喜,你猜對了!") 
        elif guess < num:
            print("再大一點!!")
        else:
            print("再小一點!!")
        print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")

while(1):
    xiamigame = input('是否要重新開始新的一局?(YES/NO)')
    if (xiamigame.lower() == "no"):
        break #
    elif (xiamigame.lower() == "yes"):
        print("遊戲開始!")
        GuessGame() 

進入正題
也因為最近花很多時間看程式以後,我也發現了我的其中一個小問題,就是我其實不知道 () 這個括號是有什麼功用的。

不過這個先暫且放在一邊,今天至少要先解決能讓程式完成一輪遊戲才可以。

以下是我修正的程式碼

import random

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')

GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()

rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
    i += 1
    guess = int(input("你猜數字多少:"))
    if guess == num:
        print("恭喜,你猜對了!") 
    elif guess < num:
        print("再大一點!!")
    else:
        print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")
    
def Xiamigame():
    rang1 = int(input("請設定本局遊戲的最小值:"))
    rang2 = int(input("請設定本局遊戲的最大值:"))
    num = random.randint(rang1,rang2)
    guess = "guess"
    i = 0
    while guess != num:
        i += 1
        guess = int(input("你猜數字多少:"))
        if guess == num:
            print("恭喜,你猜對了!") 
        elif guess < num:
            print("再大一點!!")
        else:
            print("再小一點!!")
    print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")
GuessGame = input('是否要重新開始新的一局?(YES/NO)')
while():
    GuessGame = input('是否要重新開始新的一局?(YES/NO)')
    if (GuessGame.lower() == "no"):
        break 
    elif (GuessGame.lower() == "yes"):
        print("開始新的一局!")
    else:
        break
Xiamigame() 

我終於研究出來怎麼可以循環玩遊戲的。
但是這不是今天的重點,我今天最大的學習重點是 「格式」

我覺得應該可以把程式的格式整理一下,一段程式碼的格式可以依序排列成四個部分:

1. 第一部分 - 「置入」函式庫(import

寫程式的開頭,需要先置入所需要的函式庫。

白話翻譯,就像做木工想要製作一個作品,需要先準備工具箱,因為木工可以做的作品太多種了,所需要的工具也很不一樣,因此只需要準備想要做的那個「物件」所需的工具就好了,其他的暫時不用。

這就是我程式碼的第一段 import random 存在的意義。

2. 第二部分 - 寫「主題」

函式庫準備好了,就要開始進入主題,先把訂出來的主題寫出一個框架和流程。

白話翻譯就像是用木工作音樂盒,準備完工具,就開始要建立一個本體,然後再做後續的修飾和美化。

這就是我程式碼的第二部分:

print('歡迎進入猜數字遊戲,玩家們準備好了嗎?')

GuessGame = input('是否要進入遊戲?(YES/NO)')
if (GuessGame.lower() == "no"):
    exit()
elif (GuessGame.lower() == "yes"):
    print("遊戲正式開始!")
else:
    exit()

rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1,rang2)
guess = "guess"
i = 0
while guess != num:
    i += 1
    guess = int(input("你猜數字多少:"))
    if guess == num:
        print("恭喜,你猜對了!") 
    elif guess < num:
        print("再大一點!!")
    else:
        print("再小一點!!")
print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")

3. 第三部分 - 為主題「下定義」(def)、「執行」定義

框架和流程做完了,就該要執行了。這時候就要把告訴系統,你想要用你的「主題」做什麼?

簡單來說,第二部份就是做出木頭音樂盒的外殼以後,要讓他動,這時候就需要那個有梳片和滾筒,但是不是每個梳片都能和滾筒吻合,因此需要幫他們下定義,這樣才能把合適的梳片和滾筒組裝起來。

下面這段就是我在猜數字遊戲的第三部分。

def Xiamigame():
    rang1 = int(input("請設定本局遊戲的最小值:"))
    rang2 = int(input("請設定本局遊戲的最大值:"))
    num = random.randint(rang1,rang2)
    guess = "guess"
    i = 0
    while guess != num:
        i += 1
        guess = int(input("你猜數字多少:"))
        if guess == num:
            print("恭喜,你猜對了!") 
        elif guess < num:
            print("再大一點!!")
        else:
            print("再小一點!!")
    print("你總共猜了%d" %i + "次"",快點再來一局吧!!!")

4. 第四部分 - 執行定義「以外」的狀況(while)、收尾

第四部分就是,要執行第三部分所下的定義以外的情況,告訴系統該怎麼在其他狀況下執行。當程式碼執行完以後,也要告訴系統是要重新開始,還是就停留在結束的時候。

用音樂盒來說,就是當梳片和滾筒讓音樂和播完聲音後,那是不是要進行其他動作,譬如讓音樂盒重新開始唱一次,或是加裝電子音樂播放器在裡面。

這就是我程式碼中的第四部分:

while():
    GuessGame = input('是否要重新開始新的一局?(YES/NO)')
    if (GuessGame.lower() == "no"):
        break 
    elif (GuessGame.lower() == "yes"):
        print("開始新的一局!")
    else:
        break
Xiamigame() 

我總算補完了...以下圖替自己默哀一下)笑哭
https://ithelp.ithome.com.tw/upload/images/20190921/20120423ULc3JaUItE.jpg

身體也太不舒服了吧,文章還沒寫完就直接睡過去了...
https://ithelp.ithome.com.tw/upload/images/20190921/20120423xrWWf2MXwV.jpg

總之補完了!!
真是可喜可賀
收工。


不要太認真學 Python! - Day 18


上一篇
不要太認真學 Python! - Day 18
下一篇
不要太認真學 Python! - Day 20
系列文
不要太認真學 Python! 之 我又重新報名了31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言