Perhaps I am mistaken, as I am just a hack, but I believe a more "Pythonic" answer would be:
choices = {1:'first', 2:'second', 3:'third'}
while True:
choice = input('Please choose 1, 2, or 3.\n')
try:
print 'You have chosen the {} option.'.format(choices[choice])
break
except KeyError:
print 'This is not an option; please try again.'
Or at least:
while True:
choice = input('Please choose 1, 2, or 3.\n')
if choice == 1:
print 'You have chosen the first option'
break
elif choice == 2:
print 'You have chosen the second option'
break
elif choice == 3:
print 'You have chosen the third option'
break
else:
print 'This is not an option; please try again.'
Both of these avoid creating an unnecessary test variable, and the first one reduces overall code needed.
For Python 3, I believe adding parentheses around the printed statements should be the only change. The question wasn't tagged with a version.
whileloops in python