FileName = 'Binarydata.dat'
BinaryFile = open(FileName, 'r')
for '0' in BinaryFile:
print('')
else:
print('@')
BinaryFile.close()
尝试运行此代码时收到错误SyntaxError - can't assign to literal
。这只是代码的一小部分。其余的工作正常。我无法弄清楚为什么这不起作用。
答案 0 :(得分:14)
for '0' in BinaryFile:
你有'0'的地方应该是变量,而不是文字。
你的意思可能是:
for line in BinaryFile:
if line == '0':
print('')
else:
print('@')
答案 1 :(得分: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错误,此时迭代结束。
答案 2 :(得分:1)
如果您正在寻找'0'
,那么您可以写下:
for ch in BinaryFile:
print('' if ch == '0' else '@')
请记住:Python中的for
是for-each循环。必须有一个变量绑定在iterable的内容上。