Soru işaretlerini değişken gibi düşünün, bu Python kodu nasıl çıkarma işlemi yapmıyor ise data = data ?
da yapmaz:
data = 40
x = -20
data = data x
Kod bu hali ile çalışıyor:
import sqlite3
with sqlite3.connect(":memory:") as db:
cursor = db.cursor()
cursor.execute("CREATE TABLE temp(data TEXT);")
cursor.execute("INSERT INTO temp VALUES (40);")
####################################################
# Çalışmıyor:
cursor.execute("UPDATE temp SET data = data + ?;", (-20,))
# Çalışıyor:
cursor.execute("UPDATE temp SET data = data {};".format("-20"))
####################################################
print(cursor.execute("SELECT * FROM temp;").fetchall())
Ama f-string veya herhangi bir string metodu yerine her zaman soru işaretleri kullanmanız daha doğru ve güvenli olur.