2017-09-11 70 views
-8

我在介紹Anaconda類,我需要編寫一個程序來確定一個骰子擲幾次落在一定數量的面上。但是,我無法正確打印我的答案。我的打印功能有什麼問題?

image1

image2

+5

您可能希望對其進行編輯以包含腳本和錯誤。 – Vandal

+0

我們走了,謝謝! – Jakspigot

+6

你真的應該在腳本中包含腳本和錯誤信息,所以我們可以複製並粘貼到我們自己的Python編輯器中。只需從您的編輯器或終端複製並粘貼到您的問題中,突出顯示它,然後單擊「{}」鍵或在Windows中按Ctrl-K。 –

回答

0

你的問題是你的print語句。您嘗試打印一個字符串,然後輸入另一個字符串,然後輸入end,等等。我想你想讓end成爲行尾字符。

,而不是打印像

print("a string" end "another string" end "a third string") 

使用

print("a string\n" "another string\n" "a third string") 

注意"\n"的是結束行的字符在Python。我的代碼還使用Python的一個功能,您可以將字符串文字放在一起放置。讓我們更清楚地看到各條線。你的代碼失敗了,因爲你試圖用字符串變量這樣做,即end,並且你甚至沒有定義該變量。

0

從Python文檔:https://docs.python.org/3/library/functions.html#print

print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

正如你所看到的,end對於print()函數的參數之一,默認情況下,end=’\n’。因此,要正確地使用它,你只需要改變end變量(可能無法直接適用於您的代碼)

下面是一些例子:

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

還有,如果我理解你的邏輯正確地說,相同的代碼可以像這樣重寫。

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.下一次請複製並粘貼您的代碼,而不是附加圖片,以便我們可以複製n張粘貼以進行測試。