Python等级系统运行异常:预期升级所需经验值不符问题排查
问题排查与修复
你的问题出在初始的lvlNext赋值上,我们一步步拆解代码执行流程就能明白原因:
- 你初始化了
lvlNext = 50,也就是当前1级升级到2级需要50点经验; - 之后给
xp加了10,此时xp = 10,显然10远小于50,所以不会进入while循环的升级逻辑; - 最后输出的
lvlNext还是你最初设置的50,但你预期的是40——这完全是初始值设置错误导致的。
修复方案
只需要把初始的lvlNext值从50改成40即可:
if "comb" not in inventory: print ("You went over to the table and picked up the comb,") print ("it's been added to your inventory.") add_to_inventory("comb") print("") print ("Inventory: " + str(inventory)) lvl = 1 xp = 0 lvlNext = 40 # 这里修改为40,匹配你的预期 xp= xp+10 while xp >= lvlNext: lvl += 1 xp = xp - lvlNext lvlNext = round(lvlNext * 1.5) print ('level', str(lvl)) print ('Exp:', str(xp)) print ('Next:', str(lvlNext))
运行这段代码后,输出就会符合你的预期:
level 1 Exp: 10 Next: 40
另外补充一句:如果之后你希望升级所需经验是递增的(比如2级升3级需要60,3级升4级需要90等),当前的lvlNext = round(lvlNext *1.5)逻辑是没问题的,只是初始值需要匹配你的预期。
内容的提问来源于stack exchange,提问作者Jtob
相关产品推荐
相关产品推荐

