This formating is really tricky
Seymore4Head
Seymore4Head at Hotmail.invalid
Wed Aug 27 09:35:53 EDT 2014
On Wed, 27 Aug 2014 09:16:43 +0200, Peter Otten <__peter__ at web.de>
wrote:
>Seymore4Head wrote:
>
>> On Mon, 25 Aug 2014 18:22:35 -0400, Terry Reedy <tjreedy at udel.edu>
>> wrote:
>>
>>>On 8/25/2014 4:14 PM, Seymore4Head wrote:
>>>> import random
>>>> sets=3
>>>> for x in range(0, sets):
>>>> pb2=random.choice([1-53])
>>>
>>>You want random.randint(1, 53)
>>>...
>>>> alist = sorted([pb1, pb2, pb3, pb4, pb5])
>>>> print ("Your numbers: {} Powerball: {}".format(alist, pb6))
>>>>
>>>> I am trying this example. The program works, but the numbers don't
>>>> line up if the number of digits are different sizes.
>>>> http://openbookproject.net/pybiblio/practice/wilson/powerball.php
>>>
>>>To get them to line up, you have to format each one to the same width.
>>>
>>>> Suggestion please?
>>>> BTW the exercise instructions say to use the choice function.
>>>
>>>import random
>>>sets=3
>>>
>>>def ran53():
>>> return random.randint(1, 53)
>>>
>>>f1 = '{:2d}'
>>>bform = "Your numbers: [{0}, {0}, {0}, {0}, {0}]".format(f1)
>>>pform = " Powerball: {0}".format(f1)
>>>
>>>for x in range(0, sets):
>>> balls = sorted(ran53() for i in range(5))
>>> print(bform.format(*balls), pform.format(ran53()))
>>>
>> I modified your code to only use lotto numbers that don't repeat. I
>> am sure there is a more elegant way to this too.
>>
>> import random
>> sets=10
>> print ("How many sets of numbers? ",sets)
>>
>> f1 = '{:2d}'
>> bform = "Your numbers: [{0}, {0}, {0}, {0}, {0}]".format(f1)
>> pform = " Powerball: {0}".format(f1)
>>
>> for x in range(0, sets):
>> balls = sorted(random.randint(1, 53) for i in range(5))
>> if balls[0]!= balls[1] and balls[1]!= balls[2] and balls[2]!=
>> balls[3] and balls[3]!= balls[4]:
>
>A simpler test would be
>
> if len(set(balls)) == 5:
>
>> print(bform.format(*balls), pform.format(random.randint(1,
>> 42)))
>> sets=sets-1
>
>It's not just elegance, the code is incorrect as it can print less than 10
>sets.
>
>Replace the for loop with a while loop, and only decrease sets when you
>print a valid draw.
>
I will give those suggestions a try.
Thanks
More information about the Python-list
mailing list