You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

制作等级系统时仅能升级一次,后续无法正常运行的问题求助

问题分析与修复方案

核心问题

你的等级系统仅能完成一次升级,根源在于升级检查逻辑只在程序启动时执行了一次——后续用户通过输入"1"增加经验后,没有再次触发升级判断,导致经验不会自动扣除、等级无法继续提升。另外,经验需求计算使用浮点除法,可能引发精度误差。

代码修复

将升级检查逻辑封装为可重复调用的结构,每次增加经验后立即触发升级判断,同时改用整数运算避免浮点问题:

level = 1
crexp = 260
reqxp = 100

def check_upgrade():
    global level, crexp, reqxp
    while crexp >= reqxp:
        level += 1
        crexp -= reqxp
        # 用整数运算替代浮点计算,避免精度误差
        reqxp = reqxp * 6 // 5  # 等价于 reqxp * 1.2,整数运算更稳定

# 初始化时先执行一次升级检查
check_upgrade()

while True:
    pinput = input()
    if pinput == "1":
        crexp += 60
        # 增加经验后立即检查是否满足升级条件
        check_upgrade()
    elif pinput == "2":
        print(level)
    elif pinput == "3":
        print(crexp)
    elif pinput == "4":
        print(reqxp)
    elif pinput == "5":
        break

修复说明

  • 封装check_upgrade()函数,让升级逻辑可以在初始化和每次经验增加后重复调用,确保只要经验达标就会持续升级。
  • 用reqxp * 6 // 5替代浮点乘法,保证经验需求始终是整数,避免后续>=比较时出现不符合预期的精度问题。
  • 将无限循环从while 3 > 2改为更直观的while True,提升代码可读性。

内容的提问来源于stack exchange,提问作者Galaxycrasher 38

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:48:14