【问题标题】:How to print the characters horizontally? [duplicate]如何水平打印字符? [复制]
【发布时间】:2018-02-01 05:46:18
【问题描述】:
def rand_gen1():
    import random
    for i in range(8):
        print random.choice('0123456789abcdefghijklmnopqrstuvwxyz')

上面的代码垂直打印一个由 8 个随机字符或整数组成的字符串。我需要它像'abcd123b' 一样打印,即水平打印。

我需要做哪些改变?

【问题讨论】:

  • @khelwood 最好连接起来,而不是像 SumnerEvans 建议的那样在每次迭代中打印。

标签: python


【解决方案1】:

您需要将随机选择存储在一个字符串中,然后打印该字符串:

import random

def rand_gen1():
    rand_str = ''
    for i in range(8):
        rand_str += random.choice('0123456789abcdefghijklmnopqrstuvwxyz')
    print rand_str

每个print 语句都会创建一个新行。

【讨论】:

    【解决方案2】:

    现在您正在使用print 在自己的新行上打印出所有内容。您可以通过将这些值存储在字符串变量中来将它们全部变成一个字符串。

    import random
    def rand_gen1():
        output = ""
        for i in range(8):
            output += random.choice('0123456789abcdefghijklmnopqrstuvwxyz')
        print output
    

    【讨论】:

      【解决方案3】:
      from random import choice
      from string import ascii_lowercase, digits
      
      
      def rand_gen(length=8, pool=digits+ascii_lowercase):
      
          return ''.join(choice(pool) for _ in range(length))
      
      
      print rand_gen()
      

      【讨论】:

        【解决方案4】:

        或者像这样(Richard Neumann 用于从字符串导入):

        import random
        from string import ascii_lowercase, digits
        
        def rand_gen3():
            print(''.join(random.choice(ascii_lowercase + digits) for _ in range(8)))
        
        rand_gen3()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-22
          • 1970-01-01
          • 1970-01-01
          • 2014-12-13
          • 2018-12-15
          • 1970-01-01
          相关资源
          最近更新 更多