[EMAIL PROTECTED] wrote: > I've developed in several other languages and have recently found > Python and I'm trying to use it in the shape of the PythonCard > application development tool. > > My two questions: > > 1. What is the easiest way to create a for loop in the style I'm used > to from Delphi ie: > for I:=0 to 2 do begin > //code > end;
for i in xrange(0, 3): # code Please read the tutorial. I'm fairly sure this and many more things you'll want to know are covered adequately. > 2. Philospohy(sp?) aside, I could potentially want to create a > binary-only distribution of my finished apps. I noticed the > documentation on .pyc files: how do I create these and, aside from > being basically read-only, are they used just like ordinary .py source > files? And can they be easily reverse-engineered? They are compiled versions of the .py files, so definitely not the same. They are created automatically and transparently when you import .py modules, so normally you don't pay any attention to them. They can easily be reverse-engineered, if by that you mean turned back into source code. See "decompyle" for example. Using the "compileall" module you can manually compile .py to .pyc but, again, that's generally not needed. Use of tools like py2exe is generally advised for packaging and distibution if you don't want to distribute source, though few of the existing tools do much more than package up .pyc files inside archives, bundle the runtime library, and add wrapper code to make the execution transparent. Philosophy not entirely aside, you should note that object code in any language can "easily" be reverse-engineered in the same way, with the only difference being the degree of ease involved. If the code is worth enough to someone that they are willing to risk violating your license terms, they *will* be able to recover enough source code (whether it was Python, C, or assembly) to do what they need. The only certain protection is to keep the valuable code on a server and use some kind of web service (or whatever) to control access to its execution. (There have been *many* past discussions of all this in the forum -- it's a very tired topic by now -- so please feel free to peruse the archives via Google Groups before asking lots of the same questions over again. You'll be doing yourself a favour.) -Peter -- http://mail.python.org/mailman/listinfo/python-list