#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 если это отвечает на ваш вопрос, не забудьте установить флажок