如何在Python中多次将数据存入列表?书店程序仅显单条数据求助
问题分析与修复方案
核心问题点
- continue语句位置错误:当输入
y时,continue会直接跳过后续的书籍信息保存代码,导致当前输入的内容完全丢失,且该分支下的book = [...]永远不会执行。 - 未使用集合存储多本书籍:仅用单个
book变量存储数据,每次输入新书籍会覆盖旧数据,最终只能保留最后一次输入的内容;若首次输入就选n,还会因book未定义触发NameError。
修复后的代码
# 初始化空列表存储所有书籍 books = [] while True: title = input("Title: ") author = input("Author: ") purchase_price = float(input("Purchase_Price: ")) sell_price = float(input("Sell_Price: ")) # 将当前书籍信息添加到列表 books.append([title, author, purchase_price, sell_price]) continues = input("Do you want to enter more books? y/n") if continues == 'n': break # 遍历打印所有书籍信息 for book in books: print(book)
修复说明
- 用列表
books统一存储所有书籍数据,通过append()方法实现数据累加,避免覆盖。 - 移除错误的
continue语句,确保每次输入的书籍信息都能被保存。 - 改用
while True+break简化循环逻辑,无需额外变量控制循环启停。 - 最后通过循环遍历列表,完整打印所有输入的书籍信息。
内容的提问来源于stack exchange,提问作者Captain
相关产品推荐
相关产品推荐

