【问题标题】:expected an indented block on try期望在尝试时缩进块
【发布时间】:2018-07-14 21:21:55
【问题描述】:

我是一个新的 Python 学习者。我创建了一个程序,并与 sqlite db 连接。但是当我运行程序时显示预期的缩进块错误。我如何找出错误以及如何修复它?请寻求您的帮助...我的代码示例如下。

def Book():
try:
    c.execute("INSERT INTO {tn} ({vn}, {vm}, {vma}, {vnos}) VALUES (VehicleNo.get(), VehicleModel.get(), VehicleMake.get(), NoofSeat.get())".\
        format(tn="Vehicle", vn="vnumver", vm="vmodel", vma="vmade", vnos="vnumofseat"))
except sqlite3.IntegrityError:
    print('ERROR: ID already exists in PRIMARY KEY column {}')


c.execute("INSERT OR IGNORE INTO {tn} ({vn}, {vm}, {vma}, {vnos})) VALUES (VehicleNo.get(), VehicleModel.get(), VehicleMake.get(), NoofSeat.get())".\
        format(tn="Vehicle", vn="vnumver", vm="vmodel", vma="vmade", vnos="vnumofseat"))

#Driver
try:
    c.execute("INSERT INTO {tn} ({dn}, {dl}, {dp}) VALUES (DriverName.get(), LicenseNo.get(), Phone.get())".\
        format(tn="Driver", dn="dname", dl="dlicence", dp="dphone"))
except sqlite3.IntegrityError:
    print('ERROR: ID already exists in PRIMARY KEY column {}')


c.execute("INSERT OR IGNORE INTO {tn} ({dn}, {dl}, {dp})) VALUES (DriverName.get(), LicenseNo.get(), Phone.get())".\
        format(tn="Driver", dn="dname", dl="dlicence", dp="dphone"))

#Customer
try:
    c.execute("INSERT INTO {tn} ({cname}, {cadd}, {cphone}, {cfrom}, {cto}, {chire}, {cdate}, {crate}, {ctotalm}, {ctotalcost}) VALUES (DriverName.get(), LicenseNo.get(), Phone.get())".\
        format(tn="Customer", cname="cname", cadd="caddress", cphone="cphone", cfrom="cfrom", cto="cto", chire="chire", cdate="cdate", crate="crate", ctotalm="ctotalm", ctotalcost="ctotalcost"))
except sqlite3.IntegrityError:
    print('ERROR: ID already exists in PRIMARY KEY column {}')


c.execute("INSERT OR IGNORE INTO {tn} ({cname}, {cadd}, {cphone}, {cfrom}, {cto}, {chire}, {cdate}, {crate}, {ctotalm}, {ctotalcost})) VALUES (CustomerName.get(), Address.get(), Phone.get(), )".\
        format(tn="Customer", cname="cname", cadd="caddress", cphone="cphone", cfrom="cfrom", cto="cto", chire="chire", cdate="cdate", crate="crate", ctotalm="ctotalm", ctotalcost="ctotalcost"))

【问题讨论】:

  • 基本规则:如果一行以: 结束,则下一行必须缩进更多。最佳做法是多 4 个空格。

标签: python sqlite error-handling


【解决方案1】:

你需要在函数中缩进代码(第2行是你没有这样做的地方之一),这里是一个例子:

def newFunction(x):
     if (x < 5):
          x = 2

Python 对代码的排列方式比较敏感,所以如果你习惯于 JS、HTML 等,你应该注意这一点。

【讨论】:

    猜你喜欢
    • 2019-08-02
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2021-11-24
    • 2012-09-19
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多