> ------------Original Message------------
> From: [EMAIL PROTECTED] (Alexander Zatvornitskiy)

>
> Hello All!
> 
> I'am novice in python, and I find one very bad thing (from my point of 
> view) in
> language. There is no keyword or syntax to declare variable, like 'var' 
> in
> Pascal, or special syntax in C. It can cause very ugly errors,like 
> this:
> 
> epsilon=0
> S=0
> while epsilon<10:
>   S=S+epsilon
>   epselon=epsilon+1
> print S
> 
> It will print zero, and it is not easy to find such a bug!


Hmmm.  I am surely an expert in writing buggy code, but I can not say I make 
this error in Python.  Why is that?

I'm not sure, but a couple things that may help me miss making this mistake in 
practice may be (somewhat informal in my case) unit testing - I test for 
correct results for at least a few cases.

It may also help that with Python I can code at a somewhat higher conceptual 
level, or maybe it is just the syntax that helps avoid these problems:

>>>  for epsilon in range (0,10):
         S=S+epsilon
      
>>> for epsilon in range (0,10):
        S=S+epselon
        
Traceback (most recent call last):
  File "<pyshell#6>", line 2, in ?
    S=S+epselon
NameError: name 'epselon' is not defined


It may seem like jumping off a cliff, but the improvement in readability (the 
variable declarations being visual clutter) makes it much easier for me to see 
my code, and any typos in it.

It seems it would be simple enough to have one's code, or another script, 
automatically print out a sorted list of the variables - which would make the 
error you note obvious.  But I haven't needed this, yet at least.

You might like Python and find the lack of variable declaration checking not a 
problem.  It's worth a shot.



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to