I am having trouble understanding this code: Specifically, what each line does.
Here is what I think I know.
1. Defines a function maximumValue with positional parameters.
2. Assigns a variable to the value of x
3. Uses the if structure and comparison operator to create a condition, to assign higher value or number to the maximum variable.
4. Assign y(greater value) to the maximum variable.
5. Uses the if structure and comparison operator to create a condition, to assign higher value or number to the maximum variable.
6. Assign z(greater value) to the maximum variable.
7. Return the maximum value or variable to the function.
8. Get user input, convert to integer and assigned to variable a.
9. Get user input, convert to integer and assigned to variable b.
10. Get user input, convert to integer and assigned to variable c.
11. Prints a message and the maximumValue function which arguments are assigned
to the positional parameters.
I am not sure I am getting this right, I really need a better explanation as to what is happening in each line.
Practically, I understand it, theoretically, I am not sure.
def maximumValue( x, y, z ):
maximum = x
if y > maximum:
maximum = y
if z > maximum:
maximum = z
a = int( raw_input( "Enter first integer: " ) )
b = int( raw_input( "Enter second integer: " ) )
c = int( raw_input( "Enter third integer: " ) )
print "Maximum integer is:", maximumValue( a, b, c )
What the function in the code does is as follows:
- first it checks if y > x
- then checks if z > y
The flaw however is that it only checks one way, it never bothers to check if x > y, and doesn't even at all compare y and z!
There's a much simpler version of this that DOES do what's intended:
args = list(args)
print maximum_value(1, 6, 3) # will print 6
print maximum_value(129, 934, 4, 284, 1) # will print 934
What this does is it takes an infinite number of parameters and will sort whatever is inside the parameters ascending, then reverses it (resulting in descending order) and obviously returning the first node will return the biggest value from the parameters
Also keep in mind that the function naming convention is function_name rather than functionName