添加整数时变量不变

2024-05-23 23:16:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了这个代码,当你摘一个蓝莓,你的蓝莓停留在一个,我不知道为什么。我希望用户获得多个蓝莓,但它似乎停留在一个

def blueberryfound(blueberries):
    print("        .-~~~~-.")
    print("       /  ( ( ' \ ")
    print("      | ( )   )  | ")
    print("      \ ) ' }  / /")
    print("       \,,,,,,,,/")
    leaveorpick = input("Enter P to pick or L to leave the blueberry!").lower()
    if leaveorpick == "p":
        print("")
        print("You chose to keep the berry.")
        blueberries = blueberries + 1
        print("You now have",blueberries,"blueberries.")

Tags: ortheto代码用户youinputdef
1条回答
网友
1楼 · 发布于 2024-05-23 23:16:06

integer变量是不可变的,这意味着

def blueberryfound(val):
    val = val + 1

blueberries = 1
blueberryfound(blueberries)

不起作用。只有函数内部的val会递增,外部变量blueberries不会更改。相反,你可以

def blueberryfound(val):
    return val + 1

blueberries = 1
blueberries = blueberryfound(blueberries)

或者,您可以使用面向对象的方法,其中player对象有许多属性,blueberries是其中之一。然后,您的函数可以操纵给定播放器实例的所有属性

class Player(object):
    blueberries = 0

def blueberryfound(player):
    player.blueberries += 1

player = Player()
blueberryfound(player)

相关问题 更多 >