<p>我目前正在创建一个程序,显示电话号码与任何字母字符,出现在原来的翻译成他们的等效。例如,如果我要输入字符串“521-BBB-BBBB”,我应该根据我的代码得到“521222222”。相反,我从IDLE得到了“222222925”。我不明白为什么节目里显示的是这个而不是我要找的那个。“2”的数字是正确的,但我不明白“925”是从哪里来的。你知道吗</p>
<p>代码如下:
</p><pre><code>def charToNum(num):
if num == 'A' or num == 'B' or num == 'C' or num == '2':
return '2'
elif num == 'D' or num == 'E' or num == 'F' or num == '3':
return '3'
elif num == 'G' or num == 'H' or num == 'I' or num == '4':
return '4'
elif num == 'J' or num == 'K' or num == 'L' or num == '5':
return '5'
elif num == 'M' or num == 'N' or num == 'O' or num == '6':
return '6'
elif num == 'P' or num == 'Q' or num == 'R' or num == 'S' or num == '7':
return '7'
elif num == 'T' or num == 'U' or num == 'V' or num == '8':
return '8'
else:
return '9'
<p>def AlphaToTel(telNum):
newTelNum = telNum[0:3] + telNum[4:7] + telNum[8:12]
phoneNum = ''
for char in newTelNum:
phoneNum = charToNum(char) + phoneNum</p>
print(phoneNum)
</code></pre>
<p>AlphaToTel(“521-BBB-BBBB”)</p>