我该怎么做*&引用;在python循环上垂直打印?

我该怎么做*&引用;在python循环上垂直打印?,python,Python,我试图做一个横向和纵向的列表;由输入产生。 水平列表已完成,如下所示: 0-29 : * 30-39 : ** 40-69 : ** 70-100 : ** 1-10 10-20 20-30 * * * * * * 但是现在我需要让星星像这样从上到下移动: 0-29 : * 30-39 : ** 40-69 : ** 70-100 : ** 1-10 10-20 20-30 * * * * * * 但结果是: 0-29 *

我试图做一个横向和纵向的列表;由输入产生。 水平列表已完成,如下所示:

0-29 : *
30-39 : **
40-69 : **
70-100 : **
1-10 10-20 20-30
 *     *     *
 *     *
 * 
但是现在我需要让星星像这样从上到下移动:

0-29 : *
30-39 : **
40-69 : **
70-100 : **
1-10 10-20 20-30
 *     *     *
 *     *
 * 
但结果是:

0-29  **30-39  *40-69  ***70-100
我尝试过不同的编码,这是我想到的最接近的。关于如何使星星垂直移动有什么建议吗

var = ""
var= "0-29  "
for x in range(cat1):
        var += '*'
print(var, end="")

var = ""
var= "30-39  "
for x in range(cat2):
        var += '*'
print(var, end="")

var = ""
var= "40-69  "
for x in range(cat3):
        var += '*'
print(var, end="")

var = ""
var= "70-100  "
for x in range(cat4):
        var += '*'
print(var, end="")
您不能“垂直打印”。打印总是在水平线上。您需要逐行构建输出,或使用专用库,如ncurses:

您可以使用来构造每行的输出位置。我对
cat
的值做了一些假设。请务必查看下面的代码片段对您是否有意义

cat1 = 2
cat2 = 3
cat3 = 1
cat4 = 4

header = ['0-29', '30-39', '40-69', '70-100']
print(' '.join(header))
for x in range(max(cat1, cat2, cat3, cat4)):
    print(" {0}     {1}     {2}     {3}".format(
        '*' if x < cat1 else ' ',
        '*' if x < cat2 else ' ',
        '*' if x < cat3 else ' ',
        '*' if x < cat4 else ' '
    ))

请在问题中包含任何相关代码。你的问题应该是说明问题的答案。请不要破坏你的帖子。它有一些很好的答案,这个问题必须保持可读性。哇,太神奇了。我已经尝试手动添加toprint“”“*”,但这是一个非常大的混乱。非常感谢。很多。嗨,欢迎来到Stack Overflow!请坐飞机。感谢您提供了答案,但是您是否也可以添加关于代码如何解决问题的解释?