Python Forum
Finding MINIMUM number in a random list is not working - 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: Finding MINIMUM number in a random list is not working (/thread-22553.html)



Finding MINIMUM number in a random list is not working - Mona - Nov-17-2019

Hello,
I am trying to display the minimum number in a randomly created list but I am getting noting printed for the min function. I have my codes and display below. Any help is highly appreciated.

Here are the codes:
import random

random_numbers = []
average = 0
total = 0

for i in range(3):
    x = int((random.randint(0, 9)))
    random_numbers.append(x)
    total = sum(random_numbers)
    average = float(total / 3)
    
random_numbers = ', '.join(map(str, random_numbers))
print(random_numbers)

print("Low:", min(random_numbers))
print("High:", max(random_numbers))

print("average:", format(average,'.2f'))
print("Total:", total)
Here is the display:
Output:
>>> 9, 3, 2 Low: High: 9 average: 4.67 Total: 14 >>>



RE: Finding MINIMUM number in a random list is not working - Mona - Nov-17-2019

FYI,
I am not getting any traceback.


RE: Finding MINIMUM number in a random list is not working - ichabod801 - Nov-17-2019

On line 13 you convert random_numbers to a string. Min then finds the lowest character (the character with the lowest ord()). That happens to be a space, so it looks like nothing prints.

Use a different variable name for the assignment on line 13 and the print on line 14.


RE: Finding MINIMUM number in a random list is not working - Mona - Nov-17-2019

Thank you very much for your help. It is working as below now.

import random

random_numbers = []
average = 0
total = 0

for i in range(3):
    x = int((random.randint(0, 9)))
    random_numbers.append(x)
    total = sum(random_numbers)
    average = float(total / 3)
    
random_numbers_comma = ', '.join(map(str, random_numbers))
print(random_numbers_comma)

print("Low:", min(random_numbers))
print("High:", max(random_numbers))

print("average:", format(average,'.2f'))
print("Total:", total)
Output:
9, 5, 5 Low: 5 High: 9 average: 6.33 Total: 19
A few seconds before your reply I figured a work around as well. Below is the work around.

import random

random_numbers = []
average = 0
total = 0

for i in range(3):
    x = int((random.randint(0, 9)))
    random_numbers.append(x)
    total = sum(random_numbers)
    average = float(total / 3)
    list.sort(random_numbers)
    
random_numbers = ', '.join(map(str, random_numbers))
print(random_numbers)

print("Low:", random_numbers[:1])
print("High:", max(random_numbers))

print("average:", format(average,'.2f'))
print("Total:", total)
Output:
2, 3, 7 Low: 2 High: 7 average: 4.00 Total: 12



RE: Finding MINIMUM number in a random list is not working - ichabod801 - Nov-17-2019

Okay, but your work around finds the first digit of the lowest number. While that works because they are all single digit numbers, it won't work with larger numbers.


RE: Finding MINIMUM number in a random list is not working - ThomasL - Nov-18-2019

I refactored your initial code a bit:
import random

# these three lines are obsolete as variables doesn´t need to be "initialized"

# random_numbers = []
# average = 0
# total = 0

# this for loop can be simplified

# for i in range(3):
#     x = int((random.randint(0, 9)))
#     random_numbers.append(x)
#     total = sum(random_numbers)    # why are you calculating the total value each loop ???
#     average = float(total / 3)    # why are you calculating the average each loop ???

amount = 11

random_numbers = [random.randint(0, 9) for x in range(amount)]

print(f"Numbers: {random_numbers}")
print(f"Low: {min(random_numbers)}")
print(f"High: {max(random_numbers)}")
total = sum(random_numbers)
print(f"Total: {total}")
print(f"Average: {total/amount:.2f}")