[Tutor] Beginner question
Krishnan Shankar
i.am.songoku at gmail.com
Mon Aug 12 19:31:38 CEST 2013
>def checkCave(chosenCave):
> print('You approach the cave...')
> time.sleep(2)
> print('It is dark and spooky...')
> time.sleep(2)
> print('A large dragon jumps out in front of you! He opens his jaws
and...')
> print()
> time.sleep(2)
> friendlyCave = random.randint(1, 2)
> if chosenCave == str(friendlyCave):
> print('Gives you his treasure!')
> else:
> print('Gobbles you down in one bite!')
>playAgain = 'yes'
>while playAgain == 'yes' or playAgain == 'y':
> displayIntro()
> caveNumber = chooseCave()
> checkCave(caveNumber)
> print('Do you want to play again? (yes or no)')
> playAgain = input()
Hi,
- Here we are passing the chosen integer (1 or 2) got from chooseCave()
method to checkCave as arguement
- When called in while loop inside checkCave the following happens;
- The statements of approaching the cave and seeing the dragon are
printed with a time interval of 2 secs between each
- Randomly either 1 or 2 is generated by the randint() method of random
module in python.
- That randomly generated integer (1 0r 2) is compared with our integer
input (1 or 2)
- If they match dragon gives us gold. Or else
- We will be eaten by dragon :)
But in the code there is a flaw. input() will evaluate your user input.
i.e. If you give an integer expression it will tell the answer. And when
you provide a number it will take it as int type. See below.
>>> var = input()
1+2+3
>>> var
6
>>> var = input()
2
>>> type(var)
<type 'int'>
>>> var = input()
s
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 's' is not defined
>>> var = input()
So since the integer number is checked with string in Line 13, it will run
into infinite loop. If you use raw_input() instead of input() you will be
able to run the example.
Regards,
Krishnan
On Mon, Aug 12, 2013 at 10:25 PM, Jim Mooney <cybervigilante at gmail.com>wrote:
> On 12 August 2013 02:14, Karim Liateni <kliateni at gmail.com> wrote:
>
>> 5ÿt5ÿ6hhhyyyfrrtr
>>
>> eschneider92 at comcast.net a écrit :
>>
>> >I've been learning python from the website 'inventwithpython.com', and
>> I'm on a chapter that covers the following code:
>>
>
> Just a quick note - not on the algorithm itself. If you run that in some
> IDEs, such as Wing101, all the time.sleep()s will concatenate, and all the
> prints will then print at once with no delay ;') If that happens, run it
> from the command line or try a different IDE.
>
> Jim
> --
>
> "If you don't know it's impossible, it's easier to do." --Neil Gaiman
> "The Process is not the Picture...Reality can only be proved to be
> weakly-objective. Strong objectivity is a myth." --Bernardo Kastrup
> "You cannot use logic to justify logic, so logic itself has no basis other
> than faith." --Agrippa
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20130812/d5bb328f/attachment-0001.html>
More information about the Tutor
mailing list