如何循环和更新Python中的变量



我正在制作一个经济模拟器。我试图不断循环和获得/失去的钱,但它不显示更新的值。它只显示默认值和变量。我不太擅长数学变量。我已经相当成功地循环了它,尽管我认为它每次循环时都会重置变量。

import time
money = 2
moneyfo = "{:.2f}".format(money)
boughtw = 0
woodsalea = 1 
woodinv = 0
woodprice = (woodsalea * 2)
woodpricefo = "{:.2f}".format(woodprice)
amntw = 0
buywcost = 0
foodinv = 0
foodsalea = 1
foodprice = (woodsalea * 2)
foodpricefo = "{:.2f}".format(foodprice)
amntf = 0
buyfcost = 0
def start():
print ("Products are wood food and stone")
print ("""Prices are wood """ + woodpricefo + " food " + foodpricefo + " stone")
def buysale():
bos = input("""Buy, Sell or Check Inventory?
""")
if bos == ("Buy"):
btyp = input("""Wood, Food, Or Stone?
""")
if btyp == ("Wood"):
amntw = input("""0-100
""")
buywcost = float(amntw) * woodprice
buywcostfo = "{:.2f}".format(buywcost)
print ("That will be $" + buywcostfo + " you have " + str(money) + " dollars would you still like to buy?")
buywyn = input("""Yes Or No
""")
if buywyn == ("Yes") and money >= buywcost:
print("You have bought Wood")
boughtw = amntw
boughtw = woodinv
boughtw * woodprice - money
woodsalea = boughtw
print (woodsalea) 
print (boughtw) 
print (money)
start()
buysale()
if bos == ("Sell"):
styp = input("""Wood, Food, Or Stone
""")
if styp == ("Wood"):
amntw = input("""0-100
""")
start()
buysale()

我很确定你的问题是在以下一点:

boughtw = amntw
boughtw = woodinv
boughtw * woodprice - money
woodsalea = boughtw

所以遵守这些做什么:开始时:bought = 0, amntw的值取决于用户输入,woodinv = 0, woodprice = 2, money = 2, woodsalea = 1

第一行将amntw(用户输入)的值赋给boughtw (0), boughtw现在具有用户输入的值。第二个类似于将woodinv(0)的值赋给bought(用户输入)。现在买到的值又变成了0。第三行计算值-2,但没有将其赋值给任何东西。第4行将buytw(0)的值赋给woodsalea(1)。woodsalea现在的值为0。

我很确定你想做的更像是:

boughtw = float(amntw)
woodinv = woodinv + boughtw
money = money - boughtw * woodprice
woodsalea = boughtw //not entirely sure about this line. I'm not sure what you mean to track with woodsalea

你的代码还有很多其他问题。如果人们没有完全按照你的期望输入,或者试图遵循你还没有实现的路径(比如购买除Wood以外的任何东西),它将崩溃,但以上应该至少解释了为什么从一次运行到下一次运行似乎没有任何变化。

最新更新