<p>第一个错误是在内部循环中打印<code>phoneNum</code>,而将转换后的数字赋给<code>char</code>变量</p>
<p>其次,如果要转换完整输入,<code>phoneNum[1:2]</code>是不正确的</p>
<p>这是最新的代码-</p>
<pre><code>def main():
gSNumberConversion()
def gSNumberConversion():
phoneNum = input('Please Enter the number in the format of XXX-XXX-XXXX\n:')
phoneNum = phoneNum.split('-')
print(phoneNum)
for var in phoneNum: # mistake 2
for char in var:
if char == 'A' or char == 'B' or char == 'C':
char = '2'
elif char == 'D' or char == 'E' or char == 'F':
char = '3'
elif char == 'G' or char == 'H' or char == 'I':
char = '4'
elif char == 'J' or char == 'K' or char == 'L':
char = '5'
elif char == 'M' or char == 'N' or char == 'O':
char = '6'
elif char == 'P' or char == 'Q' or char == 'R' or char == 'S':
char = '7'
elif char == 'T' or char == 'U' or char == 'V':
char = '8'
elif char == 'W' or char == 'X' or char == 'Y' or char == 'Z':
char = '9'
print(char) ## mistake 1
main()
</code></pre>