alors j'ai travaillé sur un jeu de donjon basé sur les entrées en python qui est assez rudimentaire. Je voulais mettre un jet de dé dans le jeu et décider si un joueur va mourir ou vivre sur un chemin. Cependant, mon instruction if ne répondra pas correctement au rouleau du générateur de nombres que j'ai dans le programme, il imprimera le numéro et continuera si la condition a été remplie ou non. Comment puis-je résoudre ce problème et pourquoi cela se produit-il?python: si l'instruction ne répond pas correctement à la valeur du lancer de dés
if direction == 1:
import random
from random import *
num = 6
def d6(num):
rolls = []
for x in range(num):
rolls.append(randint(1,6))
return rolls
rolls = d6(1)
print rolls
if rolls is 3:
print "you fall in a hole!\n"
print ' OH DEAR YOU ARE DEAD!'
raise SystemExit
elif rolls is not 3:
print "you are back at the start which way will you go?\n"
path3 =float(input("forward, or right?"))
Vous avez imprimé des 'rouleaux', donc je suis sûr que vous avez vu de quoi il s'agit. Pourquoi penses-tu que non seulement ça va être égal à '3', mais que j'ai la même identité que' 3'? – TigerhawkT3
Quelques articles liés: http://stackoverflow.com/questions/36898917/in-python-when-are-two-objects-the-same/36899294, http://stackoverflow.com/questions/14247373/python- aucune-comparaison-devrait-je-utilise-est-ou/14247383 # 14247383, http://stackoverflow.com/questions/14247373/python-none-comparison-should-i-use-is-or/14247383#14247383 – mgilson
Pourquoi importez-vous conditionnellement 'random'? 'rolls' ressemble à une liste, que voulez-vous sortir de' if a_list is 3'? Enfin, il serait probablement utile si vous avez nettoyé l'indentation. Il semble surtout OK sauf pour les choses dans 'd6'. Est-ce exact? – mgilson