Python如何将横向输出的星号表格调整为垂直打印格式
问题说明
你现有的Python代码会横向打印x、y、z三个变量对应的星号,现在需要调整为垂直柱状的打印效果。
原有代码
x = 0 y = 0 z = 0 sign = "*" x = int(input("Enter a number : ")) y = int(input("Enter a number : ")) z = int(input("Enter a number : ")) print(f'{"x":2}{"y":3}{"z":4}') print(f'{x*sign}{y*sign}{z*sign}')
核心修改思路
原有代码是把每个变量对应的所有星号一次性拼接在同一行打印,因此是横向展示。要改成垂直展示只需要调整打印逻辑:
- 取三个输入值的最大值作为需要打印的总行数
- 逐行遍历,每一行分别判断当前行号是否小于等于对应变量的值:是则打印星号,否则打印空字符占位
- 每一列的占位宽度和表头保持一致,保证内容对齐
修改后完整代码
x = 0 y = 0 z = 0 sign = "*" x = int(input("Enter a number : ")) y = int(input("Enter a number : ")) z = int(input("Enter a number : ")) # 打印表头,和原有逻辑保持一致 print(f'{"x":2}{"y":3}{"z":4}') # 计算需要打印的最大行数 max_line = max(x, y, z) for i in range(1, max_line + 1): # 逐列判断是否需要打印星号,不足的用空格占位,宽度和表头对应 col_x = sign if i <= x else ' ' col_y = sign if i <= y else ' ' col_z = sign if i <= z else ' ' print(f'{col_x:<2}{col_y:<3}{col_z:<4}')
效果验证
当你输入x=2、y=2、z=1时,就会输出你期望的效果:
x y z * * * * *
内容的提问来源于stack exchange,提问作者Himasha
相关产品推荐
相关产品推荐

