loops

Mitya Sirenef msirenef at lightbird.net
Sun Dec 2 22:43:29 CET 2012


On 12/02/2012 04:39 PM, Verde Denim wrote:
> I'm just getting into py coding, and have come across an oddity in a py
> book - while loops that don't work as expected...
>
> import random
>
> MIN = 1
> MAX = 6
>
> def main():
>      again = 'y'
>
>      while again == 'y':
>          print('Rolling...')
>          print('Values are: ')
>          print(random.randint(MIN, MAX))
>          print(random.randint(MIN, MAX))
>
>          again = input('Roll again? (y = yes): ')
>
> main()
>
> Produces -
> python dice_roll.py
> Rolling...
> Values are:
> 5
> 4
> Roll again? (y = yes): y
> Traceback (most recent call last):
>    File "dice_roll.py", line 17, in <module>
>      main()
>    File "dice_roll.py", line 15, in main
>      again = input('Roll again? (y = yes): ')
>    File "<string>", line 1, in <module>
> NameError: name 'y' is not defined
>
> This same loop structure appears in many places in this book "Starting
> out with Python, 2nd ed, Tony Gaddis), and they all yield the same
> error. Is there something I'm missing here?
>
> Thanks for the input...

I believe that should be raw_input, not input . input() evaluates user's 
input
in local scope.  -m



More information about the Python-list mailing list