2017-06-14 1236 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