如何用python让变量不断更新

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

我正在尝试用 python 制作一个基于答题器的游戏,并且我正在尝试进行升级。

def silvercoinX():
   global x
   x=1
   return x
x = silvercoinX()
def silvercoinYUpdate():
   y=10
   y += round(y*1.33)
   return y
y = silvercoinYUpdate()
silvercoinYUpdate()
print(round(y))
silvercoinYUpdate()
print(round(y))
silvercoinYUpdate()
print(round(y))

输出

23

23

23

我正在尝试输出

23

31 # (this being 23*1.33)

41 # (this being 31*1.33)

X 是您点击时获得的金额

python function variables
2个回答
0
投票

注意这是恒定的

def silvercoinYUpdate():
   y=10
   y += round(y*1.33)
   return y
# same as
def silvercoinYUpdate():
   y = 10  # you reset it here
   y = 10 + round(10*1.33)
   y = 10 + round(13.3)
   y = 23
   return 23

您可能想要这样的东西:

def silvercoinYUpdate(y=10):
   y += round(y*1.33)
   return y
y = silvercoinYUpdate() # 23
y = silvercoinYUpdate(y) # 31

y=10
def silvercoinYUpdate():
   global y
   y += round(y*1.33)
   return y
silvercoinYUpdate() # 23
silvercoinYUpdate() # 31

0
投票

首先,您正在打印所有 y 值,不确定这是否是您想要做的。因为,您调用函数 silvercoinYUpdate() 三次,所以该函数所做的就是用 round(10*1.33) 添加 10,每次打印都会得到 23。

如果你想返回的话,你甚至不需要x在这里

23
31
41

只需在函数 silvercoinYUpdate() 之外声明 y 即可。

    y = 10
    def silvercoinYUpdate():
       global y
       if y <= 10:
          y += round(y * 1.33)
       else:
          y = round(y*1.33)
       return y
    silvercoinYUpdate()
    print(y)
    silvercoinYUpdate()
    print(y)
    silvercoinYUpdate()
    print(y)

如果不使用 if else 语句,您将得到输出:

23
54

等等。我假设您将使用 10 作为初始值。否则相应地设置你的 if-else 语句。

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