整数列表的最大值/最小值(不是最小值/最大值)(包括负数)

2024-10-02 08:27:08 发布

您现在位置:Python中文网/ 问答频道 /正文

(我找不到任何使用负整数的最小值/最大值示例。)

我试图写一个简单的程序,将发现“最大”和“最小”的3个用户定义的整数。如果我只想找到最小值和最大值,这就太容易了

我想我被要求写一个程序,找出这些数字绝对值的最小值/最大值,然后记住产生最大值/最小值的数字,即使它是负数。 这听起来有点复杂,但这是一个入门课程。有人能告诉我这个问题最简单的解决办法是什么吗

当前我的程序只找到最小值/最大值:

print("This program will find the \"biggest\" \n"
      "and \"smallest\" of three integers. \n"
      "Please enter Num1: ")
while True:
  try:
     nNum1 = int(input())
  except ValueError:
     print("Please enter an integer. \n")
     continue
  else:
     print("You have entered " + str(nNum1) + ". \n")
     break
print("Please enter Num2: ")
while True:
  try:
     nNum2 = int(input())
  except ValueError:
     print("Please enter an integer. \n")
     continue
  else:
     print("You have entered " + str(nNum2) + ". \n")
     break
print("Please enter Num3: ")
while True:
  try:
     nNum3 = int(input())
  except ValueError:
     print("Please enter an integer. \n")
     continue
  else:
     print("You have entered " + str(nNum3) + ". \n")
     break

nMin = min(abs(nNum1), abs(nNum2), abs(nNum3))
print("The *smallest* of these three numbers is " + str(nMin) + ". \n")
nMax = max(abs(nNum1), abs(nNum2), abs(nNum3))
print("The *largest* of these three numbers is " + str(nMax) + ". \n")

Tags: of程序trueabsintthreeprintenter
1条回答
网友
1楼 · 发布于 2024-10-02 08:27:08

只需使用^{}abs作为键函数,最小的数字将是结果列表的第一项,而最大的数字将是最后一项

>>> a = [-5, -8, 2]
>>> sorted(a, key=abs)[0]
2
>>> sorted(a, key=abs)[-1]
-8
>>>

相关问题 更多 >

    热门问题