我目前正在创建一个程序,显示电话号码与任何字母字符,出现在原来的翻译成他们的等效。例如,如果我要输入字符串“521-BBB-BBBB”,我应该根据我的代码得到“521222222”。相反,我从IDLE得到了“222222925”。我不明白为什么节目里显示的是这个而不是我要找的那个。“2”的数字是正确的,但我不明白“925”是从哪里来的。你知道吗
代码如下:
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'
def AlphaToTel(telNum):
newTelNum = telNum[0:3] + telNum[4:7] + telNum[8:12]
phoneNum = ''
for char in newTelNum:
phoneNum = charToNum(char) + phoneNum
print(phoneNum)
AlphaToTel(“521-BBB-BBBB”)
首先将
phoneNum = charToNum(char) + phoneNum
更改为phoneNum += charToNum(char)
,然后在charToNum
函数的顶部再添加一个if
条件,以在num
为1
时返回1
。你知道吗出现这个问题的原因是
charToNum()
函数是如何定义的(以及如何将结果添加到phoneNum
)。你知道吗首先,您没有考虑
charToNum()
中的数字1
,因此您返回9
以获得1
。如果num
是1
,您应该考虑这个问题并返回1
。你知道吗第二,添加phoneNum作为-
这会不断地将新字符添加到字符串的开头,因此您会得到相反的电话号码。如果希望输出类似-
"5212222222"
。您需要按正确的顺序添加(phoneNum + charToNum(char)
)或使用(+=
)。示例-相关问题 更多 >
编程相关推荐