Python Forum
Not getting the return value
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Not getting the return value
#1
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)
Reply
#2
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?
Reply
#3
(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.
Reply
#4
The same way as you're including variables on line 29: just by passing it as another value to print.
Reply
#5
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
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags


Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020