python将信转换为电话号码

时间:2015-03-01 21:10:52

标签: python while-loop

我是python编程的初学者,这是我第一个参加编程的学期。我遇到了一些麻烦。我们正在使用字符串,所以我猜我必须将所有内容转换为字符串。所以这个问题的目标是转换一个电话号码,例如: 1-800-花到1-800-3569377 我不允许使用列表或词典,只是变量,必须包含WHILE LOOP。这是我到目前为止所做的:

print('format: X-XXX-XXXXXXX')

user_input = str(input("give me a phone number: "))

key_alph='abcdefghijklmnopqrstuvwxyz'

key_num= '22233344455566677778889999'

total=''

while user_input[6:12].isalpha():

    if user_input[6:12] in key_alph:

        print(user_input[:6]  ,key_num)

任何帮助将不胜感激。 如果可能的话,答案是不是可以揭示,但如果oyuu必须解释那将是好的。我不知道我是否需要使用索引函数或.append方法.... 先感谢您 丹尼米

1 个答案:

答案 0 :(得分:2)

user_input = (input("give me a phone number: "))

key_alph='abcdefghijklmnopqrstuvwxyz'

key_num= '22233344455566677778889999'

counter = len(user_input[:6])

total=user_input[:6]    #Stores the part of string which is not going to be changed ("1-800-")

while (counter>0):
    alpha = user_input[-counter]
    if alpha.isalpha():   #checks if each character in the input is a valid alphabet and not a number.
        total+=key_num[key_alph.index(alpha)]  #Appending the new characters after the "1-800-" 
    else:
        total+=alpha     #This will preserve if any numeric character is encountered and keeps it same as in the input
    counter -= 1
print total