[英]error in Python: Global name not defined
我不断收到错误全局名称未定义的“ 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()
调用generate_numbers()
时,您尚未分配变量。 此外,您的return陈述并没有您所想的那样。
相反,执行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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.