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

Python自定义max_num函数接收input输入时无法正确返回最大值

问题原因

Python内置的input()函数接收的所有用户输入,默认返回值都是字符串类型,不会自动转换为整数、浮点数这类数值类型。
你的代码直接把input()拿到的三个字符串传入max_num函数,此时函数内执行的>=比较遵循字符串比较规则:逐位对比每个字符的ASCII编码值,和数值大小的比较逻辑完全不同,自然无法得到正确的最大值结果。
举个典型错误场景:如果你依次输入10、2、3,字符串比较逻辑下'10' < '2'(因为首字符'1'的ASCII码小于'2'的ASCII码),最终会错误返回2作为最大值。

修复方案

接收用户输入后,显式将输入值转换为数值类型即可:

  • 仅需要支持整数输入时,用int()做类型转换
  • 需要兼容小数输入时,用float()做类型转换

修复后可正常运行的代码如下:

def max_num(num1, num2, num3):
    if num1 >= num2 and num1 >= num3:
        return num1
    elif num2 >= num1 and num2 >= num3:
        return num2
    else:
        return num3


# 此处以int整数转换为例,需要支持小数可将int替换为float
first = int(input('first number '))
second = int(input('second number '))
third = int(input('third number '))
print(max_num(first, second, third))

内容的提问来源于stack exchange,提问作者Youssef Elsaid hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:33:15