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

2024-05-08 13:13:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解决python书中的一个问题,即必须将字符串转换为电话号码。例如:a、b、c=2d、e、f=3etc。发射型计算机断层扫描仪。你知道吗

这是我到目前为止想出的,但它只打印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

Tags: or字符串innumberforifdef电话号码
2条回答

如果你写if char == 'a' or 'b' or 'c',意思是:

if char == 'a'

if 'b':

if 'c':

因为“b”和“c”是非零字符,所以它们总是真的。你知道吗

你得看看char=='a' or char=='b' or char=='c'。只有这样你才能知道真相!你知道吗

因为您使用的是'a'或'b'或'c',所以第一个语句的计算结果总是true,因为它意味着char=='a'或'b'或'c'。这里'b'和'c'的计算结果是true,因此它只加上+2

Use instead char == 'a' or char =='b' or char == 'c'

或者

char in ['a','b','c'] 

相关问题 更多 >

    热门问题