你好,我正在尝试编写我的第一个程序,只是一个简单的 SQLite 3 程序来熟悉它。首先,该计划的目标是创建一个表来保存考古动物遗骸的基本数据(因为他们对遗骸进行编目的方式是古老的自动取款机)。我的代码中的问题从第 16-35 行开始,我尝试创建一个循环来获取用户输入,然后将该数据插入表/目录中。我试图让程序识别关键字“exit”以退出循环。我一开始尝试使用带有 if & else 语句的 for 循环,但没有成功。我查看了其他几个类似的问题来寻求帮助,我最近的尝试是尝试切换到 while 循环。使用提供的当前代码,输入循环继续进行并忽略关键字“exit”。while input == 'exit'或反之亦然while input != 'exit'。我还尝试导入 sys 并让关键字“exit”使用 sys.exit() ,这只会使程序无法运行(也许我将其放置在循环中太早)。我尝试为 sys.exit() 和 break 定义函数,这也给出了关键字被忽略的相同问题。
(我最初是用pycharm编写的,开始使用Visual Studio,因为社区版pycharm不再包含数据库工具)(正如你所看到的,我的代码是程序性的,我仍在努力对OOP充满信心)(我将数据库放在:内存:在下面的示例中)
先感谢您。如果我没有提供有关我的问题的更简洁的信息,我深表歉意,并且很乐意提供任何其他需要的信息。
import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
cursor = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS catalog (
number integer NOT NULL PRIMARY KEY autoincrement,
type text NOT NULL,
taxon text,
species text NOT NULL,
part text NOT NULL,
age integer,
layer text,
notes text
)""")
while True:
if input != 'exit':
print("Please enter individual specimen data: ")
c_number = input('Catalog #: ')
c_type = input('Type of Specimen: ')
c_taxon = input('Taxon: ')
c_species = input('Species: ')
c_part = input('Body Part: ')
c_age = input('Estimated Age: ')
c_layer = input('Sedimentary Layer: ')
c_notes = input('Notes: ')
cursor.execute("""
INSERT OR IGNORE INTO catalog(number, type, taxon, species, part, age, layer, notes)
VALUES (?,?,?,?,?,?,?,?)
""", (c_number, c_type, c_taxon, c_species, c_part, c_age, c_layer, c_notes))
conn.commit()
print('Specimen data entered successfully.')
else:
if input == 'exit':
break
c.execute("""CREATE VIEW catalog (
AS
SELECT * FROM catalog;
""")
conn.close()
千万里不及你
HUX布斯
相关分类