2017-09-11 1 views
-8

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?

image1

image2

+5

Vous pouvez modifier ceci pour inclure le script et l'erreur. – Vandal

+0

Voilà, merci! – Jakspigot

+6

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. –

Répondre

0

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.

0

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.