为什么多次运行时“总”值不会更新?

“总计”在我第一次运行该函数时发生了变化,但没有返回新的总计值,所以当我再次运行它时,它的值与我第一次运行它之前的值相同吗?


total = card[1].value


def hit(total):

    #print (str(hit.counter))

    print("You draw the " + string(card[hit.counter]))

    total = total + card[hit.counter].value

    print(str(total))

    hit.counter += 1

    return hit.counter

    return total

该函数在此处调用:


choice = raw_input("\n1. Hit\n2. Stay\n")

    if (choice == "1"):

        hit(total)

这是同样的问题简化


x = 1

def call(x):

    x = x + 1

    print x

    return x

call(x)

每次运行它都会输出 2 并且不会更新“x = x + 1”的新值


慕虎7371278
浏览 76回答 3
3回答

MMTTMM

您有一个名为total. 您还有一个名为total.当您在函数中时,局部变量total会影响外部全局total变量,因此对函数内部的更新只会更新局部变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python