Python 3.x - 使用代表整数的符号创建垂直列表

标签 python python-3.x

Python新手,想知道是否有人可以帮助我解决我面临的这个问题。 我能够打印一个水平显示信息的列表,但是当我尝试创建一个垂直列表时,我似乎无法实现它或找到任何其他可以指导我完成类似场景的帮助。

    cat1 = 4
    cat2 = 3
    cat3 = 5
    cat4 = 3
    print(" 0 to 29:   ", end=" ")
    for i in range(cat1):
        print("*", end=" ")
    else:
        print("\n 30 to 39:  ", end=" ")
        for i in range(cat2):
            print("*", end=" ")
        else:
            print("\n 40 to 69:  ", end=" ")
            for i in range(cat3):
                print("*", end=" ")
            else:
                print("\n 70 to 100: ", end=" ")
                for i in range(cat4):
                    print("*", end=" ")
     break

This outputs: 
0 to 29:   * * * *
30 to 39:  * * *
40 to 69:  * * * * *
70 to 100: * * *

What I am trying to do is:
| 0 to 29 | 30 to 39 | 40 to 69 | 70 to 100 |
     *          *          *         *
     *          *          *         *
     *          *          *         *
     *                     *         
                           *         

任何帮助将不胜感激! 谢谢!

最佳答案

此代码片段将产生您想要的输出:

cats = [cat1, cat2, cat3, cat4]
print('| 0 to 29 | 30 to 39 | 40 to 69 | 70 to 100 |')

for i in range(max(cats)):
    c1, c2, c3, c4 = ['*' if i < cat else ' ' for cat in cats]
    print('    {}          {}          {}          {}'.format(c1, c2, c3, c4))

您可以调整 {} 之间的空格量如果您愿意,可以以不同的方式缩进星号

编辑: 正如 @Bram Vanroy 指出的,我的 for 循环可以改进为使用 print('' + ''.join(['*' if i < cat else ' ' for cat in cats]))而不是我的两行,将代码减少到

cats = [cat1, cat2, cat3, cat4]
print('| 0 to 29 | 30 to 39 | 40 to 69 | 70 to 100 |')

for i in range(max(cats)):
    print('    ' + '          '.join(['*' if i < cat else ' ' for cat in cats]))

关于Python 3.x - 使用代表整数的符号创建垂直列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52990808/

相关文章:

python - Python中赋值错误之前引用的局部变量

python - Unicode解码错误: 'ascii' codec can't decode byte 0xc3 in position 40: ordinal not in range(128)

python - 是否可以在没有任何标志的情况下使用 argparse ?

python - 无法在 Access by Python 中删除数据

python - 将列表作为 N 维 numpy 数组的切片传递

Python Numpy nan_to_num 帮助

python-3.x - python gnupg : "No Pinentry" error during key deletion

python - pandas .loc 返回不一致的类型

python - jsonResponse = r.json() 名称错误 : name 'r' is not defined

python - 如何在Python中将不同的时间序列图合并成二维图