Python实现获取5个输入数字的最小值与第二最小值需求
修改Python程序以输出最小值和第二最小值
方法一:基于遍历逻辑维护双最小值变量
延续你原代码的遍历思路,通过两个变量分别记录最小值和第二最小值,同时处理重复输入的场景:
train = [] # 用无穷大初始化,避免输入值大于100时出错 min1 = float('inf') min2 = float('inf') for i in range(5): num = int(input("Enter a number: ")) train.append(num) for carriage in train: if carriage < min1: # 当前数比最小值更小,原最小值降级为第二最小值 min2 = min1 min1 = carriage elif carriage < min2 and carriage != min1: # 当前数小于第二最小值且不等于最小值,更新第二最小值 min2 = carriage print(f"Minimum is {min1}") print(f"Second minimum is {min2}")
方法二:利用排序简化逻辑
如果追求代码简洁,可先对列表排序,再提取对应元素,同时兼容全重复值的情况:
train = [] for i in range(5): train.append(int(input("Enter a number: "))) train_sorted = sorted(train) min1 = train_sorted[0] min2 = min1 # 找到第一个不等于最小值的元素作为第二最小值 for num in train_sorted[1:]: if num != min1: min2 = num break print(f"Minimum is {min1}") print(f"Second minimum is {min2}")
若你能确保输入不会出现全重复值,也可直接用min2 = train_sorted[1]简化代码,但上述写法能适配所有输入场景。
内容的提问来源于stack exchange,提问作者user16988396
相关产品推荐
相关产品推荐

