python-3.x 查找四个用户输入的最大数字

wljmcqd8  于 2022-12-15  发布在  Python
关注(0)|答案(4)|浏览(162)

我正在学习python。我需要知道,这也是获得输出的有效方式吗?下面的代码应该给予我最高的用户输入(四个数字中的最高数字)

num1 = int(input("Enter number 1: ")) #user 1
num2 = int(input("Enter number 2: ")) #user 2
num3 = int(input("Enter number 3: ")) #user 3
num4 = int(input("Enter number 4: ")) #user 4

allNum = {num1, num2, num3, num4}
print("All numbers: ",allNum)
if(num1 > num2 and num1 > num4) :
    print("User 1's number  is greater")  
elif(num2 > num3) :
    print("User 2's number  is greater")
elif(num3 > num4) :
    print("User 3's number  is greater")
elif(num4 > num2) :
    print("User 4's number  is greater")
else :
    print("done")
4dbbbstv

4dbbbstv1#

使用当前直接比较每个数字的方法,您可以执行以下操作:

if num1 > num2 and num1 > num3 and num1 > num4:
    ...
elif num2 > num1 and num2 > num3 and num2 > num4:
    ...
...

幸运的是,有一种更简单的方法,你可以使用Python内置的max()函数,它返回序列的最大值,看起来像这样:

maximum = max(num1, num2, num3, num4)
if num1 == maximum:
    ...
elif num2 == maximum:
    ...
...

上面的方法很好用,但是如果你想使用5个数字呢?6个呢?20个呢?你添加的数字越多,它就越乱。每增加一个数字,你就需要添加另一个elif语句,这会变得很乏味。所以我也建议使用一些循环和字典来收集、存储和比较用户输入。

>>> nums = {}
>>> for i in range(4):
    nums[i+1] = int(input(f"Enter number {i+1}: "))

    
Enter number 1: 4
Enter number 2: 2
Enter number 3: 8
Enter number 4: 10
>>> print("All numbers:", list(nums.values()))
All numbers: [4, 2, 8, 10]
>>> for k, v in nums.items():
    if v == max(nums.values()):
        print(f"Number {k} is greater")
        break

    
Number 4 is greater
>>>
vddsk6oq

vddsk6oq2#

尽量让它简单易懂

num1 = int(input("Enter number 1: "))
num2 = int(input("Enter number 2: "))
num3 = int(input("Enter number 3: "))
num4 = int(input("Enter number 4: "))

#Store all numbers in list. 
allNum = [num1, num2, num3, num4]

#Get the max value of all numbers in that list
maxNum = max(allNum)

#To get the position of this value, use list.index() function
maxIndex = allNum.index(max(allNum))

#Lets say your numbers are [3,5,4,1]. .index() would give you "1" because the index starts from 0 to length of list -1. 
#In this case, it would be 0-3. So, if you want `Number 2` is greater instead, then you just add 1 to the maxIndex.

print("Greatest number is number "+str(maxIndex+1))
l0oc07j2

l0oc07j23#

您可以使用indexmax来解决此问题。

a = []
for i in range(4):
    a.append(int(input(f"Enter number {i+1}: ")))
print(f"Number {a.index(max(a)) + 1} is greater")
rjjhvcjd

rjjhvcjd4#

This is the code i wrote .. I'm just learning python

n1 = int(input("Enter 1st Number: "))
n2 = int(input("Enter 2nd Number: "))
n3 = int(input("Enter 3rd Number: "))
n4 = int(input("Enter 4th Number: "))

if (n1>n2) and (n1>n3) and (n1>n4):
    print("n1 is Greater")
elif (n2>n1) and (n2>n3) and (n2>n4):
    print("n2 is Greater")
elif (n3>n2) and (n3>n1) and (n3>n4):
    print("n3 is Greater")
else:
    print(n4,"is Greater")

相关问题