Буквенно-цифровой телефонный переводчик сломан - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь создать базовую c (я новичок) программу для перевода номера телефона, как вы могли бы увидеть на ТВ ex. 555-PLZ-HELP на фактический номер телефона. Пользователь введет номер, и программа вернет его в том же формате 555-555-5555. Я использую фактические эквиваленты телефонных кнопок.

phoneNum = input("Please enter a number in the format of XXX-XXX-XXXX: ")
newNum = '' 

for ch in phoneNum[:]:
    if ch == 'A' or ch == 'B' or ch == 'C':
            ch == '2'
    elif ch == 'D' or ch == 'E' or ch == 'F':
            ch = '3'
    elif ch == 'G' or ch == 'H' or ch == 'I':
            ch = '4'
    elif ch == 'J' or ch == 'K' or ch == 'L':
            ch = '5'
    elif ch == 'M' or ch == 'N' or ch == 'O':
            ch = '6'
    elif ch == 'P' or ch == 'Q' or ch == 'R' or ch == 'S':
            ch = '7'
    elif ch == 'T' or ch == 'U' or ch == 'V':
            ch = '8'
    elif ch == 'W' or ch == 'X' or ch == 'Y' or ch == 'Z':
            ch = '9'

newNum += ch

print(newNum)

Ответы [ 3 ]

0 голосов
/ 03 мая 2020

Хотя требуется небольшая (разовая) настройка, это очень легко сделать с помощью встроенного метода translate() ', но для этого требуется создать "translate" Таблица". К счастью, есть также метод класса строки с именем maketrans, который помогает сделать это.

0 голосов
/ 03 мая 2020

Я попытался добавить проверку l oop и запутал ее

letters = ['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
numbers = ['1234567890']
dash = ['-']
newNum = '' 
#Ask for user to input alphanumeric phone number and a variable for our loop
def numTran():
    phoneNum = input("Enter the number in the format of XXX-XXX-XXXX (all CAPS): ")
    for ch in phoneNum[:]:
        if ch != (letters) or ch != (numbers) or ch!= (dash):
            print('Please submit a valid response')
            numTran()
        #create a loop and index our input, reassign the letters to equal appropriate
        #number
        for ch in phoneNum[:]:
            if ch == 'A' or ch == 'B' or ch == 'C':
                    ch = '2'
            elif ch == 'D' or ch == 'E' or ch == 'F':
                    ch = '3'
            elif ch == 'G' or ch == 'H' or ch == 'I':
                    ch = '4'
            elif ch == 'J' or ch == 'K' or ch == 'L':
                    ch = '5'
            elif ch == 'M' or ch == 'N' or ch == 'O':
                    ch = '6'
            elif ch == 'P' or ch == 'Q' or ch == 'R' or ch == 'S':
                    ch = '7'
            elif ch == 'T' or ch == 'U' or ch == 'V':
                    ch = '8'
            elif ch == 'W' or ch == 'X' or ch == 'Y' or ch == 'Z':
                    ch = '9'
        #create and accumulator for our variable newNum
            newNum += ch

        print(newNum)
numTran()
0 голосов
/ 03 мая 2020

Из того, что я могу сказать, 2 вещи не так с этим кодом. 1 - Строка:

newNum += ch

должна быть под l oop.

2 - Строка:

ch == '2'

должна быть

ch = '2'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...