IndentationError and NameError and new function error(使用def后无法打印出来)

IndentationErro and NameError and new function error(cant print out after using def)

在我的程序添加功能之前,它可以运行并在我的 sqlite3 数据库中打印出我的命令

但在添加 def

之后

看起来像

def readswitch(x,y,read):

x='create vlan'
y='global'
conn = sqlite3.connect('server.db')

with conn:
        cur = conn.cursor()
    # function = "SELECT command FROM switch WHERE   function =:function or type =:type ORDER BY key ASC",{"function":x},{"type":y}
    # function = ("SELECT command FROM switch WHERE   function =? or type = ? ORDER BY key ASC",(x,y))
cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
read = cur.fetchall()
for row in read:
     print (readswitch())

表示x='create vlan'IndentationError: expected an indented block

在我按下 Tab 后按下 space 栏

它有这样的错误:

def readswitch(x,y,read):

    x='create vlan'
y='global'
conn = sqlite3.connect('server.db')

with conn:
        cur = conn.cursor()
    # function = "SELECT command FROM switch WHERE   function =:function or type =:type ORDER BY key ASC",{"function":x},{"type":y}
    # function = ("SELECT command FROM switch WHERE   function =? or type = ? ORDER BY key ASC",(x,y))
cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
read = cur.fetchall()
for row in read:
     print (readswitch())



cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
NameError: name 'x' is not defined

我现在该怎么办?


现在我解决了这个问题 并面临其他功能错误

我删除了 def(readswitch(x,y,read): 它没有错误并且可以打印出我的命令。

x='create vlan'
y='global'
conn = sqlite3.connect('server.db')

if conn:
        cur = conn.cursor()
        cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
        read = cur.fetchall()
        for row in read:
             print (row)

# def update()

但是在我加回我的 def(readswitch(x,y,read): 之后我更改了 print(row): 它什么都不打印

def readswitch(x,y,read):

    x='create vlan'
    y='global'
    conn = sqlite3.connect('server.db')

    if conn:
        cur = conn.cursor()
        cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
        read = cur.fetchall()
        for row in read:
             print (readswitch())

有人对此有一些想法吗? `

某些语句的缩进问题在错误的位置。

def readswitch(x,y,read):

    x='create vlan'
    y='global'
    conn = sqlite3.connect('server.db')

    if conn:
        cur = conn.cursor()
        cur.execute("SELECT command FROM switch WHERE   function =? or type = ?  ORDER BY key ASC",(x,y))
        read = cur.fetchall()
        for row in read:
             print row