0

这有什么问题?(而且我只是一个初学者,所以没什么复杂的,拜托!)

#!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 不匹配任何外部缩进级别'

这是什么意思,如何帮助/解决它?

非常感谢!

4

2 回答 2

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 语句本身一样)。

于 2013-04-28T07:52:08.610 回答
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
于 2013-04-28T08:29:27.190 回答