0
How does it works
Just going through some lessons on python course and I get stuck at this code Nums=(55,44,33,22) print (max(min(Nums[:2],abs(-42)))) I Don't Understand how it works I only know it prints 44 because (max(min(Nums[:2]))) But it why it's ignore abs(-42)
4 Respuestas
+ 3
Are you sure you copied the code correctly. In particular the parentheses.
If this is the code
print(max(min(Nums[:2]), abs(-42)))
the explanation would be as follows:
1. The minimum of the first two values of Num is 44.
2. The maximum of 44 and 42 is 44.
+ 3
i think this needs a bit more explanations:
the initial code that is shown here does not work properly if you try to run it.
the function min() gets 2 arguments: (min() function can have multiple arguments, but must be of same data type)
Nums[:2] which is => a tuple: (55, 44)
abs(-42) which is => an integer: 42
if they are now used as arguments for the min() function, it creates an exeption, because data type is not the same
.
so this expression 'abs(-42)'' should be converted to a tuple: '(abs(-42),)''
as both arguments are now tuples, the function min() works properly: 42 is the smallest number out of 55, 44, 42
now max() function is used and gets 42 as argument, and returns also 42. getting just only one number, max() function has no effect. so the result is 42.
Nums=(55,44,33,22)
# next 2 lines gives the same result
print (max(min(Nums[:2],(abs(-42),))))
print (*min(Nums[:2],(abs(-42),)))
0
Oh I got it I didn't notice that abs(-42) is inside max() i got it now thanks
0
I checked. As I suspected the parentheses were wrong and the code is actually
print(max(min(Nums[:2]), abs(-42)))
(It's the last question of the module quiz 12.1 in the Python Data Structures course.)