シーザーのシンプルな暗号スタイルプログラムのコードです。辞書とisspace関数を使用する際のマイナーな問題
これはうまくいきますが、ユーザーが書き込んだ単語間の潜在的なスペースを認識しません。
プログラムは文字自体を正しく翻訳しますが、スペースを省略して、すべての文字をクラスタ化して1つの単語にまとめて出力します。
私はこれを自分で解決しようとしましたが、代わりにエラーコード: "AttributeError: 'dict' object has no attribute 'isspace'
"を書き込みました。
別の方法がありますか? key.isspace中のCH場合
key = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t',
'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a',
'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h',
'v':'i', 'w':'j', 'x':'k', 'y':'l', 'z':'m', 'A':'N', 'B':'O',
'C':'P', 'D':'Q', 'E':'R', 'F':'S', 'G':'T', 'H':'U', 'I':'V',
'J':'W', 'K':'X', 'L':'Y', 'M':'Z', 'N':'A', 'O':'B', 'P':'C',
'Q':'D', 'R':'E', 'S':'F', 'T':'G', 'U':'H', 'V':'I', 'W':'J',
'X':'K', 'Y':'L', 'Z':'M'}
def change(message, new_message):
for ch in message:
if ch in key:
new_message += key[ch]
if ch in key.isspace():
new_message += " "
return new_message
def main():
print
message = input("Type your message here.\n")
new_message = ""
print(change(message, new_message))
main()
に何を期待していないライン '():'行うには? – jwodder
'key'はあなたの辞書で、' isspace() 'は文字列または文字クラスの関数です。したがって、 'ch.isspace()'ではなく 'ch.isspace()'だけで 'ch 'を使うべきではありません。 –
' key'ディクテーションにスペースを簡単に追加することもできます。 (単一のスペースにマップされます) –