Python给出了语法错误,但没有错误?

Python给出了语法错误,但没有错误?,python,syntax,syntax-error,user-defined-functions,Python,Syntax,Syntax Error,User Defined Functions,有人能说说为什么python不允许这样做吗 # -*- coding: utf-8 -* import win32api,win32con,os,time,sys x_pad =464 y_pad =235 def tik(): win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) time.sleep(.1) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,

有人能说说为什么python不允许这样做吗

# -*- coding: utf-8 -*
import win32api,win32con,os,time,sys
x_pad =464
y_pad =235

def tik():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(.1)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
    print "Click.".decode('utf-8').encode(sys.stdout.encoding)        #completely optional. But nice for debugging purposes.
def basilitut():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(.1)
    print 'Hold'.decode('utf-8').encode(sys.stdout.encoding)


def birak():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
    time.sleep(.1)
    print 'Release.'.decode('utf-8').encode(sys.stdout.encoding)

def mousePos(cord):
    win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])



def oyun():
    #Ses kes
    mousePos((163, 251))
    tik()
    time.sleep(.1)
    #Play butonu
    mousePos((161, 127))
    tik()
    time.sleep(.1)

    #Iphone
    mousePos((149, 267))
    tik()
    time.sleep(.1)

    #Merhaba
    mousePos((373, 314))
    tik()
    time.sleep(.1)

    #Goal
    mousePos((163, 251))
    tik()
    time.sleep(.1)
文件“C:\Users\Doruk\Desktop\Python\Bot\code.py”,第27行

def oyun():

SyntaxError:无效语法

当我移除def-oyun():blabla

文件“C:\Users\Doruk\Desktop\Python\Bot\code.py”,第24行

它只是用空行表示错误

当我删除

def mousePos(cord):
    win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])

它可以工作,但没有它们我无法制作程序。

你确定没有语法错误吗

win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])
                     12                                2  1???

在出现语法错误的位置,报告语法错误的行不是必需的。这只是早期语法错误导致解析器意识到有问题的第一个地方。

查看报告错误上方的代码:

def mousePos(cord):
    win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])

您缺少了一个右括号。

哇,很抱歉,我不知道它第一次看到的地方出现了语法错误,我认为它与类型错误等是一样的。这显示了确切的错误。当您执行类似于
int=string
的操作时,类型错误通常位于同一行。但是,对于像您这样缺少标点符号的情况,这不一定是一个错误,因为代码可能会在下一行出现,并且完全正确。我对这件事不太熟悉,很抱歉这个愚蠢的问题:(在调试语法错误时,通常可以将其解释为“在这之前,我还期待看到一些其他的东西,
def foo(…
"错误是在检测到的行上报告的,这不一定是出错的行。哇,很抱歉。我认为它与类型错误等相同,并显示了它的确切位置。我学到了一些新东西。谢谢。错误是因为Python允许在括号打开时将表达式继续到下一行n、 因此,Python并没有抱怨您没有关闭括号;这是完全有效的,而且您可能是故意这样做的。它抱怨是因为您试图将函数定义放在括号内,但它在括号内无效。这就是为什么它在
def
行上给您一个错误的原因。
win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])
                     12                                2  1???
def mousePos(cord):
    win32api.SetCursorPos((x_pad + cord[0], y_pad + cord[1])