[英]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.