Как определить переменную в Python

#python

#python

Вопрос:

Я впервые изучаю Python и пытаюсь определить переменную a в своей функции. Как я могу это сделать? Всякий раз, когда я запускаю эту функцию, она сообщает, что имя ‘a’ не определено. и если есть что-то еще неправильное, где я ошибся?

 n= int(input ("choose your number >2     "))

def J(a,b):
    a = (n)
    b = (n-2)
    for (a) in range (n):
        for (b) in range (n-2):
            if a==b:
                print ()
def J(a,b):
    return math.factorial (a)// math.factorial (b)
size= J(a,b)
if size>40:
    a=input ("the pernutations would fill more than one screeen "
            "still want to see th`enter code here`em all? yes or no    ")
    if a=="yes":
        print (J(a,b))
    if a=="no":`enter code here`
        print ()
  

Комментарии:

1.Проблема здесь: size= J(a,b) . Скрипты выполняются сверху вниз и a к этому моменту не были определены. Имя не существует, когда вы вызываете функцию — не имеет значения, делаете ли вы это a = (n) внутри функции (кстати, круглые скобки здесь бессмысленны). С другой стороны, b никогда не существует в глобальной области видимости, где вы фактически вызываете функцию

2. почему J(a,b) определяется дважды?

3. Чтобы добавить к комментарию @roganjosh. a = (n) Является локальной для области видимости J().

4. Если это еще не сделано, вам следует поработать с руководством по Python

Ответ №1:

Вам нужно определить a и b или заменить их значениями. Они действуют как заполнители для значений, которые вводятся в качестве вызывающей функции. a И b в функции являются локальными только для функции, где при ее вызове она устанавливает аргумент в качестве переменной и обрабатывает его таким образом внутри функции.

 a = "value" #replace with your value, if not string, remove quotes
b = "value"  
size = J(a,b)
  

или

 size = J(value1, value2)
  

Комментарии:

1. ya. Я обязательно должен пройти через руководство.. Я имел в виду установить a как переменную n и b как переменную n-2, чтобы показать все возможные перестановки функции.

2. @JeremyKong если это отвечает на ваш вопрос, не забудьте установить флажок