Передавать данные от одной функции к другой функции - PullRequest
0 голосов
/ 06 августа 2020

Я хочу получить данные функции insert () в функции find ().

n=int(input("Enter choice: "))

if n==1:
  def insert():
    data=['oop','java','python']
    print(data)
    
    return data

  insert()

elif n==2:
  def find():
    data.insert(1,"hi")
    print(data)

  find()

после нажатия 2 конечный результат должен быть

 ['oop','hi','java','python']

Ответы [ 3 ]

1 голос
/ 06 августа 2020

РЕДАКТИРОВАТЬ: Я не прочитал желаемый результат.

Не уверен, что это то, что вам нужно:

n=int(input("Enter choice: "))

def insert():
    data=['oop','java','python']
    print(data)
    return data

def find():
   def find():
   data_func = insert()
   data_func.insert(1, "hi")
   print(data_func)

if n==1:
    insert()

elif n==2:
    find()

Вы не можете объявлять функции внутри условного «если», так как если ваш ввод равен 2, вы никогда не будете выполнять функцию inset (), и переменная данных никогда не будет объявлена.

Также вы должны называть свои функции иначе, чем python предопределенные методы ...

С уважением.

1 голос
/ 06 августа 2020

Попробуйте это -

n=int(input("Enter choice: "))
data = ['oop', 'java', 'python']
if n==1:
  def insert():
    print(data)
    return data
  insert()

elif n==2:
  def find():
    data.insert(1,"hi")
    print(data)

  find()

Вывод - ['oop', 'hi', 'java', 'python']

Чтобы использовать список локально:

n = int(input("Enter choice: "))

def insert():
    data = ['oop', 'java', 'python']
    return data

def find():
    data = insert()
    data.insert(1, "hi")
    return data

if n==1:
    print(insert())
elif n==2:
    print(find())

Вывод:

>> Enter choice: 2
['oop', 'hi', 'java', 'python']
>> Enter choice: 1
['oop', 'java', 'python']
0 голосов
/ 06 августа 2020

Вам нужно понять, как работает прицел в Python. Вы можете прочитать об этом здесь https://realpython.com/python-scope-legb-rule/, но основное c понимание состоит в том, что переменные, объявленные в функции, являются локальными только для этой функции. Что вам, вероятно, нужно сделать, так это передать массив данных обеим функциям, чтобы сохранить область видимости переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...