Python函数第二次不工作

Python函数第二次不工作,python,python-2.7,Python,Python 2.7,每当我在将“铁剑”放入一个包中后第二次运行此函数,并尝试添加另一个来测试它时,它什么也不做,代码完全冻结 行李都是列表 我的猜测是while循环被卡住了,每当我在游戏中把一些东西放入列表时,它都不会改变长度,因为这不是语言的工作方式 一旦你在包里放了一把剑,你的条件就都不正确了。你的len(bag\u剑)正好是1,(因此如果len(bag\u剑)>1:将不匹配),而包中的铁剑是假的 因为您的if语句都不匹配,所以不会执行break,而while循环将永远继续 您不想测试您的包中是否有多个物品。测

每当我在将“铁剑”放入一个
包中后第二次运行此函数,并尝试添加另一个来测试它时,它什么也不做,代码完全冻结

行李
都是列表


我的猜测是while循环被卡住了,每当我在游戏中把一些东西放入列表时,它都不会改变长度,因为这不是语言的工作方式

一旦你在包里放了一把剑,你的条件就都不正确了。你的
len(bag\u剑)
正好是1,(因此
如果len(bag\u剑)>1:
将不匹配),而包中的
铁剑
是假的

因为您的
if
语句都不匹配,所以不会执行
break
,而
while
循环将永远继续

您不想测试您的
包中是否有多个物品。测试该包中是否有任何物品:

def equip(item):
    x = True
    while x == True:
        if len(bag_sword) > 1:
            print "You can't have 2 weapons equipped!"
            break
        if len(bag_chest) > 1:
            print "You can't have 2 chestplates equipped!"
            break
        if len(bag_gloves) > 1:
            print "You can't have 4 gloves equipped!"
            break
        if len(bag_helmet) > 1:
            print "You can't have 2 helmets equipped!"
            break

        if item == "iron sword" and "iron sword" in bag:
            print "\nYou equip the Iron Sword"
            bag.remove("iron sword")
            bag_sword.append("iron sword")
            break

因为你在添加第二件武器之前正在测试。

一旦你在包中添加了一把剑,你的条件都不正确。你的
len(bag\u剑)
正好是1,(因此
如果len(bag\u剑)>1:
将不匹配),而包中的
铁剑
是假的

因为您的
if
语句都不匹配,所以不会执行
break
,而
while
循环将永远继续

您不想测试您的
包中是否有多个物品。测试该包中是否有任何物品:

def equip(item):
    x = True
    while x == True:
        if len(bag_sword) > 1:
            print "You can't have 2 weapons equipped!"
            break
        if len(bag_chest) > 1:
            print "You can't have 2 chestplates equipped!"
            break
        if len(bag_gloves) > 1:
            print "You can't have 4 gloves equipped!"
            break
        if len(bag_helmet) > 1:
            print "You can't have 2 helmets equipped!"
            break

        if item == "iron sword" and "iron sword" in bag:
            print "\nYou equip the Iron Sword"
            bag.remove("iron sword")
            bag_sword.append("iron sword")
            break

因为您在添加第二件武器之前正在进行测试。

整个代码都是胡说八道。 首先,您处理的是列表,而不是字典

Python中没有“break”关键字。在Python中,存在if、elif和else关键字

item是在函数中传递的参数

关键字len(['item','two']) 作为结果集2给出, 列表只有值,元素按列表中的数字获取

例如: mylist=['hello','world']

打印mylist[0]结果为“hello”

让自己更加熟悉内置类型:

以下是一些示例代码:

if bag_sword:  # true if not empty
    print "You can't have 2 weapons equipped!"
    break

整个代码都是胡说八道。 首先,您处理的是列表,而不是字典

Python中没有“break”关键字。在Python中,存在if、elif和else关键字

item是在函数中传递的参数

关键字len(['item','two']) 作为结果集2给出, 列表只有值,元素按列表中的数字获取

例如: mylist=['hello','world']

打印mylist[0]结果为“hello”

让自己更加熟悉内置类型:

以下是一些示例代码:

if bag_sword:  # true if not empty
    print "You can't have 2 weapons equipped!"
    break

我忽略了一段时间,因为我不知道它是什么,但我一直在阅读更多关于Python的内容,这非常有帮助,谢谢。我忽略了一段时间,因为我不知道它是什么,但我一直在阅读更多关于Python的内容,这非常有帮助,谢谢。