raw_input()语法无效

时间:2013-11-24 21:46:47

标签: python-2.7 syntax-error raw-input

我想输入一个五个数字的字符串,它们之间有空格,并使用raw_input()。然而,第二项(第一和第二空格之间的部分)声称是syntax error。代码如下:

#class for final output - used as an ad hoc static string
class StatString:
        outstring = ""

#function to check if Boom or Trach or both
def BoomTrach(num,B,T):
        Boom = False
        Trach = False
        temp = num
        while temp != 0:
                if num % B == 0:
                        Boom == True
                        break
                if (temp % 10) % B == 0:
                        Boom = True
                        break
                temp = (temp - temp % 10) / 10
                temp = num
        while temp != 0:
                if num % T == 0:
                        Trach = True
                        break
                if (temp % 10) % T == 0:
                        Trach = True
                        break
                temp = (temp - temp % 10) / 10
        if Boom and Trach:
                herestring.outstring = herestring.outstring + "Boom-Trach"
        elif Boom:
                herestring.outstring = herestring.outstring + "Boom"
        elif Trach:
                herestring.outstring = herestring.outstring + "Trach"
        else:
                herestring.outstring = herestring.outstring + str(num)


#start of "main" portion
def main():
        inS = raw_input()  <<<--- Input here
        arr = inS.split(' ')
        X = int(arr[0])
        Y = int(arr[1])
        CountFrom = int(arr[2])
        jump = int(arr[3])
        CountUntil = int(arr[4])

        #variable for error check
        error = False

        #checking for errors
        if X < 1 or X > 9 or Y < 1 or Y > 9:
                print "X and Y must be between 1 and 9"
                error = True

        if jump == 0:
                print "jump cannot be 0"
                error = True

        elif (CountUntil - CountFrom) % jump != 0:
                print "cannot jump from %d to %d",CountFrom,CountUntil
                error = True

        if error:
                exit()

        if CountFrom < 0 and CountUntil < 0 and jump > 0:
                jump = jump * (-1)

        herestring = StatString()
        while CountFrom != CountUntil:
                BoomTrach(CountFrom,X,Y)
                CountFrom = CountFrom + jump
                if(CountFrom != CountUntil):
                        herestring.outstring = herestring.outstring + ","
        print herestring.outstring

错误消息:(第二个1被标记为错误来源)

>>> 1 1 1 1 1
SyntaxError: invalid syntax
>>> 

1 个答案:

答案 0 :(得分:0)

我知道发生了什么。您只需运行此模块,并且您认为从主函数开始运行它(例如在C中)。 raw_input行(输入的第一行)没有问题。问题是你的模块不会尝试读取任何东西!你刚输入“1 1 1 1 1”,这当然是语法错误...

将此行附加到您的代码以运行main函数:

main()的

您也可以在某些函数中编写main函数的代码,以获得相同的效果。