Need array help

M

Marion Long Jr

I am switching from microsoft visual basic programming to python
programming. In microsoft
visual basic you can Dim a variable so that you can add variables by
changing the number
on the end of the variable as in the following example;

Dim acct(100)

numoffiles=4
data=10
ct=1
while ct <> numoffiles
acctfile(ct) = data
ct= ct + 1
data= data + ct
Wend
The results are;
acctfile(1)=10
acctfile(2)=12
acctfile(3)=15

And you can compare the values of the new variables;
if acctfile(1) > acctfile(2) then print "yes"
if acctfile(2) > acctfile(1) then print "yes"

when I try to create acctfile(ct) = data I get the following error;
***can't assign to function call. Then it gives the program line of the
problem
Here is the progam in python;

numoffiles=4
data=10
ct=1

while ct != numoffiles:
acctfile(ct) =data
ct += 1
data= data + ct
print acctfile(ct)

Does anybody know how this is done in Python?
 
S

sp1d3rx

Marion, I think you should start with the tutorials. To access an array
in Python, use brackets not parens. so, instead of "acctfile(ct) =
data" try "acctfile[ct] = data". The tutorials are excellent and if you
are learning from vb, you can go through them pretty quickly.
 
L

Larry Bates

Marion said:
I am switching from microsoft visual basic programming to python
programming. In microsoft
visual basic you can Dim a variable so that you can add variables by
changing the number
on the end of the variable as in the following example;

Dim acct(100)

numoffiles=4
data=10
ct=1
while ct <> numoffiles
acctfile(ct) = data
ct= ct + 1
data= data + ct
Wend
The results are;
acctfile(1)=10
acctfile(2)=12
acctfile(3)=15

And you can compare the values of the new variables;
if acctfile(1) > acctfile(2) then print "yes"
if acctfile(2) > acctfile(1) then print "yes"

when I try to create acctfile(ct) = data I get the following error;
***can't assign to function call. Then it gives the program line of the
problem
Here is the progam in python;

numoffiles=4
data=10
ct=1

while ct != numoffiles:
acctfile(ct) =data
ct += 1
data= data + ct
print acctfile(ct)

Does anybody know how this is done in Python?

You have two choices in Python: list or array
For simple lists of things use a list. If you want to
do vector math or matrix-type calculations look at the
array module.

For you simple example, here is the python code:

acctfile=[]
numoffiles=4
data=10
ct=1
for i in xrange(numoffiles-1):
acctfile.append(data)
ct=ct+1
data=data+ct


There are other ways, but this is closest to what you are
asking for (which I assume is a trivial example).

-Larry Bates
 
J

John Henry

Others posted answer to your question.

If you are serious about programming in Python, I highly recommend that
you don't try to think in terms of "I did this in Visual Basic, how do
I do this in Python". You'll end up with Python code that are nothing
but a VB look alike. As recommended by others, go througth the
tutorial. It will be time well spent.
 
R

Robert Kern

Larry said:
If you want to
do vector math or matrix-type calculations look at the
array module.

The array module in the standard library does not provide such capabilities. If
you need them, look at numpy.

http://numpy.scipy.org

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
 
P

Paul McGuire

Marion Long Jr said:
I am switching from microsoft visual basic programming to python
programming.

Also, in anticipation of one of the most FA'ed Q's among VB->Python
migrators, you must always include the parens after a function name to
invoke the function. That is, to call the method MethodWithNoArguments, you
cannot write (as one would in VB):

val = MethodWithNoArguments

This simply assigns the method MethodWithNoArguments to name 'val'. To
invoke the method and assign the returned value to val, write:

val = MethodWithNoArguments()

And please don't ask for Python to be changed to be more VB-like in this
regard - let Python be Python! :)

And welcome to the Python world!

-- Paul
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,680
Members
48,796
Latest member
Greg L.

Latest Threads

Top