参数:从栈顶取出给定数量的盘子。该值应该是正整数。如果该值小于或等于0,则拒绝该操作并发出警告。
如果选择的板太多,则拒绝操作并发出警告。否则,从堆栈中取出印版并打印一条消息。
这是我创建的函数:
def remove_plates():
print(" ")
print("Remove plates")
print("=========")
size = read_int("How many plates would you like removed?: ")
for index, size in enumerate(plates):
if size <= (index + 1):
plates.remove(size)
print(f"{size} removed, success!")
elif size <= 0:
print(f"Error: {size} plates cannot be removed from the stack.")
elif size >= (index + 1):
print(f"Error: {size} plates cannot be removed from the stack.")
else:
print(f"{size} removed, success!")
print(" ")
我将数字 10 和 8 输入到列表中,然后要求代码从列表中删除 4 项。 我预计它会输出:“无法从堆栈中移除 4 个板。”相反,它输出:
错误:无法从堆叠中移除 10 个板。
错误:无法从堆叠中取出 8 个板。
我做错了什么?
您分配给输入的变量“size”与 for 循环中创建的全新变量“size”不是同一个对象(它构成了板中的值)。
说实话,你只需要将(输入)大小与 len(plates) 进行比较,而不是枚举任何东西。