2017-05-20 31 views
-3

所以我的挑戰是這樣的:在python中鍵入文字的文字

在一些基本的手機上,短信可以使用數字鍵盤發送。由於每個鍵都有多個與其關聯的字母,因此大多數字母都需要多次按鍵。按一次該號碼將生成該鍵上的第一個字母。按數字2,3,4或5次將生成爲該鍵列出的第二,第三,第四或第五個字符。

鍵符號

1:?!

2 A B C

3 d電子網

4 G H I

5 J K L

-6 M 2 N 2 O

7 P Qř小號

8,T U,V,

9瓦X YŽ

0(空間)

收件顯示必須作出輸入來自用戶的閱讀的文本消息的按鍵的程序。構建一個字典,從每個字母或符號映射到按鍵。然後使用字典生成並顯示用戶消息的印刷機。例如,如果用戶輸入Hello,World!那麼你的程序應該輸出4433555555666110966677755531111。確保你的程序處理大寫和小寫字母。忽略上表中未列出的任何字符,例如分號和括號。

到目前爲止我有:

textLetters = { 
'1':['.',',','?','!',':'], 
'2':['A' or 'a','B' or 'b','C' or 'c'], 
'3':['D' or 'd','E' or 'e','F' or 'f'], 
'4':['G' or 'g','H' or 'h','I' or 'i'], 
'5':['J' or 'j','K' or 'k','L' or 'l'], 
'6':['M' or 'm','N' or 'n','O' or 'o'], 
'7':['P' or 'p','Q' or 'q','R' or 'r','S' or 's'], 
'8':['T' or 't','U' or 'u','V' or 'v'], 
'9':['W' or 'w','X' or 'x','Y' or 'y','Z' or 'z'], 
'0':[' '] 
} 

text = list(input("Please input a text so I can show you how to type it on your phone:")) 


for i in text: 
    for k,v in textLetters.items(): 
     if i in v: 
      for a in range(v[i]): 
       print(k) 

如果沒有 '爲一個在範圍(V [I])',我已得到這個程序來打印的每一個字符(值)的(鍵)輸入的。現在我只需要程序根據每個鍵的列表中每個值的深度將鍵打印一定次數(例如,如果我輸入e,它會打印'3',但我希望它打印'33',因爲e是3的列表中的深度2,所以它應該打印'3'兩次)。任何人都知道如何解決這個問題?

+1

您正在使用'or'操作符錯誤。我認爲這個問題需要比我們能提供的更多的幫助。坐下來與你的導師(如果你有)。 – timgeb

+0

好的,我沒有導師,雖然謝謝你的時間 –

回答

0
nums = { 
    'a': '2', 
    'b': '22', 
    'c': '222', 
    'd': '3', 
    'e': '33', 
    # etc... 
}