python - 如果 3 个值不能是不同的值,则查找最大值、最小值和中间值
问题描述
如果所有这三个值都可以是不同的值,那么这是我关于查找最大值、最小值和中间值的代码片段。如果其中一些可以是相同的值怎么办,我怎样才能找到最大值,最小值和中间值?
num1 = int(input("Enter 1. number : "))
num2 = int(input("Enter 2. number : "))
num3 = int(input("Enter 3. number : "))
print("Numbers\n1.number : {}\n2.number : {}\n3.number : {}".format(num1, num2, num3))
def thebiggest(num1, num2, num3):
if (num1 >= num2) and (num1 >= num3):
largest_num = num1
elif (num2 >= num1) and (num2 >= num3):
largest_num = num2
else:
largest_num = num3
print("The largest number : ", largest_num)
def thesmallest(num1, num2, num3):
if (num1 <= num2) and (num1 <= num3):
smallest_num = num1
elif (num2 <= num1) and (num2 <= num3):
smallest_num = num2
else:
smallest_num = num3
print("The smallest value : ", smallest_num)
def middle(num1, num2, num3):
if (num1 <= num2 and num2 <= num3):
middle_value = num2
elif (num2 <= num1 and num1<= num3):
middle_value = num3
else:
middle_value = num1
print("Middle value : ", middle_value)
thebiggest(num1, num2, num3)
thesmallest(num1, num2, num3)
middle(num1, num2, num3)
解决方案
将数字列在列表中会让您受益匪浅。在这种特殊情况下,您只有 3 个值,您可以为每个值存储一个变量,但想象一下有数百个数字。
如果放入数组中,您可以使用内置方法轻松解决此任务,即,max(list)
或min(list)
。我猜没有内置方法可以找到中值,因此您可以简单地对列表进行排序并获取 index 处的值1
。
您还可以使用 f 字符串使代码更紧凑和干净。
这是编写代码的一种可能方法:
nums = []
for i in range(3):
nums.append(int(input(f"Enter {i+1}. number : ")))
print(f"Numbers\n1.number : {nums[0]}\n2.number : {nums[1]}\n3.number : {nums[2]}")
sorted_nums = sorted(nums)
print (f"The largest number : {sorted_nums[2]}")
print (f"The smallest value : {sorted_nums[0]}")
print (f"Middle value : {sorted_nums[1]}")
推荐阅读
- android-recyclerview - RecyclerView、DataBinding、Retrofit2:E/RecyclerView:没有附加适配器;跳过布局
- python - 函数的自定义“自我”表达式
- android-studio - 如何简单地克隆应用程序
- rust - 如何在 Solana 智能合约中制作“代币计数器”?
- java - Guice,从属性中获取值时的类型转换
- npm - 如何通过语义发布取消发布错误的版本并使用正确的版本重新发布?
- javascript - 在 PhaserJS 中以 .png 格式下载像素艺术图
- adsense - Google AdSense 自动广告取决于屏幕宽度
- database - '列'CustID'不允许空值。' 尝试写入访问数据库 VB.net 时出错
- javascript - 如何在 onClick 事件 Nextjs 中暂停/启动 GSAP 动画