看板 Python 關於我們 聯絡資訊
看書自學 python 沒想到第一個習題就卡關 題目: Write code that prints Hello if 1 is stored in spam, prints Howdy if 2 is stored in spam, and prints Greetings! if anything else is stored in spam. 我寫的 code: spam = input() if spam == 1: print('Hello') elif spam == 2: print('Howdy') else: print('Greetings!') 問題: 程式可以順利執行,但不管我輸入1、2還是其他數字 出來的結果都是 Greetings! 百思不得其解,請指點一下,感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.200.90 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1569403574.A.D76.html
sma1033: 你輸入的是字串? 09/25 17:30
RESTART: C:\Users\xubpc\AppData\Local\Programs\Python\Python37\practice1.py 1 Greetings! 在 IDLE 裡面看到的狀況是這樣,就是正常的輸入1囉 ※ 編輯: xubpcl (223.140.200.90 臺灣), 09/25/2019 17:34:52
jjoojjoo123: spam=int(input()) 09/25 17:53
可以了,感謝!
sma1033: 你知道字串是什麼嗎? XD 09/25 17:55
哈哈,我懂了,我剛才也翻到書上寫的 如果是 spam = input(),那麼不管輸入的是什麼,都會被當作字串儲存 感謝提醒!
sma1033: 搞清楚字串跟數字的差別你就知道問題在哪了 09/25 17:55
CGSBN: input預設是輸入字串 要轉成整數型態 09/25 17:56
了解,感謝! ※ 編輯: xubpcl (223.140.200.90 臺灣), 09/25/2019 18:00:58
automaton: 樓上正解 09/25 18:00
max36067: 先搞清楚input是輸入str 就知道了~ 09/25 18:01
input()的說明在第一章 第二章在教 flow control 學了後面忘了前面XDDD ※ 編輯: xubpcl (223.140.200.90 臺灣), 09/25/2019 18:03:46 我把 code 修改成這樣,好像更符合題目要求: spam = input() if spam == '1': print('Hello') elif spam == '2': print('Howdy') else: print('Greetings!') 原本的 code,輸入字串會出現錯誤訊息 修改後的,除了1、2以外的所有輸入都會跑出 Greetings! 再次感謝樓上先進們的指點! ※ 編輯: xubpcl (223.140.200.90 臺灣), 09/25/2019 18:09:37
TaiwanDuLi: 請問您是看哪本書自學? 09/26 05:07
xubpcl: "Automate The Boring Stuff with Python", Al Sweigart 09/26 05:48
tvassic: 因為輸入是字串 09/27 08:29
yummy8765: 字串的比對不建議用== 可以用a.equals(b)這種形式 09/27 16:05
yummy8765: 這個在字串那章應該會學到 不急 加油 09/27 16:07
yummy8765: 抱歉剛剛試過好像我記錯了@@可以忽略我講的 09/27 16:11
s312580: 加油 09/28 04:52