我有一个VBA脚本,我想翻译成Python。我有一些基本的VBA知识(1,5年前写了两个小Excel宏)。但是Python脚本仍然不能提供正确的结果,我认为这是由两条“ReDim行”造成的。这些线如下所示:
ReDim TmpDividendTimes(1 To NoOfDividends) As Variant
ReDim TmpCashDividends(1 To NoOfDividends) As Variant
我的问题是,这两条线的作用是什么?如何将它们翻译成Python呢?整个相关VBA代码如下所示:
Function BinomialDD(Variable_X As String(), Variable_Y As String(),_
Optional CashDividends As Variant, Optional DividendTimes As Variant)
Dim TmpDividendTimes() As Variant
Dim TmpCashDividends() as Variant
Dim NoOfDividends As Integer
If IsMissing(DividendTimes) Or IsEmpty(DividendTimes Then
NoOfDividends=0
Else
NoOfDividends=Application.Count(DividentTimes)
End If
If NoOfDividends=0 Then
//Non-Relevant
Exit Function
End If
ReDim TmpDividendTimes(1 To NoOfDividends) As Variant
ReDim TmpCashDividends(1 To NoOfDividends) As Variant
我已经在Python中尝试(猜测)了以下解决方案:
TmpDividendTimes=CashDividends
TmpCashDividends=DividendTimes
TmpDividendTimes=np.arange(0,NoOfDividends+1,1)
TmpCashDividends=np.arange(0,NoOfDividends+1,1)
因为我从网上的例子中了解到你创造了一个新的变量。你知道吗
这些语句声明dynamic arrays:
这些语句更改这些数组的大小-它们"...reallocate storage space ...":
ReDim
将销毁以前的任何内容。你知道吗Python的list和array可以被认为类似于VB的数组,但是它们都不需要
ReDim
语句来更改它们的大小-它们的大小是不固定的。根据您需要容器做什么,还可以使用其他Python容器。你知道吗相关问题 更多 >
编程相关推荐