2017-05-01 2 views
1

j'ai écrit jeu conjecture nombre typique:Comment puis-je exécuter un programme interactif simple dans spyder?

import random 
secret = random.randint(1, 99) 
guess = 0 
tries = 0 
print("Hey you on board! I am the dreadfull pirat Robert, and I have a 
secret!") 
print("that is a magic number from 1 to 99. I give you 6 tries.") 
while guess != secret & tries < 6: 
    guess = input() 
    if guess < secret: 
     print("You! Son of a Biscuit Eater! It is too little! YOU Scurvy dog!") 
    elif guess > secret: 
     print("Yo-ho-ho! It is generous, right? BUT it is still wrong! The 
number is too large, Savvy? Shiver me timbers!") 
    tires = tries + 1 
if guess == secret: 
    print("Enough! You guessed it! Now you know my secret and I can have a peaceful life. Take my ship, and be new captain") 
else: 
    print("You are not lucky enough to live! You do not have ties. But before you walk the plank...") 
    print("The number was ", secret) 
    print("Sorry pal! This number became actually you death punishment. Dead men tell no tales! Yo Ho Ho!") 

Cependant spyder exécute tout sans arrêt pour inputing numéro par un utilisateur et j'ai eu juste cette sortie:

Hey vous à bord! Je suis le redoutable pirate Roberth, et j'ai un secret! c'est un nombre magique de 1 à 99. Je vous donne 6 essais. Vous n'avez pas la chance de vivre! Vous n'avez pas de liens. Mais avant de marcher la planche ... Le numéro était 56 Désolé pal! Ce nombre est devenu en fait votre peine de mort. Les hommes mort ne racontent pas d'histoires! Yo Ho Ho!

J'ai essayé d'appeler cmd -> spyder et l'exécuter là (par copier-coller) mais je me suis beaucoup d'erreurs comme:

print ("Le nombre était" secret) fichier « », ligne 1 print (« Le nombre était » secret)

Cependant, l'exécution de cette ligne de code par (au moins toutes les lignes avec impression) ligne n'est pas un problème.

Comment puis-je exécuter mon code de manière interactive, afin que l'utilisateur puisse donner un numéro et que le jeu continue?

Répondre

1

Couple de problèmes avec votre code, dans le tires=tries+1 vous avez probablement fait une faute de frappe de code. Deuxièmement, devinez lit dans une chaîne de sorte que vous devrez convertir deviner en un int pour faire des comparaisons entières, utilisez quelque chose comme guess=int(guess).

La raison pour laquelle vous ne voyez pas cela est que votre condition dans la boucle while ne s'exécute pas comme vraie, exécutez guess != secret & tries < 6 dans l'interpréteur et vous verrez que la condition est fausse. Au lieu de cela, vous devez utiliser and car il s'agit d'un opérateur logique. Le & est un opérateur logique bit à bit (ils ne sont pas identiques).

while guess != secret and tries < 6: est la ligne de code appropriée que vous devez remplacer.