Python定义函数时如何使用input函数获取输入的数值参数
实现方法说明
首先需要注意:input() 函数默认返回字符串类型,必须先转换为数值类型(整数int或浮点数float)才能传入函数做数值比较,否则会按字符串编码规则排序得到错误结果。
另外你原有函数有两个可以优化的点:
- 不要用
max作为自定义函数名,会覆盖Python内置的max()函数,导致后续调用内置方法出错 - 现有逻辑未覆盖两个值相等且同为最大值的场景(如5、5、3),且三个值相等时会返回布尔值
True而非数值,建议调整逻辑
方法1:逐个提示用户输入3个数字
代码实现如下:
# 修正后的求三个数最大值函数 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 # 逐个获取用户输入并转成浮点数 a = float(input("请输入第一个数字:")) b = float(input("请输入第二个数字:")) c = float(input("请输入第三个数字:")) # 调用函数输出结果 print("三个数的最大值是:", max_num(a, b, c))
方法2:用户一次性输入3个数字(空格分隔)
如果不想分三次输入,可以一次性读取后拆分转换:
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 # 读取输入后拆分转成数值 input_content = input("请输入三个数字,用空格分隔:") n1, n2, n3 = map(float, input_content.split()) print("三个数的最大值是:", max_num(n1, n2, n3))
注意事项
- 如果要限制用户输入整数,把代码里的
float()替换为int()即可 - 可以自行加输入校验逻辑,避免用户输入非数字内容报错
内容的提问来源于stack exchange,提问作者Padmasree perumal
相关产品推荐
相关产品推荐

