我想使用函数将一个数组复制到另一个数组。但是以下代码不起作用。请纠正我,并指导我如何执行此最简单的任务。我是编程的初学者。
Sub separate()
Dim instrb As Integer
Dim Instra As Integer
Dim i As Integer
i = 2
Do Until Worksheets(1).Cells(i, "A") = ""
instrb = InStr(Cells(i, "A").Text, "pm")
Instra = Instrab + 2
Cells(i, "B").Value = Right(Worksheets(1).Cells(i, "A"), Len(Worksheets(1).Cells(i, "A") - Instra) + 2).Text
i = i + 1
Loop
End Sub
上面的代码显示的是#-----------------------------------------
def copy():
a=b
# ========================================
import numpy as np
a = np.ones(5)
b = np.zeros(5)
copy()
print(a)
# ========================================
而不是[1 1 1 1 1]
在不使用函数的情况下,我得到正确答案,如下所示:
[0 0 0 0 0]
答案 0 :(得分:0)
def copy():
a=b
此方法仅声明一个新的局部变量a
并将其分配给b
。现在,如果您之前定义了全局变量b
,那么a
将使用该b
的值。否则,将引发错误,提示b
之前未定义。
在任何一种情况下,此方法均不涉及全局变量a
。
如果您要修改全局变量a
,则需要将其告知python:
def copy():
global a
a = b
但是对于像分配这样简单的事情,此解决方案不是很干净(并且过于复杂)。我建议您坚持使用第二个版本。
答案 1 :(得分:0)
您使用了错误的语法:-
尝试这个-
def copy(a, b):
a = b.copy()
return a
a = np.ones(5)
b = np.zeros(5)
print(copy(a, b))