Python Forum
Alphabetic Telephone Number Translator
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Alphabetic Telephone Number Translator
#1
"""
This Program will ask the user to enter a 10-character telephone number in the format of
XXX-XXX-XXXX. The application should display the telephone number with any alphabetic characters that
appeared in the original translated to their numberic equivalent. For example,
if the user enters 555-GET-FOOD the application should display 555-438-3663
"""

phoneNum = input("Enter the number in the format of XXX-XXX-XXXX: ")

phoneNum= phoneNum.split('-')

for var in phoneNum[1:2]:
      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'

print(phoneNum)
That above is my code, and the question is asking the following:
albetic Telephone Number Translator: companies use telephone numbers like 555-GET-FOOD so the number is easier for their customers to remember. On a standard telephone, the alphabetic letters are mapped to numbers in the following fashion: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 Write a program that asks the user to enter a 10-character telephone number in the format XXX-XXX-XXXX. The application should display the telephone number with any alphabetic characters that appeared in the original translated to their numeric equivalent. For example, if the user enters 555-GET-FOOD the application should display 555-438-3663
Reply
#2
phone_table = str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZ', '22233344455566677778889999')
'111-YOUR-NUMBER'.translate(phone_table)
Output:
111-9687-686237
Reply
#3
You are changing char, so phoneNum stays the same. Add char to a new variable after it is changed (but that is not the only problem with your code). Also, the Python Style Guide suggests only using lower case letter and underlines for variable names.
new_phone_num=""
## code to change char
## you can use the following to simplify
if char in 'ABC':

## rest of code
new_phone_num += char 
Reply
#4
(Apr-24-2018, 05:22 PM)woooee Wrote: You are changing char, so phoneNum stays the same. Add char to a new variable after it is changed (but that is not the only problem with your code). Also, the Python Style Guide suggests only using lower case letter and underlines for variable names.
new_phone_num=""
## code to change char
## you can use the following to simplify
if char in 'ABC':

## rest of code
new_phone_num += char 

I thank you for that, however, I have 1 problem. When I run the program, which is:
phoneNum = input("Enter the number in the format of XXX-XXX-XXXX: ")
new_phone_num =""
 
for var in phoneNum[1:2]:
      if char in 'ABC':
            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'
new_phone_num += char
 
print(new_phone_num)
char is shown as not defined
Reply
#5
That is correct; there is no definition for char in the latest code.. You have to first understand what the code is doing. Also, I suggest you print var under the for.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [split] Alphabetic Telephone Number Translator teafshadow 4 5,085 Oct-20-2019, 02:56 PM
Last Post: perfringo
  Translator Zatoichi 13 30,030 Feb-15-2018, 04:01 AM
Last Post: Zatoichi

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020