【问题标题】:printing slowly (Simulate typing)慢速打印(模拟打字)
【发布时间】:2023-01-25 11:28:47
【问题描述】:

我正在尝试用 python 制作文本游戏。然而,一切顺利,我想做一个功能,让我可以打印一些东西到终端,但在时尚帽子看起来像打字。

目前我有:

def print_slow(str):
    for letter in str:
        print letter,
        time.sleep(.1)

print_slow("junk")

输出是:

j u n k

有没有办法去掉字母之间的空格?

【问题讨论】:

    标签: python


    【解决方案1】:

    这是我的“真人打字”功能:

    import sys,time,random
    
    typing_speed = 50 #wpm
    def slow_type(t):
        for l in t:
            sys.stdout.write(l)
            sys.stdout.flush()
            time.sleep(random.random()*10.0/typing_speed)
        print ''
    

    【讨论】:

      【解决方案2】:

      在 Python 2.x 中,您可以使用 sys.stdout.write 而不是 print

      for letter in str:
          sys.stdout.write(letter)
          time.sleep(.1)
      

      在 Python 3.x 中,您可以将可选参数 end 设置为空字符串:

      print(letter, end='')
      

      【讨论】:

      • 错误,缓冲区不需要 sys.stdout.flush() 吗?当不打印行终止字符时,这就是问题的核心。
      【解决方案3】:

      尝试这个:

      def print_slow(str):
          for letter in str:
              sys.stdout.write(letter)
              sys.stdout.flush()
              time.sleep(0.1)
      
      print_slow("Type whatever you want here")
      

      【讨论】:

        【解决方案4】:

        尝试这个:

        import sys,time
        
        def sprint(str):
           for c in str + '
        ':
             sys.stdout.write(c)
             sys.stdout.flush()
             time.sleep(3./90)
        
        sprint('hello world')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-06
          • 2010-09-20
          • 2021-02-06
          • 1970-01-01
          • 2016-10-10
          • 2016-10-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多