代码之家  ›  专栏  ›  技术社区  ›  Bishnu Dudhraj

python函数查找三个数字的最大值并比较数字

  •  -2
  • Bishnu Dudhraj  · 技术社区  · 6 年前

    此函数用于查找最大数量。我还需要比较数字,如果输入的是相同的数字,则显示数字是相同的。正如我所采取的 a=2 , b=8 , c=8 最多三个数字 8 程序也应该显示 b c 都一样。

    def biggest(a,b,c):
        if a>b and a>c :
            print("Biggest Number=",a)
        elif b>a and b>c:
            print("Biggest Number=",b)
        elif a==b:
            print("a=b") 
        elif a==c: 
             print("a=c")
        elif b==c:
            print("b=c")
        else:
            print("Biggest Number=",c)    
    biggest(2,8,8)
    
    5 回复  |  直到 6 年前
        1
  •  1
  •   Laurent H. chthonicdaemon    6 年前

    大量使用 if / elif / else 将导致阅读和维护代码的困难。我建议你一个更好的解决方案,加上注释以便你能理解:

    def biggest(a, b, c):
        # Define a dictionary d with strings 'a','b','c' as keys to associate with values
        d = {'a': a, 'b': b, 'c': c}
        # Find the maximum value
        maxValue = max(d.values())
        # Gather all keys corresponding to max value into list
        maxLetters = [k for k,v in d.items() if v == maxValue]
        # Format and print the result
        print("Biggest number is ", maxValue, " (", "=".join(maxLetters), ")", sep="")
    
    biggest(1,2,3)  # Biggest number is 3 (c)
    biggest(1,2,2)  # Biggest number is 2 (b=c)
    biggest(2,2,2)  # Biggest number is 2 (a=b=c)
    
        2
  •  4
  •   Debabrot Bhuyan    6 年前

    这可以通过使用 阿尔茨海默病 . args允许我们向函数传递可变数量的参数。 例如

    print( max( *[ 1, 10, 3] ) )
    

    有用链接:
    1。 http://thepythonguru.com/python-args-and-kwargs/

        3
  •  1
  •   L_Church    6 年前

    如果您想坚持代码的工作方式和描述方式,只需将所有“elif”语句更改为新的ifs。这使得您可以检查所有条件,而不是让它在找到可以解决的条件时立即中止。

    def biggest(a,b,c):
        if a>b and a>c :
            print("Biggest Number=",a)
        if b>a and b>c:
            print("Biggest Number=",b)
        if a==b:
            print("a=b") 
        if a==c: 
             print("a=c")
        if b==c:
            print("b=c")
        if a<b and a<c:
          print("Biggest Number=",c)  
    biggest(8,1,1)
    

    这可能是做得更干净更好,但这是你的工作学习。快乐编码

        4
  •  0
  •   Bishnu Dudhraj    6 年前
    def biggest(a,b,c):
    if a>b and a>c :
        print("Biggest Number=",a)
    elif b>a and b>c:
        print("Biggest Number=",b)
    else:
        print("Biggest Number=",c)
    
    if a==b:
            print("a=b") 
    
    if a==c: 
            print("a=c")
    if b==c:
            print("b=c")
    if a==b==c:
        print("a=b=c")
    
    biggest(2,5,8)
    biggest(2,8,8)
    biggest(8,8,8)
    

    用于比较、最大值和相等数。

        5
  •  0
  •   Ninja_c    5 年前

    如果我错了,请纠正我,但似乎,即使没有明确说明,问题的关键是写一个函数,以便找到三个数字中最大的一个 没有 使用max()内置函数。 这可以通过以下方法完成:

    def biggest(x,y,z):
        if x>=y and x>=z:
            print(x)
        elif y>x and y>z:
            print(y)
        else:
            print(z)

    快乐编码:)