0

特定の文字 (a を e に、e を a に、s を 3 に) 置き換えることを意図したコードが機能しませんが、フィードしているテキスト ファイルが変更されていないため、エラーの原因がよくわかりません。

pattern = "ae|ea|s3"

def encode(pattern, filename):
  message = open(filename, 'r+')
  output = []
  pattern2 = pattern.split('|')
  for letter in message:
    isfound = false
    for keypair in pattern2:
      if letter == keypair[0]: 
        output.append(keypair[1])
        isfound = true
      if isfound == true:
       break;
    if isfound == false:
      output.append(letter)

  message.close()  

しばらくの間、これを理解しようとして頭を悩ませてきました..

4

2 に答える 2

0

テキストファイルを作成したものに置き換えないため、テキストファイルは変更されませんoutput。代わりに、この関数はoutput文字列を作成し、関数の最後にドロップします。関数から文字列を返しoutputて外部に保存するか、追加せずにファイルに書き込むことで関数内のファイルを置き換えます。

これは演習のように思えるので、自分で関数を作成することでより多くのことを学べる可能性があるため、コードを追加しないことを好みます。

于 2012-06-01T07:28:50.267 に答える