Python中print()打印\r 在pycharm中的问题

最近刚接触python的time模块想做一个时钟,但是遇到一个问题,我想一直让时间自己刷新但是用print的话每次都得输出一行,然后我就用到了""/r""

\r介绍:

  \r 代表回车,也就是打印头归位,(光标)回到当前行的开头。

1.我的思路是让每次打印的的时间后面添加一个\r,这样第二次(光标重新回到开头)打印的的数据可以覆盖第一次的数据

2.代码如下  

   

     from time import  *

     def shizhong():
     s = localtime()
     gs ="%H %M %S"
   sp =strftime(gs,s).split(" ")
  print("北京时间:%s:%s:%s"%(sp[0],sp[1],sp[2]),end="\r")

     while True:
   shizhong()
sleep(1)
3.当我在终端运行时,一秒打印一次时间而且,第二次覆盖第一次,但是我发现在pycharm中输出时,却输出位空,这时候我就在想终端的输出显示和pycharm控制台不一样吧,这时候我把代码改成如下代码就能输出了!!
     from time import  *

     def shizhong():
     s = localtime()
     gs ="%H %M %S"
   sp =strftime(gs,s).split(" ")
  print("\r北京时间:%s:%s:%s"%(sp[0],sp[1],sp[2]),end="")

     while True:
   shizhong()
sleep(1)
4.(pycharm下)我把\r放在了输出的最前面,这时候我明白了为什么输出不出来了,如果\r放在后面的话前面数据就会被一直覆盖根本打印不出来
如果是放在前面就能打印\r后面的了遇到第2个\r就把前面的数据覆盖了,这样就实现了数据刷新。
5.我发现终端的打印输出和pycharm的打印输出不太一样,但是不知道为什么会这样,求大牛指导。

   

  
posted @ 2018-04-12 23:03  搏鲨  阅读(8501)  评论(1编辑  收藏  举报