一整轮做完,三个数说不说得通

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

在纸上把真机那道交付题预演一遍:先删掉库存是 0 的,再把剩下里库存空着的改成 0输出三个数:删了几行、改中几行、最后表里几行(用 / 隔开)。

id  name    cat   price  stock      约束
 1  绿茶    饮料      6     12      id    主键
 2  红茶    饮料      6      0      name  非空且唯一
 3  苏打水  饮料      5   (空)      cat   非空
 4  薯片    零食      8      7      price 非空
 5  海苔    零食     12      3      stock 可以为空
 6  巧克力  零食     15   (空)
 7  铅笔    文具      2     40
 8  笔记本  文具      9      5
 9  橡皮    文具      3      0
10  冰红茶  饮料      4     20
import sqlite3
db = sqlite3.connect(":memory:")
db.execute("""CREATE TABLE goods (
    id    INTEGER PRIMARY KEY,
    name  TEXT NOT NULL UNIQUE,
    cat   TEXT NOT NULL,
    price INTEGER NOT NULL,
    stock INTEGER)""")
db.executemany("INSERT INTO goods VALUES (?,?,?,?,?)", [
    (1, "绿茶", "饮料", 6, 12),   (2, "红茶", "饮料", 6, 0),
    (3, "苏打水", "饮料", 5, None), (4, "薯片", "零食", 8, 7),
    (5, "海苔", "零食", 12, 3),   (6, "巧克力", "零食", 15, None),
    (7, "铅笔", "文具", 2, 40),   (8, "笔记本", "文具", 9, 5),
    (9, "橡皮", "文具", 3, 0),    (10, "冰红茶", "饮料", 4, 20)])
d = db.execute("DELETE FROM goods WHERE stock = 0")
u = db.execute("UPDATE goods SET stock = 0 WHERE stock IS NULL")
n = db.execute("SELECT COUNT(*) FROM goods").fetchone()[0]
print(str(d.rowcount) + "/" + str(u.rowcount) + "/" + str(n))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论