【问题标题】:how to make output line up (Ex. '12345') in python?如何在python中使输出对齐(例如'12345')?
【发布时间】:2022-01-07 16:52:09
【问题描述】:

我编写了一个简单的数字生成函数,但我希望输出水平排列('234567'),而不是像当前输出那样垂直排列。

import random

def get_num():
    listz = [1,2,3,4,5]
    for x in listz:
        print(random.randrange(1,7))
    

get_num()

【问题讨论】:

  • 您使用 print 的关键字参数end 确定您是否转到下一行,例如:print(x,end="")

标签: python random numbers generator


【解决方案1】:

只是需要在打印函数中添加一个参数如下:

import random

def get_num(): 
    listz = [1,2,3,4,5] 
    for x in listz: 
        y = random.randrange(1,7)
        print(y,end="")

get_num()

输出是:

$python3 main.py
53234

【讨论】:

    【解决方案2】:

    你可以使用join:

    import random
    
    def get_num():
        print(''.join(str(random.randrange(1, 7)) for _ in range(5)))
    
    get_num() # e.g., 16146
    

    在您的代码中,listz 不扮演任何角色(除了提供其长度 5)。所以我把它换成了for _ in range(5)

    【讨论】:

    • 我认为我们不需要在这里对整数进行字符串化。这也很好用。
    • 超级优雅,我喜欢eeee
    • @DineshPandikona 你完全正确!但对我来说,将逻辑和print 放在一个函数中并不符合我的口味。我什至想把print从函数中去掉,放到函数调用之外,但是我不想做进一步的改变……
    • @j1-lee 你们在说什么?如果您删除 str,它会崩溃。
    • @KellyBundy 哦,你也是对的!我认为这只是意味着我们可以像他的回答一样在循环中使用print(random.randrange(1, 7), end=''),而无需诉诸join。但我可能误解了他。要使用join,当然需要使用str
    【解决方案3】:
    from random import randrange as rand
    
    def get_randoms():
        randoms = [rand(1, 7) for _ in range(5)]
        randoms_str = [str(x) for x in randoms]
        return ', '.join(randoms_str)
    
    print(get_randoms())
    

    【讨论】:

    • 除此之外,我不知道为什么你的其他答案有这么多的反对票——你已经删除了——不过,一般来说,当答案还包含解释时,答案会更有用,所以这就是我会养成的习惯(在这里也很有用)。我当然理解这种挫败感,因为我最近有两个答案被否决而没有解释原因。另外,我提到您会恢复您的声誉,但请注意这可能需要一点时间;声誉每天重新计算一次。抱歉在这里发帖;在我提交此评论之前,您的其他答案已被删除。
    • 非常感谢您支持 Jeremy。希望我学得更多后能尽快回答更难的问题。
    【解决方案4】:

    也可以使用空分隔符一次性打印:

    import random
    
    def get_num():
        print(*random.choices(range(1, 7), k=5), sep='')
    
    get_num() # e.g., 16146
    

    【讨论】:

    • 谢谢!这看起来是最干净的方法。这五个数字中的每一个都对应于 eff wordlist 中用于创建 diceware 密码的单词。我知道没有什么能真正取代掷骰子,但使用它可以大大减少为每个新帐户创建此类密码的繁琐性
    猜你喜欢
    • 2020-04-12
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2022-01-11
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多