2017-05-20 5 views
-3

これは私の挑戦です。Pythonのキー番号へのテキスト

テンキーを使ってテキストメッセージを送信することができます。各キーには複数の文字が関連付けられているため、ほとんどの文字には複数のキーが必要です。数字を1回押すと、キーの最初の文字が生成されます。数字2,3,4,5を押すと、そのキーの2番目、3番目、4番目または5番目の文字が生成されます。

キーシンボル

1:!

2 A B C

3 D E F

4 G H I

5 J K L

6 M N O

7 P Q R S

8 T U V

9 W X Y Z

0(空白)

ユーザから読み出したテキストメッセージを入力するようにしなければならないキーの押下を表示するプログラムを書きます。各文字または記号からキープレスにマップする辞書を作成します。次に、辞書を使用して、ユーザーのメッセージの印刷を生成して表示します。たとえば、ユーザーがHelloを入力した場合、World!プログラムは4433555555666110966677755531111を出力します。プログラムが大文字と小文字の両方を処理することを確認してください。セミコロンや角かっこなど、上記の表に記載されていない文字は無視してください。

これまでのところ、私が持っている: '範囲内(V [i])とは'、私は、入力された各文字(値)の数(キー)を印刷するには、このプログラムを持っているなし

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) 

。今では、各キーのリストにどれくらいの深さがあるかに応じて、特定の回数だけキーを印刷するプログラムが必要です(たとえば、私がeを入力した場合、 '3'が印刷されますが、 '33' eは3のリストの深さ2なので、 '3'を2回印刷する必要があります)。誰でもこれを修正する方法を知っていますか?

+1

あなたは 'or'演算子を間違って使用しています。私は、この質問には私たちが提供できるものより少しだけ多くの助けが必要だと思います。あなたの家庭教師と一緒に座ってください(もしあなたがいたら)。 – timgeb

+0

私は家庭教師がいませんが、あなたの時間をありがとう –

答えて

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