在我的python程序中获取类型错误?
错误:在我的python程序中获取类型错误?,python,sqlite,Python,Sqlite,错误: import sqlite3 Book = sqlite3.connect("BookStore.db") curbook = Book.cursor() more=True total_cost = 0.0 while(more): Title = input("Enter Title of the book : ") curbook.execute("SELECT title,author,price FROM BookDetails WHERE title
import sqlite3
Book = sqlite3.connect("BookStore.db")
curbook = Book.cursor()
more=True
total_cost = 0.0
while(more):
Title = input("Enter Title of the book : ")
curbook.execute("SELECT title,author,price FROM BookDetails WHERE title = '"+ Title +"';")
record = curbook.fetchone()
if record == None:
print("No Record Found")
break
else :
print(record)
no_of_copies = int(input("Enter Number of copies you want to purchase : "))
More = input("Add more books? Y/N")
if More == 'n' or More == 'N':
more = False
curbook.execute("SELECT price from BookDetails WHERE title = '"+ Title +"';")
price = curbook.fetchone()
total_cost = total_cost + no_of_copies * price
print("Total Cost ",total_cost)
Book.close()
价格是一个元组
尝试:
正如错误所述,no_of_copies或price是一个元组而不是float.fetchone返回一个元组,其中包含所需列中的数据。即使只有一列,它仍然返回一个元组。所以价格是一个元组。使用price[0]尝试打印price,您会看到一个元组ex:10,您可以使用索引访问该元素
Traceback (most recent call last):
File "C:\Python35\Retrieve_Book.py", line 21, in <module>
total_cost = total_cost + no_of_copies * price
TypeError: unsupported operand type(s) for +: 'float' and 'tuple'
total_cost = total_cost + no_of_copies * price[0]