Вы пытаетесь получить доступ к локальной переменной функции createlist
из другой функции numberinsert
, и это невозможно (локальные переменные доступны только в той области, в которой они определены). Я бы порекомендовал вам изменить ваш код следующим образом:
import sys
# Function creates a list [1,3,5..99]
def createlist():
odd_list = []
for i in range(1, 100, 2):
odd_list.append(i)
return(odd_list)
# Function asks for an odd integer between 1..100
def numberinsert():
num_list = createlist()
n = int(input("Please enter an odd number between 1 and 100: "))
if n in num_list:
return(n)
else:
sys.exit("Number does not match requirements!")
def main():
numberinsert()
В качестве примечания постарайтесь избегать именования ваших переменных именами встроенных функций (например, list
).
Вы также можете написать свой код более компактным способом, используя range(1, 100, 2)
непосредственно в вашей функции numberinsert
:
# Function asks for an odd integer between 1..100
def numberinsert():
n = int(input("Please enter an odd number between 1 and 100: "))
if n in range(1, 100, 2):
return(n)
else:
sys.exit("Number does not match requirements!")
def main():
numberinsert()