You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:45:03