2015-10-29 129 views
-1

我目前正在編寫一個基本的骰子軟件密碼生成器。打印最終密碼組合時遇到問題。我正在打印的字符串是將每個單詞打印在新的一行上,而不是一行上的整個字符串。我不太清楚爲什麼。Python中的打印功能是在新行上打印結果

我的代碼如下:

import random 

finalPass="" 

def choosePass(): 
    global finalPass 
    i=0 
    j=0 
    while(i<=5): 
     num="" 
     num=str(random.randint(1,6)) 
     while(j<4): 
      num=num+str(random.randint(1,6)) 
      j+=1 
     f=open('container', 'r') 
     for line in f: 
      if(line[0:5]==num): 
       line=line[6::] 
       line=line.replace(' ','') 
       #Add the new word to the string of old words 
       finalPass+=str(line,) 
     f.close() 
     j=0 
     i+=1 
    #This is printing each word to a new line. I want it to print to the same line 
    print(finalPass) 

choosePass() 
+0

請解決您的帖子 –

+0

感謝你修復它 –

+0

對不起新:)添加代碼窗口 – Kiro

回答

1

可以全部替換「\ n」上「」在finalPass串符號印刷

與我之前wnat給你的建議 - 之前問任何問題,嘗試在python文檔中找到答案並在stackoverflow歸檔中搜索你的問題。

+0

相當陌生,謝謝!我不認爲用''取代\ n。這已經修復了:) – Kiro

+0

仍然沒有告訴我爲什麼它每次都打印到新行。任何人有任何想法 – Kiro

+0

是的,但它是一個初級的有用的信息。 嘗試替換所有「\ n」符號@Kiro! – aarexer

0

感謝您的幫助。以爲我會分享壓軸更有效的代碼版本!

import random 
 

 
password="" 
 

 
def choosePass(): 
 
    global password 
 
    for i in range(0,6): 
 
     num="" 
 
     for j in range(0,5): 
 
      num=num+str(random.randint(1,6)) 
 
     f=open('container','r') 
 
     for line in f: 
 
      if(line[0:5]==num): 
 
       line=line[6::].strip() 
 
       password+=line+' ' 
 
     f.close() 
 
    print(password+''+str(random.randint(100,1000))) 
 

 
choosePass()