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

Python技术问询:如何仅用if和else编写程序找出四个输入的最小值

问题分析与解决

先看你两个程序的报错原因

第一个程序的错误

  1. 输入报错:ValueError是因为你输入的内容不是合法整数,比如输入了字母、汉字或者带小数点的数,int()只能转换纯整数格式的字符串。
  2. 逻辑漏洞与规则违反:你用了elif,违反题目要求;另外如果有多个数值相等(比如x和b都是最小值),所有if/elif的条件都不满足,会错误输出d。

第二个程序的错误

你把变量赋值逻辑搞反了,n1=int是把n1指向了int这个类型对象,不是存储a或b的数值。正确的写法应该是if a < b: n1 = a else: n1 = b,而不是a=n1。后面重复赋值n1=int,最后比较的是两个类型对象,自然触发TypeError。

符合要求的正确代码

按照要求只用if和else,不用elif、min、list,思路是两两逐步比较,保留当前最小值:

# 获取四个输入(如果需要支持小数,把int改成float即可)
a = int(input())
b = int(input())
c = int(input())
d = int(input())

# 第一步:找出a和b里的较小值
if a < b:
    current_min = a
else:
    current_min = b

# 第二步:把当前最小值和c比较,更新最小值
if c < current_min:
    current_min = c
else:
    # 当前最小值更小,不用修改
    pass

# 第三步:把当前最小值和d比较,更新最小值
if d < current_min:
    current_min = d
else:
    pass

print(current_min)

或者更简洁的写法(去掉pass,用反向判断,同样符合规则):

a = int(input())
b = int(input())
c = int(input())
d = int(input())

# 比较a和b
if a < b:
    temp = a
else:
    temp = b

# 比较temp和c
if temp > c:
    temp = c

# 比较temp和d
if temp > d:
    temp = d

print(temp)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:15:31