def read_book(books, book_to_read):
# 找到要讀的書本位置
index = books.index(book_to_read)
# 將壓在該本書上的書移開,並按照順序放在旁邊
temp_stack = books[:index]
# 將想要看的書取出
book = books.pop(index)
# 閱讀完畢後,將書逆向放回
books = temp_stack[::-1] + books
# 將看完的書放在最上面
books.insert(0, book)
return books
# 主程式
if __name__ == "__main__":
# 初始書本序列
books = ["書本 1", "書本 2", "書本 3", "書本 4", "書本 5"]
# 要閱讀的書本
book_to_read = "書本 3"
# 取得最終書本狀態
final_books = read_book(books, book_to_read)
# 輸出最終書本狀態
print("最終的書本狀態:")
for book in final_books:
print(book)
程式解析
找到要讀的書本位置:
使用 index 函數找到需要閱讀的書本在序列中的位置。
將壓在該本書上的書移開:
將從頂部到該書本之間的書本移到一個臨時堆疊 temp_stack。
取出要讀的書本:
從原始序列中移除要讀的書本。
逆向放回書本:
將臨時堆疊中的書本逆向放回到原始序列中。
將讀過的書放在最上面:
最後將讀過的書本放在序列的最頂端。
這樣可以模擬書本的移動過程並得到最終的書本狀態。你可以修改 books 和 book_to_read 來測試不同的初始書本序列和閱讀順序。例如,輸入 "書本 3",輸出將是 "書本 3", "書本 2", "書本 1", "書本 4", "書本 5"。