<p>我试图解决python书中的一个问题,即必须将字符串转换为电话号码。例如:a、b、c=2d、e、f=3etc。发射型计算机断层扫描仪。你知道吗</p>
<p>这是我到目前为止想出的,但它只打印2,我已经摆弄了一段时间,但它仍然只返回2。为什么?你知道吗</p>
<pre><code> 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
</code></pre>
<p>如果你写<code>if char == 'a' or 'b' or 'c'</code>,意思是:</p>
<pre><code>if char == 'a'
if 'b':
if 'c':
</code></pre>
<p>因为“b”和“c”是非零字符,所以它们总是真的。你知道吗</p>
<p>你得看看<code>char=='a' or char=='b' or char=='c'</code>。只有这样你才能知道真相!你知道吗</p>