我试图在我的python书中解决问题,你必须将字符串转换为电话号码。例如:a,b,c = 2 d,e,f = 3等。等。
这是我到目前为止所提出的,但它只打印2,我已经摆弄了一段时间,但它仍然只返回2.为什么?
def thingie_thing (x) :
for char in x:
number = 0
if char == 'a' or 'b' or 'c':
number += 2
elif char == 'd' or 'e' or 'f':
number += 3
elif char == 'g' or 'h' or 'i':
number += 4
elif char == 'j' or 'k' or 'l':
number += 5
elif char == 'm' or 'n' or 'o' or 'p':
number += 6
elif char == 'q' or 'r' or 's':
number += 7
elif char == 't' or 'u' or 'v':
number += 8
elif char == 'w' or 'x' or 'y' or 'z':
number += 9
print number
答案 0 :(得分:1)
如果你写if char == 'a' or 'b' or 'c'
意味着:
if char == 'a'
if 'b':
if 'c':
由于'b'和'c'是非零字符,因此它们始终为真。
你必须看看char=='a' or char=='b' or char=='c'
。只有这样你才能得到真相!
答案 1 :(得分:0)
因为你正在使用' a'或者' b'或者' c'第一个语句总是求值为true,因为它意味着char ==' a'或者' b'或者' c。这是' b'和' c'被评估为真,因此它只增加+ 2
Use instead char == 'a' or char =='b' or char == 'c'
或
char in ['a','b','c']