需要在python中删除函数中的板块

问题描述 投票:0回答:1

参数:从栈顶取出给定数量的盘子。该值应该是正整数。如果该值小于或等于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 个板。

我做错了什么?

python stack
1个回答
0
投票

您分配给输入的变量“size”与 for 循环中创建的全新变量“size”不是同一个对象(它构成了板中的值)。

说实话,你只需要将(输入)大小与 len(plates) 进行比较,而不是枚举任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.