2017-10-18 8 views
-1

私は一般的にはPythonとプログラミングには初めてです。私はメッセージをエンコードしてデコードしようとしていましたが、この間違いが発生します。どういう意味ですか?それを修正するには?Strオブジェクトは呼び出し可能ではありません。メッセージのエンコードとデコード

Def main():  
    Mes=input(" enter the message to encode").  
    Key= int(input(" enter the key").  
    Print(chr(ord(chr)+key) for chr in mes)  
main()     
+1

です - 関数 'chr'で? 'char'や' c'のような別の名前を使用してください。 –

+1

関数を定義する正しい構文は 'Def'ではなく' def'です。正しい大文字を使用していることを確認してください。 –

+1

嘘をつけないでください。そのコードはそのエラーを生成しません。そのコードを実行する前に、3つまたは4つの構文エラーを修正する必要があります。 –

答えて

0

あなたがfor chr in mesを書かれているので、あなたは組み込みの名前chrを影にしています。さて、chrはあなたの文字列を参照し、Python関数は参照しません。以下のようなものと交換してください:

chr(ord(mychar)+key) for mychar in mes 
+0

ありがとう!これは動作しますが、これを出力します: at 0x0142FC00>をエンコードされたメッセージではなく – Krokonoxx

+0

にすると、あなたがリストにしたい場合は、あなたが '[]'の中に出力する式を入れる必要があります。式が括弧の中にある場合は、*ジェネレータ*を作成します(参照してください) –

+0

助けてくれてありがとう – Krokonoxx

0

建てを使用しようとしているときに、あなたのイテレータ変数 `chr`を命名しているのはなぜこのコードは、プログラムの私のバージョン

def main():  
    Mes=input(" enter the message to encode ")  
    Key= int(input(" enter the key "))  
    for ch in Mes: 
      print(chr(ord(ch)+Key))   
main() 

OUTPUT

enter the message to encode me 
enter the key 2 
o 
g 
関連する問題