0
FileName = 'Binarydata.dat'
BinaryFile = open(FileName, 'r')
for '0' in BinaryFile:
    print('')
else:
    print('@')
BinaryFile.close() 

SyntaxError - can't assign to literalこのコードを実行しようとするとエラーが発生します。これはコードのほんの一部です。残りは正しく機能しています。なぜこれが機能しないのか理解できません。

4

3 に答える 3

14
for '0' in BinaryFile:

「0」がある場所は、リテラルではなく変数にする必要があります。

おそらくあなたがしようとしていることは次のとおりです。

for line in BinaryFile:
  if line == '0':
    print('')
  else:
    print('@')
于 2012-04-10T14:37:34.843 に答える
3

おそらくスタックトレース全体で、次のようなものを見ました:

    for '0' in BinaryFile:
SyntaxError: can't assign to literal

Python が BinaryFile をループすると、各反復が変数に割り当てられます。この場合、最初の反復を文字列である '0' に割り当てようとしています。

代わりに、次のようになります。

    for a_variable in BinaryFile:

この場合、BinaryFile の要素が a_variable に割り当てられます。次の反復では、次の変数が a_variable に割り当てられます。

これは、オブジェクト BinaryFile が StopIteration エラーを発生させるまで続き、その時点で反復が終了します。

于 2012-04-10T14:48:41.490 に答える
1

あなたが探しているなら'0'、あなたは書くことができます:

for ch in BinaryFile:
    print('' if ch == '0' else '@')

注意:forPythonではfor-eachループです。iterableの内容にバインドされた変数が必要です。

于 2012-04-10T14:38:54.313 に答える