我不断收到错误全局名称未定义“sizeGreater”。
这是我迄今为止提出的程序:
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()
答案 0 :(得分:3)
致电generate_numbers()
时,您尚未分配变量。此外,您的退货声明并不符合您的预期。
相反,请执行sizeLess, sizeGreater = generate_numbers()
并使generate_numbers()
返回return (sizeLess, sizeGreater)
(元组)。
因此,现在通过再次设置来解压缩从generate_number()
返回的元组。然后,您可以使用新分配的变量调用difference_numbers
:
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()