On 12/02/2012 04:43 PM, Mitya Sirenef wrote: > 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
m Nicely done! That fixed it! Is that a version feature or should I take what I find in these books with a grain of salt? -j -- http://mail.python.org/mailman/listinfo/python-list