>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 <cybervigila...@gmail.com>wrote: > On 12 August 2013 02:14, Karim Liateni <kliat...@gmail.com> wrote: > >> 5ÿt5ÿ6hhhyyyfrrtr >> >> eschneide...@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@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor