[Tutor] How to run this block of code dozens of times

Dave Angel d at davea.name
Mon Sep 17 04:22:01 CEST 2012


On 09/16/2012 08:56 PM, Scurvy Scott wrote:
> On Sun, Sep 16, 2012 at 5:23 PM, Dave Angel <d at davea.name> wrote:
>
>> On 09/16/2012 07:56 PM, Scurvy Scott wrote:
>>> scratch that, new code is below for your perusal:
>>>
>>> from Crypto.PublicKey import RSA
>>> import hashlib
>>>
>>> def repeat_a_lot():
>>>     count = 0
>>>     while count < 20:
>>> You're kidding, aren't you?  while loops are meant for those times when
>>> you don't know how many times the loop is to iterate.
>>
> Acutally, Dave, I would be the one setting just how many times the loop
> would run manually. Actually the loop would run 2^80 times, so it was more
> of a test to see if the output was different each time it ran more than
> trying to run it the correct amount of times.
>

Since you know the count before you start the loop, then use xrange(),
rather than while.  If you had to test some condition other than a
simple count, then you might want to use while.  As the loop was coded,
you have three uses of a variable that doesn't matter to anyone reading
the code.  one to initialize it, one to test it, and one to increment it.

>>>         m = RSA.generate(1024)
>>>         b = hashlib.sha1()
>>>         b.update(str(m))
>>>         a = b.hexdigest()
>>>         print a[:16] + '.onion'
>>>         count += 1
>>> repeat_a_lot()
>>>
>>>
>>>
>> def repeat_a_lot():
>>     for _ in xrange(20):
>>         m = RSA.generate(1024)
>>         b = hashlib.sha1()
>>         b.update(str(m))
>>         a = b.hexdigest()
>>         print a[:16] + '.onion'
>>
>> repeat_a_lot()
>>
>>
> Why would you use an underscore rather than a letter or name like I've
> always seen. I've never seen an underscore used before


Standard convention for an unused loop variable.  But if you prefer, no
harm in naming it something like
    for  unused_counter_here in xrange(20):

The unadorned underscore leads the reader to expect that you don't use the loop variable anywhere, like for indexing some matrix.

-- 

DaveA



More information about the Tutor mailing list