如何检查号码是否相等,然后打印最大号码

时间:2019-01-15 00:29:34

标签: python int max

在本练习中,我需要创建一个打印最大数量的三个数字的函数,如果有两个相等的数字,则应返回一条消息。

我做到了:

var currentTime = new Date(),
      hours = currentTime.getHours(),
      minutes = currentTime.getMinutes();
    if (minutes < 10) {
     minutes = "0" + minutes;
  }
    document.write(hours + ":" + minutes)

但是我发现 len 不适用于 int ,而且我也知道我可以使用 elif 尝试所有可能性,但是,如果我有更多参数,那将更加困难。有什么办法可以解决吗?

谢谢

6 个答案:

答案 0 :(得分:2)

使用列表理解,然后使用len作为列表:

def max_number(*nums):
  m = max(nums)
  if len([i for i in nums if i == m]) > 1:
    return "It's  a tie"
  return max(nums)

答案 1 :(得分:1)

您可以将数字传递给set构造函数,并检查集合的长度是否等于数字的数量:

def max_number(*numbers):
    if len(set(numbers)) == len(numbers):
        return max(numbers)
    return "It's a tie"

答案 2 :(得分:0)

一个简单的解决方案:

def max_number(num1, num2, num3):
  m = max(num1, num2, num3)
  return m if [num1, num2, num3].count(m) == 1 else "It's  a tie"

答案 3 :(得分:0)

您可以使用heapq.nlargest来获取给定数字中最大的两个,如果它们相等,则视为平局:

from heapq import nlargest
from operator import eq

def max_number(*numbers):
    if eq(*nlargest(numbers, 2)):
        return "It's a tie"
    return max(numbers)

答案 4 :(得分:0)

另一种方法:

def max_number(num1, num2, num3):
    sorted_list = sorted([num1, num2, num3])
    if sorted_list[1] == sorted_list[2]:
        return "It's a tie"
    else:
        return sorted_list[2]

答案 5 :(得分:0)

您可以使用list.count方法来计算最大值的出现次数:

def max_number(*numbers):
    m = max(numbers)
    if numbers.count(m) > 1:
        return "It's a tie"
    return max(numbers)