gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:05:30 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com