我有一個執行 Moodle 版本檢查的 Python 腳本。檢查 Moodle 版本后,我想插入資料庫,但出現以下錯誤:
line 337
mycursor = db.cursor()
TabError: inconsistent use of tabs and spaces in indentation
這是使用和有問題的代碼:
import import mysql.connector
...
def printversion(version):
if version != 0:
print ("\nVersion found via " version.split(';')[2] " : Moodle " version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
報的錯誤是關于代碼縮進的,但是我不知道如何解決這個問題以在資料庫中插入版本控制結果。
是帶縮進的代碼:
在此處輸入影像描述
uj5u.com熱心網友回復:
您在這里有一個小小的誤解,在 python 中的任何函式中,您需要在開始撰寫任何代碼之前提供一個縮進(制表符),
即結構是
def your_functionname(parameters)
< you code here >
因此,以正確的方式,您的代碼應如下所示
...
def printversion(version):
if version != 0:
print ("\nVersion found via " version.split(';')[2] " : Moodle "
version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="",
database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
print ("\nVersion not found")
return False
uj5u.com熱心網友回復:
您的代碼需要縮進函式定義之后的部分。
所以代替這個,
def printversion(version):
if version != 0:
print ("\nVersion found via " version.split(';')[2] " : Moodle " version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
你應該有這個,
def printversion(version):
if version != 0:
print ("\nVersion found via " version.split(';')[2] " : Moodle " version.split(';')[0])
vuln = version.split(';')[0]
db = mysql.connector.connect(host="localhost", user="admin", passwd="", database="test")
mycursor = db.cursor()
insertQuery = """INSERT INTO moodle (id,payload) VALUES (%s,%s)"""
mycursor.execute(insertQuery, ('',vuln))
db.commit()
db.close()
return version.split(';')[0].replace("v","")
我不知道您的代碼的意圖,但看起來您可能還想包含一個else陳述句,
else:
print ("\nVersion not found")
return False
uj5u.com熱心網友回復:
如果版本!= 0,則只需標記該行:
僅標識這一行
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/417220.html
標籤:
