【问题标题】:How do I make my Print Statement print on only one line?如何让我的 Print Statement 只打印在一行上?
【发布时间】:2021-11-01 22:42:52
【问题描述】:

在这个程序中,我试图将我的代码打印为“random letters here”而不是“r”“a”“n”“d”“o”“m”等。

import random
import time

All = "abcdefghijklmnopqrstuvwxyz1234567890"
i = 0

while i < 6:
    time.sleep(1)
    print(All[random.randint(1,35)])
    i += 1

【问题讨论】:

  • 这能回答你的问题吗? Print in one line dynamically
  • 为什么是time.sleep
  • 我有点困惑为什么会故意延迟,但要回答您的问题,您可以在打印语句中包含 end='' 以获得所需的输出。

标签: python random while-loop printing


【解决方案1】:

您可以将end='' 传递给print 语句,这样后续的prints 就不会被换行符分隔,这是默认行为。此外,在这里使用带有forrange 迭代器而不是while 是有意义的。

注意:我冒昧地将睡眠时间缩短了一半,因此更容易测试。

import random
import time

All = "abcdefghijklmnopqrstuvwxyz1234567890"

for _ in range(6):
    time.sleep(0.5)
    print(All[random.randint(1, 35)], end='')

【讨论】:

    【解决方案2】:

    给你!

    import random
    import time
    
    All = "abcdefghijklmnopqrstuvwxyz1234567890"
    i = 0
    s = ""
    while i < 6:
        time.sleep(1)
        s += All[random.randint(1,35)]
        i += 1
    
    print(s)
    

    每个打印语句都以换行符结尾,因此您需要先“构建”字符串(在本例中为 s),然后打印一次。

    【讨论】:

    • 我认为sleep 的想法是在同一行但每秒打印一次,而不是在一行上打印整个结果
    【解决方案3】:

    试试这个。

    import random
    import time
    import sys
    
    All = "abcdefghijklmnopqrstuvwxyz1234567890"
    i = 0
    someString = ""
    while i < 6:
        time.sleep(1)
        print()
        sys.stdout.write("\r "+str(All[random.randint(1,35)]))
        sys.stdout.flush()
        i += 1
    
    

    【讨论】:

      【解决方案4】:

      我不确定这是否是一个家庭作业项目/问题,但如果不是,我想你可以使用random.sample 将它们混为一谈(我将排除sleep 因为似乎不需要它,你也没有解释它的原因)

      from random import sample
      
      s = "abcdefghijklmnopqrstuvwxyz1234567890"
      print(*sample(s, k=len(s)), sep='')
      

      示例结果:

      urftloqb38swz1ma9x5yg4p2ceijdhnk07v6
      

      也仅供参考,您使用的字符串可以使用字符串库实用地制作:

      >>> import string
      >>> string.ascii_lowercase + string.digits
      abcdefghijklmnopqrstuvwxyz0123456789
      

      它确实在1 之前而不是在末尾有0,但考虑到你在做什么,它应该不会产生任何有意义的差异。

      【讨论】:

        猜你喜欢
        • 2011-08-15
        • 1970-01-01
        • 1970-01-01
        • 2019-11-06
        • 2021-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-27
        相关资源
        最近更新 更多