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

Python数字小游戏中Print函数不输出输入表达式计算结果的问题

问题根源
  • input() 函数默认返回字符串类型,用户输入的算术表达式会被识别为普通文本,不会自动执行计算
  • 随机生成的获胜数字是整数类型,字符串与整数直接做等值判断永远返回False,因此得分逻辑永远无法触发
修复方案

你可以通过算术表达式解析+异常捕获的逻辑解决问题,修复后的代码如下:

import random
winning_number = random.randint(1, 1000)
allowed_numbers_single_digit = random.randint(1, 10)
allowed_numbers_single_digit2 = random.randint(1, 10)
allowed_numbers_single_digit3 = random.randint(1, 10)
allowed_numbers_single_digit4 = random.randint(1, 10)
middle_column_numbers = (10, 15, 20, 25)
right_column_numbers = (50, 75, 100)

double_digit_allowed = random.choice(middle_column_numbers) 
double_high_digits = random.choice(right_column_numbers)

print(f"""Number that we are looking for is {winning_number}. 
You may use {allowed_numbers_single_digit, allowed_numbers_single_digit2, allowed_numbers_single_digit3, 
             allowed_numbers_single_digit4, double_digit_allowed, double_high_digits}
 """)
input_content = input()
try:
    # 解析并计算输入的算术表达式,转换为整数
    calculated_result = int(eval(input_content))
    print(calculated_result)
    if winning_number == calculated_result:
        print('You got 10 points!')
    else:
        print('Sorry, no points for you')
except (SyntaxError, NameError, TypeError, ValueError):
    print('Invalid expression, please input valid arithmetic formula')
安全提示
  • 上述方案中使用的eval函数会执行任意输入的代码,仅适合个人/可信环境使用
  • 若需对外发布游戏,建议替换为专用的安全算术表达式解析工具,或自行实现仅支持数字和四则运算的解析逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:03