发生异常:TypeError 不支持的操作数类型 -:'int' 和 'list'

Exception has occurred: TypeError unsupported operand type(s) for -: 'int' and 'list'

尝试制作基本文本地下城游戏时遇到以下错误:

“发生异常:TypeError - 不支持的操作数类型:'int' 和 'list'"

以下错误来自这一行:MonsterHealth = Monster_One_Health - Move_Chooser

import random, math, sys, os, os.path, time

#These Variables are for the Player's Move DMG
Slash = 3.1
Dash = 2.5
Slam = 5

vars = [Slash,Dash,Slam]

Move_Chooser = random.sample(vars, 1)

MonsterHealth = Monster_One_Health - Move_Chooser

    if vars == 2.5:
        print("Player Has Used Dash Attack")
        print("Monster[1] has taken 2.5 Hearts of DMG")
        time.sleep(2)
        print(MonsterHealth)

    elif vars == 3.1:
        print("Player has used Slash Attack")
        print("Monster[1] has taken 3.1 Hearts of DMG")
        time.sleep(2)
        print(MonsterHealth)
    
    elif vars == 5:
        print("Player has used Slam Attack")
        print("Monster[1] has taken 5 Hearts of DMG")
        time.sleep(2)
        print(MonsterHealth)

变量Move_Chooserlist的类型。 如错误消息所述,您无法对 list 和 int 操作运算符 -,下次请包含您的所有代码,这样我们就不需要“猜测”您的代码,即使这次很明显.

看来你没有正确使用,random.sample。因为您只需要一个元素,所以使用以下内容:

Move_Chooser = random.choice(vars)

random.choice 会给你一个列表中的随机元素。另一方面,random.sample 将 return 一个列表,这可能是您遇到的错误。

您的一个建议是使用另一个名称而不是 vars,因为这是一个 python 内置函数 (see the docs)。