I keep getting error global name not defined "sizeGreater".
Here is my program that I've come up with so far:
import random
def main():
another = 'y'
while another == 'y' or another == 'Y':
again = raw_input("Would you like to generate 1000 random numbers? (Enter y for yes and n for no)")
generate_numbers()
difference_numbers(sizeGreater, sizeLess)
def generate_numbers():
numbers = []
for value in range (1000):
numbers.append(random.randint(1,100))
print (numbers)
numbers2 = [i for i in numbers if i>=50]
sizeGreater = len(numbers2)
print ("The numbers at or above fifty are:", sizeGreater)
numbers3 = [i for i in numbers if i <=50]
sizeLess = len(numbers3)
print ("The numbers at or below fifty are:", sizeLess)
return sizeLess
return sizeGreater
def difference_numbers(sizeGreater, sizeLess):
total = sizeGreater - sizeLess
print total
main()
You haven't assigned the variables when you call generate_numbers()
. Also, your return statements don't do what you think they do.
Instead, do sizeLess, sizeGreater = generate_numbers()
and make generate_numbers()
return return (sizeLess, sizeGreater)
(a tuple).
So, now you unpack the tuple that is returned from generate_number()
by setting them again. You can then call difference_numbers
with the newly assigned variables:
import random
def main():
another = 'y'
while another == 'y' or another == 'Y':
again = raw_input("Would you like to generate 1000 random numbers? (Enter y for yes and n for no)")
sizeLess, sizeGreater = generate_numbers() #unpack the tuple
difference_numbers(sizeGreater, sizeLess)
def generate_numbers():
numbers = []
for value in range (1000):
numbers.append(random.randint(1,100))
print (numbers)
numbers2 = [i for i in numbers if i>=50]
sizeGreater = len(numbers2)
print ("The numbers at or above fifty are:", sizeGreater)
numbers3 = [i for i in numbers if i <=50]
sizeLess = len(numbers3)
print ("The numbers at or below fifty are:", sizeLess)
return (sizeLess, sizeGreater) #return a tuple
def difference_numbers(sizeGreater, sizeLess):
total = sizeGreater - sizeLess
print total
main()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.