iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

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

不要太認真學 Python! - Day 8

  • 分享至 

  • xImage
  •  

[前情提要]

昨天寫的特別順,可能是遇到什麼良辰吉時了吧。

又或者,突然開了竅。

今天想弄懂昨天提到的兩件事

  1. 布林值
  2. 怎麼詐賭,額不是啦!!!是怎麼讓骰子遊戲循環擲骰,或是只擲到特定的點數。

(我估計今天應該只能研究出一種。)


下方是昨天的骰子遊戲,今天來加工一下,看看可不可以達成目標。

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

經過一番改造和摸索,成了下面這段程式。看了不要笑,因為我自己都覺得漏洞百出。
https://ithelp.ithome.com.tw/upload/images/20190909/20120423rFMR9zH44E.jpg

from random import randint
face=randint(1,6,1)
if face==1:
    result='唱歌'
elif face==2:
    result = '蘿蔔蹲'
elif face==3:
    result='青蛙跳'
elif face==4:
    result='喝苦茶'
elif face==5:
    result='仰臥起坐'
else:
    result='當我藍/鋁朋友'
for item in range (6,6):
    break
print('你總共骰了 %d 次' %count)
if result = '當我藍/鋁朋友':
    print('這肯定是命中註定誒!!!')

我的分頁都要爆炸了,叫天天不應,叫谷歌谷歌不理 QQ

https://ithelp.ithome.com.tw/upload/images/20190909/201204230fLc1dujYj.png

我覺得一定是我的語句有錯誤。

應該說我今天有點掌握到程式語言的「文法」,但是還是沒有弄得很清楚到底誰要先出現誰要後出現,誰只能在誰的前後,哪個關鍵字要空格哪些不用之類的。這樣說來,其實程式語言真的就跟學外國語言一樣,沒有弄懂,說出來就不成句,對方也就不知道你要表達的意思。

又要先交卷,後補考了...
https://ithelp.ithome.com.tw/upload/images/20190909/201204233GOfGUoi8a.jpg
https://ithelp.ithome.com.tw/upload/images/20190909/20120423fdf7oeMZv7.png

一樣再給我一小時,拜託)淚目


布林值(Boolean)

布林值就是資料判別的方式,簡單來說就是分成對、錯、未知(True、False、null)。

寫程式極端需要邏輯思考,最簡單就是判別一個事件的的對、錯,由此衍伸出分支與迴圈的概念,不同的語法,對於(True,False)的判斷有不同的關鍵字寫法。

這也是我在讀布林值相關資料覺得很特別的地方,因為寫程式就像是一個人思考的過程,由此可以知道自己的思考方式是怎麼樣,從原本的跳躍式思考,逐漸變成有順序的思考模式。

或許,這也是人工智慧的發想之一吧(?


Error Error tons of Error!!!

我今天最大的收獲應該是獲得了許多 Error)無奈笑

這應該可以說是成就達成,總覺得自己大概把所有 Error 都給試出來了......
https://ithelp.ithome.com.tw/upload/images/20190910/201204233ODG9Dm412.jpg

所以我想記錄一下,我今天到底獲得了幾個 Error。

  1. SyntaxError: invalid syntax

學程式語言第一個紅字獎牌,也是最常獲得的就是這個,「語法錯誤:不符合語法規範」。

按照句意就是,不符合程式語言的規範,舉凡漏括號、忘記填冒號、沒有縮進(IndentationError:expected an indented block)、引號不完全(SyntaxError: EOL while scanning string literal)等等都是這類的錯誤。

  1. IndentationError:expected an indented block

「字串未縮進」,解決方式就是按Tab或是空白鍵。

  1. SyntaxError: EOL while scanning string literal

這個也特別容易出現,就是「字符串的首尾未加引號」。

  1. NameError: name 'mesage' is not defined.

這個就是「電腦無法找到我們指定的變數」,這代表變量名稱可能出現問題,像是沒有定義、或是定義錯誤。

  1. IOError:

英文全稱是「Input/output Error」也就是輸入輸出錯誤。更白話來說就是電腦無法找到你所指定的文章開啟。

  1. ValueError:
    這個錯誤就是「傳入無效參數」的意思。

當你自以為懂了一點參數、函式或方法,就隨便打程式,以為程式就會理你,程式就經常會出現這個錯誤教訓你。
https://ithelp.ithome.com.tw/upload/images/20190910/20120423quwgDH3RzV.png

  1. TypeError:

「類型錯誤」,就我的理解是參數或是函式等等沒有正確使用,導致系統無法正確做出執行指令。


除了這些以外,應該還有很多錯誤類型,但是也真的想不起來,因為有些名稱真的太像了)笑哭

總之,我原本以為我可以很快就完成今日的學習目標,結果居然變成在學習「錯誤」的類型,真是服了自己。

希望明天可以搞定這個骰子遊戲!!!

https://ithelp.ithome.com.tw/upload/images/20190910/20120423MFuuABUbAr.jpg

收工。


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


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

尚未有邦友留言

立即登入留言