作者xubpcl (搞笑艺人)
看板Python
标题[问题] 超新手问题(if,elif,else)
时间Wed Sep 25 17:26:11 2019
看书自学 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://webptt.com/cn.aspx?n=bbs/Python/M.1569403574.A.D76.html
1F:推 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
2F:推 jjoojjoo123: spam=int(input()) 09/25 17:53
可以了,感谢!
3F:推 sma1033: 你知道字串是什麽吗? XD 09/25 17:55
哈哈,我懂了,我刚才也翻到书上写的
如果是 spam = input(),那麽不管输入的是什麽,都会被当作字串储存
感谢提醒!
4F:→ sma1033: 搞清楚字串跟数字的差别你就知道问题在哪了 09/25 17:55
5F:→ CGSBN: input预设是输入字串 要转成整数型态 09/25 17:56
了解,感谢!
※ 编辑: xubpcl (223.140.200.90 台湾), 09/25/2019 18:00:58
6F:推 automaton: 楼上正解 09/25 18:00
7F:推 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
8F:推 TaiwanDuLi: 请问您是看哪本书自学? 09/26 05:07
9F:→ xubpcl: "Automate The Boring Stuff with Python", Al Sweigart 09/26 05:48
10F:推 tvassic: 因为输入是字串 09/27 08:29
11F:→ yummy8765: 字串的比对不建议用== 可以用a.equals(b)这种形式 09/27 16:05
12F:→ yummy8765: 这个在字串那章应该会学到 不急 加油 09/27 16:07
13F:→ yummy8765: 抱歉刚刚试过好像我记错了@@可以忽略我讲的 09/27 16:11
14F:→ s312580: 加油 09/28 04:52