Je suis dans une introduction à la classe Anaconda et j'ai besoin d'écrire un programme pour déterminer combien de fois un dé tombe sur une certaine quantité de visages. Cependant, je n'arrive pas à imprimer correctement ma réponse.Quel est le problème avec ma fonction d'impression?
Répondre
Votre problème est votre déclaration d'impression. Vous essayez d'imprimer une chaîne puis quelque chose appelé end
puis une autre chaîne, et ainsi de suite. Je pense que vous voulez que end
soit un caractère de fin de ligne.
Au lieu d'imprimer quelque chose comme
print("a string" end "another string" end "a third string")
utilisation
print("a string\n" "another string\n" "a third string")
Notez que "\n"
est le caractère de fin de ligne en Python. Mon code utilise également une fonctionnalité de Python où vous pouvez combiner littéraux de chaîne en les plaçant l'un à côté de l'autre. Laissez vous permet de voir les lignes individuelles plus clairement. Votre code a échoué car vous avez essayé de le faire avec une variable de chaîne , à savoir end
, et vous n'avez même pas défini cette variable.
De docs Python: https://docs.python.org/3/library/functions.html#print
print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
Comme vous pouvez le voir, le end
est l'un des paramètres de la fonction print()
, et par défaut, end=’\n’
. Donc, pour l'utiliser correctement, il vous suffit de changer la variable end
(qui peut ne pas être directement applicable à votre code)
Voici quelques exemples:
>>> for i in range(3):
print(i, end =' ')
0 1 2
>>> for i in range(3):
print(i, end ='')
012
>>> for i in range(3):
print(i) # by default end=\n
0
1
2
>>>
Et aussi, si je comprends votre logique correctement, le même code peut être réécrit comme tel.
import random
RollDice = int(input("Number of Rolls:"))
numbers = [0 for _ in range(6)] # array of 6 spaces with int 0
for i in range(RollDice):
Roll = random.randint(1,6)
numbers[Roll-1] += 1 # the array index starts from 0 hence you need Roll-1
plusMinus = "+-----"*6 + "+\n" # since you are repeating this you might want to assign it to a variable
print(plusMinus + "| 1 | 2 | 3 | 4 | 5 | 6 |\n" + "| " + " | ".join(map(str,numbers)) + " |\n" + plusMinus)
P.S. Plutôt que de joindre une image, veuillez copier et coller votre code la prochaine fois, afin que nous puissions copier n coller pour tester.
Vous pouvez modifier ceci pour inclure le script et l'erreur. – Vandal
Voilà, merci! – Jakspigot
Vous devriez vraiment inclure le script et le message d'erreur en tant que texte dans votre question, afin que nous puissions copier et coller dans nos propres éditeurs Python. Copiez et collez simplement votre éditeur ou votre terminal dans votre question, mettez-le en surbrillance et cliquez sur la touche qui ressemble à '{}' ou appuyez sur Ctrl-K dans Windows. –