2017-06-14 1229 views
3

我有一個函數,我從Pycharm python控制檯調用,但沒有輸出顯示。Pycharm Python控制檯不打印輸出

In[2]: def problem1_6(): 
    ...:  for i in range(1, 101, 2): 
    ...:   print(i, end = ' ') 
    ...: 
In[3]: problem1_6() 

In[4]: 

在另一方面,像這樣的,它打印,但在錯誤的順序

In[7]: def problem1_6(): 
    ...:  print('hello') 
    ...: 
    ...:  for i in range(1, 101, 2): 
    ...:   print(i, end = ' ') 
    ...: 
In[8]: problem1_6() 
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 hello 

作爲第三個選擇,因爲@DavidS的建議,

In[18]: import sys 
    ...: 
    ...: def problem1_6(): 
    ...:  for i in range(1, 101, 2): 
    ...:   sys.stdout.write(str(i) + ' ') 
    ...: 
In[19]: problem1_6() 

In[20]: 

它仍然不打印。

+0

我已經重新啓動控制檯和Pycharm。這是我使用的唯一代碼。 – SamuelNLP

+0

我測試過我沒有'end'它顯示輸出,但是'end ='''它不是 – DavidS

+0

這可能是因爲,無論如何,它仍然是奇怪的, 。 – SamuelNLP

回答

3

這將工作:

def problem1_6(): 
    for i in range(1, 101, 2): 
     sys.stdout.write(str(i) + ' ') 
     sys.stdout.flush() 

或:

def problem1_6(): 
    for i in range(1, 101, 2): 
     print(i, end=' ', flush=True) 
+0

謝謝,它的工作原理。印刷品沒有沖洗嗎? – SamuelNLP

+0

@SamuelNLP'print(i,end ='',flush = True)'對我來說工作得很好 – DavidS