iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0
自我挑戰組

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

不要太認真學 Python! - Day 10

  • 分享至 

  • xImage
  •  

[前情提要]

昨天至少可以擲骰子擲到六點出現我想要的文字,真的很開心。
今天再仔細看code發現,模仿別人寫的code出現錯誤。
下方是出現問題的code。

def initialRoll(firstPoint):
    return Status.WON if firstPoint in [6] else \
    (Status.LOST if firstPoint in [1, 2, 3, 4, 5] else Status.CONTINUE)

關鍵應該出現在「Status」的用法,可是我谷歌了很久,就是找不到「Status」的用法,反而是是出現了「HTTP狀態碼(HTTP Status Code)」。索性研究起了HTTP狀態碼...


HTTP狀態碼就是伺服器和瀏覽器的中間人,伺服器和瀏覽器藉由HTTP狀態碼來傳遞彼此的訊息,利用開頭為1到5的狀態碼來溝通彼此是否出現問題,同時也能讓網頁人員快速診斷出網頁錯誤。

先讓我壓個線,一樣再給我一小時。
每天趕死線,真的累成狗。

https://ithelp.ithome.com.tw/upload/images/20190911/20120423sJqSynUqox.jpg

HTTP狀態碼開頭由1到5分成五個大類,最常見也是一半人最熟悉的就是「404」也就是找不到該網頁。以下是五大類狀態碼的詳細分類說明:

1xxs – 資訊回應:伺服器正在考慮請求。
2xxs –成功:請求已成功。伺服器已提供給瀏覽器預期且完整的回應。
3xxs –重新指向:你已經被重新指向其他地方,或者,已經成功收到請求,但是已被重新定向。
4xxs – 客戶端錯誤:找不到頁面。無法訪問該頁面。(已提出請求,但是網頁出現錯誤,這個錯誤經常出現在網頁端的對話,而且經常在網頁不存在時出現。)
5xxs – 伺服器端錯誤:失敗。客戶端發出有效請求,但是伺服器端未能成功回應請求。


from random import randint

class Status:
    WON = 6
    CONTINUE =  [1, 2, 3, 4, 5]
    
face=randint(1,6)
if face==1:
    result='唱歌'
    print('唱歌')
elif face==2:
    result = '蘿蔔蹲'
    print('蘿蔔蹲')
elif face==3:
    result='青蛙跳'
    print('青蛙跳')
elif face==4:
    result='喝苦茶'
    print('喝苦茶')
elif face==5:
    result='仰臥起坐'
    print('仰臥起坐')
else:
    face==6
    result='當我藍/鋁朋友'
    print('當我藍/鋁朋友')

def dice():
    return randint(1, 6)

firstPoint = dice()
print("玩家點數:[%d]" % firstPoint)

def initialRoll(firstPoint):
    if firstPoint in [6]:
        return Status.WON
    elif firstPoint in [1, 2, 3, 4, 5]:
        return Status.CONTINUE

print("這肯定是命中註定誒!!!" if status == Status.WON else Status.LOST =="再丟一次骰子,上帝會指引你的)光芒")

就在我修改程式碼的時候,我想要讓程式顯示出玩家丟到的點數和丟到該做的事情。
結果!!!!!

點數和丟到該做的事情是顯示出來了!!!)可喜可賀

BUT

https://ithelp.ithome.com.tw/upload/images/20190912/20120423cuwiDBx79f.png

青蛙跳原本是點數2該做的事情,怎麼會不同步啊啊啊啊啊

https://ithelp.ithome.com.tw/upload/images/20190912/20120423b46mGKGZB7.jpg

而且應該還要去檢查到底是每次擲到2就是青蛙跳,還是根本亂數配...
https://ithelp.ithome.com.tw/upload/images/20190912/20120423Ct6mnyARnX.jpg

心好累,難怪工程師都萬年單身,因為等到告白程式寫出來就已經老了。
寫出來了,還有BUG!!! de完Bug 就直接進棺材了吧 QQ

https://ithelp.ithome.com.tw/upload/images/20190912/20120423aXZtq9DRfc.jpg

今天學習先告一段落,我再繼續研究一下到底是哪一個步驟出了問題。

疲憊收工。

[同場加映]
最近在努力學code的我...
不過我的應該要改成「When code successfully work!!!」
還有誰也是這樣的嗎@@

https://ithelp.ithome.com.tw/upload/images/20190912/20120423zJRfEVFdaz.jpg


不要太認真學 Python! - Day 9
https://ithelp.ithome.com.tw/articles/10214687


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

1 則留言

1

如果你的status長這樣:

class Status:
    WON = 6
    CONTINUE = 1

然後你用這段

def initialRoll(firstPoint):
    return Status.WON if firstPoint in [6] else \
    (Status.LOST if firstPoint in [1, 2, 3, 4, 5] else Status.CONTINUE)

這個也太難看了吧! 覺得轉換一下比較好

def initialRoll(firstPoint):
    if firstPoint in [6]:
        return Status.WON
    elif firstPoint in [1, 2, 3, 4, 5]:
        return Status.LOST
    else:
        return Status.CONTINUE

看一下啊!
Status.WON -> 有,就是6
Status.CONTINUE -> 有,就是1
Status.LOST -> 人勒?

RGB iT邦新手 5 級 ‧ 2019-09-12 00:20:40 檢舉

原來是源頭出現問題了嗎!!)恍然大悟

我來研究改良一下!!
真的是大感謝!!

我要留言

立即登入留言