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 '@')

记住:for在 Python 中是一个 for-each 循环。必须有一个变量绑定在可迭代的内容上。

于 2012-04-10T14:38:54.313 回答