Meiko 到百貨公司購物用信用卡結帳消費,Licensed by Adobe Stock
Jason:「上次你媽打電話跟你講信用卡的事...還好嗎?該不會卡刷爆了吧?」
Meiko:「是還沒刷爆拉,哎~你知道我逛街的時候很容易腦波弱,一下就被店員說服給他手刀刷下去,可是買回家之後,常常只穿一次後來都不想穿。程式能幫我判斷該不該買嗎?」
Jason:「沒問題,程式最厲害的就是做判斷。但,我需要知道在你『冷靜』的時候,你買衣服的預算大概多少?」
Meiko:「我『冷靜』的時候,就不會買衣服了啊!」
Jason:「好吧,那我換個方式問,當你想買衣服的時候,大概都落在哪個價位嗎?」
Meiko:「大概 500 元吧,一般 300~500 元的衣服我都沒在看價錢的,想說工作那麼辛苦,下班犒賞一下自己。」
Jason:「Okay,那我大概知道怎麼做了。」
priceConstraint = 500
inputPrice=int(input("請輸入購買金額:"))
if inputPrice>priceConstraint:
print ("超出預算!請加強腦波! ")
else:
print ("價位合宜,但你確定要買嗎 ?")
Jason:「來,你輸入一下,看看會發生什麼事?」
Meiko:「輸入購買金額是吧,我想一下...最近一次上網看了一件上衣...好像是 650元的樣子,Okay,我打 650 元,再按 Enter 對吧?...哇!它怎麼那麼聰明,馬上就知道我超出預算,還叫我『加強腦波』,傻眼!」
![]https://dense-insight-blog.s3.ap-northeast-1.amazonaws.com/wordpress/wp-content/uploads/2020/08/31014113/ifelse_price_over_500.png)
Jason:「嘿嘿,因為我在裡面寫了判斷式啊!」
Meiko:「判斷式? Jason 你可不可以講點人話,倒是我在你這段程式碼裡面,我有看懂 input(“請輸入購買金額”)
,上次你告訴我要輸入的時候,就打input()
,然後把想要詢問的字放在裡面。」
Jason:「有慧根唷,你先別急,你有看到最上面有一個 priceConstraint = 500
?」
Meiko:「有啊,這行是在做什麼?」
Jason:「你記得前一次有提到變數的設定嗎?」
Meiko:「記得啊,就是你把 input()
設定成 yourName
。」
Jason:「沒錯,這邊也一樣的意思,我剛有問你,買衣服大概落在哪個價位?你說:『大概500元,』,所以我設定了一個變數叫做 priceConstraint
*,並且讓它等於 500。」
priceConstriant = 500
inputPrice=int(input("請輸入購買金額:")
*及時補充
我大寶寶~拉,有朋友問為什麼變數priceConstraint
,price 在前面是小寫,Constraint 在後面要大寫?這其實就是一種撰寫程式的命名習慣,主要是為了增加程式的可讀性和識別性,如果我寫priceconstraint
,你會不會覺得很難看懂這個變數是什麼意思?詳細可以參考小駝峰式命名法則)
Meiko:「歐,原來是這樣,然後在 inputPrice下面那邊開始有 if-else 這是什麼意思?」
Jason:「你剛不是說想要讓程式告訴你要不要買衣服嗎? if-else 就是在做這件事,我們看到
if inputPrice > priceConstraint:
print ("超出預算,請加強腦波!")
這行的意思就是說,『如果inputPrice
大於priceConstraint
的時候,程式就會印出 “超出預算,請加強腦波”』,再往下看
else:
print ("價位合宜,但你確定要買嗎?")
這行要表達,『不然inputPrice
沒有比priceConstraint
大的話,程式就會印出 “價位合宜,但你確定要買嗎?”』」
Meiko:「好像蠻直覺的耶,難怪我剛剛輸入 650 的時候,程式跟我說『超出預算,請加強腦腦波!』,那我試一下,如果我輸入 480 的話,會發生什麼事。」
Meiko:「不錯耶,它告訴我價位合宜,但還問提醒我確定要買嗎?」
Jason:「對啊,我想像你這樣腦波弱的人,所以即使價位低於 500 元,我還是讓程式提醒你一下。」
Meiko,踢了 Jason 一腳:「還好吧?我還是有基本的判斷能力。不過話說回來,如果有這樣的程式在我猶豫不決的時候,能夠給我一些提醒,但,這樣我好像都不能買一樣,讓人很OOXX,Jason 能不能再有一種情況告訴我可以買?滿足我想要買買買的念頭。」
Jason:「也是拉,不然以你這樣愛買的個性,應該會被悶壞吧!我多增加一個變數叫做validPrice
,並且設定成 400元,如果你今天買的衣服,價格低於 400 元的話,程式就會印出『可以買!手刀刷下去』」
priceConstraint = 500
validPrice = 400
inputPrice=int(input("請輸入購買金額:"))
if inputPrice>priceConstraint:
print ("超出預算!請加強腦波! ")
elif (inputPrice>validPrice):
print ("價位合宜,但你確定要買嗎 ?")
else:
print ("可以買!手刀刷下去!")
Meiko:「那我輸入 290 元看看!」
Meiko:「程式跟我說,『可以買!手刀刷下去!』耶,這還差不多,要省錢還是要顧慮一下生活品質!」
Jason:「哈~沒想到學程式也可以讓你省錢,不錯吧!」
Meiko:「不過你剛說價格低於 400 元的話,可是我在程式上看不到對應的關係耶?」
Jason:「前面在if
的地方已經有一個條件是inputPrice>priceConstraint
了,所以如果衣服價格大於 500元的話,就會落在第一個if
區塊。接著,我們看一下新增加的elif (inputPrice>validPrice)
,新增的 400 元的條件,意思就是如果今天衣服價比 400元大的話,但小於等於(<=
) 500 元小的話,程式就請你考慮一下,最後如果價位小於等於 400元(<=
)的話,就會落在程式邏輯的最後一個區塊else
,我畫一張示意圖給你看好了!」
Meiko:「歐,原來你的if-elif-else
就像是在做價格的分類區間一樣,分成 3 個區域。」
Jason:「沒錯,這樣就能夠同時滿足你購物的慾望,也能夠控制你的消費囉!」
Meiko:「好像是耶!說到提醒,我有在用記帳 App,它每天晚上 10 點會提醒我記帳,可是我就是沒有什麼動力耶?不然你下次跟我講,怎麼用 Python 幫我記帳?」
Jason:「記帳是吧?那你回去找一下過去 2 週的發票,我們再來看怎麼做吧?」
Meiko:「好唷!」
Meiko 在她的記事本中寫下整理發票記錄...
我大寶寶~拉,你有曾經用過語音服務的經驗嗎?其實語音客服轉接,就是一個 if-else 判斷條件的最佳實用案例,
在網路上我找了幾家大家耳熟能詳的語音客服中華郵政、玉山銀行、So-net(So-net的圖示做得蠻直覺的,給大家參考!)
使用語音客服最常聽到的字句,大概就是下面這些吧?
「正確請按 1,錯誤請按 0,如不留言請掛斷!」、「掛失及道路救援 請按 * 」、「信用卡服務 請按1」、「存款、貸款、外匯服務 請按2]
給大家一個情境,Meiko 媽要幫 Meiko 查詢她這個月的信用卡帳單(你知道媽媽那輩還是比較喜歡用電話),她要經過哪些步驟才能知道 Meiko 上個月花多少錢?
電話那頭:「『IT厚銀行』您好,請選擇您所需樣的服務,信用卡服務請按 1,存款、貸款、外匯服務請按 2,掛失及道路救援請按 3,重複一次,請按 0。」
Meiko 媽:「我要幫 Meiko 查信用卡帳單,應該是按 1 吧!」
電話那頭:「查詢帳單、額度請按 1,卡友貸款、刷卡分期、預借現金請按 2,開卡、辦卡進度卡片換發、變更資料請按 3, 機場接送優惠及預約請按 4,轉接專人服務請按 0。」
Meiko 媽:「我要查詢帳單,按 1」
電話那頭:....核對資料...
Meiko 媽:「齁,還要跟我核對這麼多資料,真麻煩,我重打一次找專人服務好了...」
這次你可用前幾次教的print()
及input()
,還有今天談到的if-elif-else
判斷式,把上面的情境用程式來表達嗎?
試試看能不能自己寫一個符合這樣的情境的語音客服吧!Let’s go!
歡迎登入留言跟我分享你的成果唷!(登入不麻煩,點一下 FB 登入就可以留言了!)
1.喜歡這樣方式學 Python 的朋友請留言『+1』
2.想要知道解答,請留言『我要解答』,大寶寶再私訊給你唷!