我该怎么做*&引用;在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!请坐飞机。感谢您提供了答案,但是您是否也可以添加关于代码如何解决问题的解释?