试图在python中将字符串转换为电话号码?

时间:2015-04-01 03:16:50

标签: python

我试图在我的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

2 个答案:

答案 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']