这有什么问题? (而且我只是一个初学者,所以没什么好复杂的,拜托!)
#!usr/bin/python
import os
import sys
import pdb
import time
import array
red = chr(00), chr(00), chr(255)
blue = chr(255), chr(00), chr(00)
print "Monochrome Bitmap Color Changer"
print "Supported colors: "
print "Black, White, Blue, Red, Yellow,"
print "Green, Orange, Purple, Pink, Brown, Grey"
print ""
filename = raw_input("Please enter filename or directory of monochrome bitmap: ")
whitevalue = raw_input("Change all white pixels to? ")
blackvalue = raw_input("Change all black pixels to? ")
with open (filename, 'r+b') as f:
f.seek(54)
if whitevalue is "red" or "Red":
f.write(red)
elif whitevalue is "blue" or "Blue":
f.write(blue)
f.seek(58)
if blackvalue is "red" or "Red":
f.write(red)
elif blackvalue is "blue" or "Blue":
f.write(blue)
exit
#print "Done"
#time.sleep(3)
#exit
在第二条f.write(red)
行之后,它显示一个带红色的粉红色高光,并说:
'unindent与任何外部缩进级别
不匹配这是什么意思,以及如何帮助/解决它?
非常感谢!
答案 0 :(得分:2)
那个elif语句与if语句的范围不同,所以它会给你一个错误。只有在同一范围/缩进中已有if语句时,才能存在Elif语句。
如果您希望它是符合
的elif语句if blackvalue is "red" or "Red":
然后再将其缩进一个标签。如果你想在与
相同的范围内if whitevalue is "red" or "Red":
和
elif whitevalue is "blue" or "Blue":
然后取消选择一次。但总而言之,你不能单独拥有一个elif语句(就像你自己不能有一个else语句一样)。
答案 1 :(得分:1)
您的elif
没有缩进属于if
语句的方式。
像这样改变:
with open (filename, 'r+b') as f:
f.seek(54)
if whitevalue is "red" or "Red":
f.write(red)
elif whitevalue is "blue" or "Blue":
f.write(blue)
f.seek(58)
if blackvalue is "red" or "Red":
f.write(red)
elif blackvalue is "blue" or "Blue":
f.write(blue)
exit