我想在find()函数中获取insert()函数数据。
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']
答案 0 :(得分:1)
尝试一下-
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']
答案 1 :(得分:1)
编辑:我没有阅读您想要的输出。
不确定这是否是您所需要的:
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()
您不能在条件“ if”内声明函子,因为如果您的输入为2,则将永远不会执行inset()函数,并且永远不会声明数据变量。
此外,您应该以不同于python预定义方法的方式来命名函数...
致谢。
答案 2 :(得分:0)
您需要了解scope在Python中的工作方式。您可以在https://realpython.com/python-scope-legb-rule/处阅读有关内容,但基本理解是,在函数中声明的变量仅是该函数的局部变量。 您可能需要做的就是将数据数组传递给两个函数,以保持变量的范围。