Python 输入三个数,输出最大值

65 阅读1分钟

04. 输入三个数,输出最大值

def get_num(prompt): while True: try: return float(input(prompt)) except ValueError: print("please input a num")

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

if name=="main": num1=get_num("please input num1 ") num2 = get_num("please input num2 ") num3 = get_num("please input num3 ") print(f'最大值是{get_max(num1,num2,num3)}')

好的, 那我输入的是 3,5,9 输出结果是9.0 确不是9 我希望输出的值永远不要改变输入的值

ChatGPT 说:

非常棒的问题!你说的这个现象,确实是很多初学者容易忽略的:

🔍 问题分析:

你在 get_num() 中使用了:

python
复制
return float(input(prompt))

无论你输入的是 359,都会被转换为 float,所以输出是 9.0

🎯 你的目标:

✅ 输入是整数,就输出整数;输入是小数,就保留小数。

❌ 不要一律强转成 float

✅ 解决方案:智能判断是 int 还是 float

我们可以改写 get_num() 函数,让它自动识别用户输入的是整数还是小数:

✅ 最推荐写法:

python
复制
def get_num(prompt):
    while True:
        s = input(prompt)
        try:
            if '.' in s:
                return float(s)
            else:
                return int(s)
        except ValueError:
            print("❌ 输入无效,请输入一个数字!")