2017-10-12 10 views
1

Je continue d'avoir le même problème avec ce code dans flask. Je fais le jeu de devinettes, 1-100, et il répond toujours avec "Too Low" pour une raison quelconque.Jeu de devinettes dans Flask

from flask import Flask, render_template, session, request, redirect 
import random 

app = Flask(__name__) 
app.secret_key = 'thisIsSecret' 

@app.route('/') 
def index(): 
session['number'] = random.randrange(0,100) 
print session['number'] 
return render_template("index.html") 

@app.route('/guess', methods=['POST']) 
def result(): 
if request.form['guess'] == session['number']: 
    answer = "Correct" 
    return render_template("index.html", answer=answer) 
elif request.form['guess'] > session['number']: 
    answer = "Too Low" 
    return render_template("index.html", answer=answer) 
else: 
    answer = "Too High" 
    return render_template("index.html", answer=answer) 

app.run(debug=True) 

Et mon fichier HTML ressemble à ceci ...

<html> 
<head> 
    <title>Great Number Game</title> 
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}"> 
</head> 
<body> 
    <h1>Welcome to the Great Number Game!</h1> 
    <h3>Think of a number 1 - 100...see if you can guess it right!</h3> 
    <p class="answer">{{ answer }}</p> 
    <form action='/guess' method='post'> 
     Guess: <input type='text' name='guess'> 
     <input type='submit' value='submit'> 
    </form> 
</body> 

ce que je fais mal ici?

Répondre

2

Je peux voir 2 choses mal avec votre code en ce moment. D'abord, votre nombre deviné arrive comme une chaîne. Pour qu'il soit correctement comparé à l'estimation de la session, vous devez le convertir en entier, d'abord: int(request.form["guess"]). Deuxièmement, il me semble que l'opérateur de comparaison pour la vérification "Trop bas" doit être retourné. En ce moment, il va retourner "Too Low" lorsque le nombre deviné est supérieur au nombre de la session. Vous voulez probablement le contraire.

En conclusion, votre première elif devrait ressembler à ceci:

elif int(request.form['guess']) < session['number']: 
    answer = "Too Low" 
    return render_template("index.html", answer=answer) 
+0

eu à travailler. Je vous remercie!! –

+0

@RickyRathbone Content d'apprendre que ça marche! Pourriez-vous s'il vous plaît marquer la réponse comme correcte? De cette façon, il peut aider les autres avec des problèmes similaires. – BenWurth