Jul-31-2019, 12:36 AM
I made a program that randomly adds numbers between 1 and 10 to a list 1,000 times and then counts the number of times each number occurs in that list. The results are given as percentages.
import random
# Declaring the variables I'm going to use
list_of_numbers = []
list_length = 0
ones = 0
twos = 0
threes = 0
fours = 0
fives = 0
sixes = 0
sevens = 0
eights = 0
nines = 0
tens = 0
# Adding a random number between 1 and 10 to my list_of_numbers 1,000 times
while list_length < 1000:
list_of_numbers.append(random.randint(1, 10))
list_length += 1
# Counting the number of times each number between 1 and 10 appears in the list
for each in list_of_numbers:
if each == 1:
ones += 1
elif each == 2:
twos += 1
elif each == 3:
threes += 1
elif each == 4:
fours += 1
elif each == 5:
fives += 1
elif each == 6:
sixes += 1
elif each == 7:
sevens += 1
elif each == 8:
eights += 1
elif each == 9:
nines += 1
else:
tens += 1
# Printing the results as percentages
def print_percents(num_count, num_title):
percent = 100 * (num_count / list_length) # <--- Notice that, inexplicably, I'm able to use a variable from the script's namespace in a function and without error.
print(str(num_title).capitalize() + ": " + str(percent) + "%")
print_percents(ones, "ones")
print_percents(twos, "twos")
print_percents(threes, "threes")
print_percents(fours, "fours")
print_percents(fives, "fives")
print_percents(sixes, "sixes")
print_percents(sevens, "sevens")
print_percents(eights, "eights")
print_percents(nines, "nines")
print_percents(tens, "tens")It works. But now suppose I wanted to add all the percentages together to make sure they add up to 100%. How would I do that (most easily and with as little code as possible) without using global variables?
