字母电话号码翻译
很多公司都使用像555-GET-FOOD这样的电话号码 让客户更容易记住。在标准电话上, 字母字母按以下方式映射到数字:
A, B, and C 2 D, E, and F 3 G, H, and I 4 J, K, and L 5 M, N, and O 6 P, Q, R, and S 7 T, U, and V 8 W, X, Y, and Z 9
编写一个程序,要求用户输入一个10个字符的电话 数字格式为XXX-XXX-XXXX。应用程序应显示 带有任何字母字符的电话号码 原始翻译成他们的数字等价物。例如,如果 用户输入555-GET-FOOD,应用程序应显示555-438-3663。
这是我的工作:
phoneNum = input('Enter the number in the format of 555-XXX-XXXX\n')
phoneNum = phoneNum.split('-')
for var in phoneNum[1: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(phoneNum)
运行它,系统会提示您输入一个字符串,例如555-GET-FOOD。然后您将收到一条错误消息:
NameError:名称'GET'未定义
我该如何解决这个问题?
答案 0 :(得分:3)
你说你正在使用Python 3,但你确定吗?如果您使用的是Python 2,则必须使用raw_input
而不是input
。在Python 2中,input
尝试eval
生成的字符串,因此它尝试执行555减去名为GET
的变量减去名为FOOD
的变量。
答案 1 :(得分:0)
在您的代码中,char
只是变量phoneNum
中字符的副本。更改char
后,您不会更改phoneNum
。解决此问题的一种方法是创建一个新变量newPhoneNumber
:
phoneNum = input('Enter the number in the format of 555-XXX-XXXX\n')
print(phoneNum)
newPhoneNumber = ''
for char in phoneNum:
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'
newPhoneNumber = newPhoneNumber + char
print(newPhoneNumber)
phone_number
- 这不是必需的,但许多人遵循此约定。 phoneNumber
而不是phoneNum
或phone_number
而不是phone_num
。当然,总有例外。