Python Forum
Not getting the return value - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Not getting the return value (/thread-28085.html)



Not getting the return value - rs74 - Jul-04-2020

Having some issues with return. Would like to get the return value (middle number) printed after "Middle number is ". Something obvious I presume but I just can't see it. :(

#still learning the basics

import random

def middle(number1,number2,number3):


		if number1 < number2 and number2 < number3 or number3 < number2 and number2 < number1:

			return number2

		elif number2 < number1 and number1 < number3 or number3 < number1 and number1 < number2:

			return number1

		else:

			return number3


for i in range(1):

  number1 = random.randint(20,100)

  number2 = random.randint(20,100)

  number3 = random.randint(20,100)

  print ("Three numbers:",number1,number2,number3)

  print ("Middle number is ",end = "")

middle(number1,number2,number3)



RE: Not getting the return value - ndc85430 - Jul-04-2020

You aren't printing the return value on line 33, so it's just thrown away. Did you mean to include the call to your function on line 31?


RE: Not getting the return value - rs74 - Jul-04-2020

(Jul-04-2020, 07:39 AM)ndc85430 Wrote: You aren't printing the return value on line 33, so it's just thrown away. Did you mean to include the call to your function on line 31?

Yes, but how to include the call on line 31? I want it to say Middle number is (example) 23.


RE: Not getting the return value - ndc85430 - Jul-04-2020

The same way as you're including variables on line 29: just by passing it as another value to print.


RE: Not getting the return value - menator01 - Jul-05-2020

Another way:
#! /usr/bin/env python3
from random import randint

num1 = randint(20, 100)
num2 = randint(20, 100)
num3 = randint(20, 100)

def middle(nums):
    for num in nums:
        if num != min(nums) and num != max(nums):
            return num
print(f'Three numbers: {num1}, {num2}, {num3}')
print(f'Middle number is: {middle([num1, num2, num3])}')
Output:
Three numbers: 62, 37, 84 Middle number is: 62

And still one more
#! /usr/bin/env python3
from random import randint

nums = []
[nums.append(f'{randint(20, 100)}') for i in range(3)]
def middle(nums):
    return [num for num in nums if num != min(nums) and num != max(nums)]

print(f'Three numbers: {", ".join(nums)}')
print(f'The middle number is: {"".join(middle(nums))}')
Output:
Three numbers: 88, 57, 49 The middle number is: 57