Python循环在单独的行上生成输出

时间:2017-03-12 01:02:53

标签: python

我是编程新手,并试图在python中创建一个程序,根据用户输入创建一个大小的楼梯。该程序应如下所示:

Favorable Output

这是我到目前为止的代码;

steps = int(input('How many steps? '))
print('__')
for i in range(steps):
  n = steps+i
  print(' '*(n-2) + '|_')
print('_'*n + '|')

这就是我的输出;

My Output

注意 - 水平线是下划线'_',垂直线是竖线字符'|'。

5 个答案:

答案 0 :(得分:1)

要获得正确数量的步骤,您必须将for循环更改为:

for i in range(steps-1):

这是因为您希望打印|_的时间少于步骤;您的“最高”步骤__已经算作一步了。

整个事情(更改了其他一些内容以使格式更好):

steps = int(input('How many steps? '))
print('__')
for i in range(steps-1):
    print(' '*(2+2*i) + '|_')
print('_'*2*steps + '|')

输出:

output

答案 1 :(得分:0)

更简单的考虑n是当前步骤并给出步长(2),那么您只需要2n作为展示位置:

steps = 5
print('__')
for n in range(1, steps):
    print(' '*n*2 + '|_')
print('_'*steps*2 + '|')

输出:

__
  |_
    |_
      |_
        |_
__________|

您可以将其抽象为任何步长,例如:

steps = 5
size = 4
print('_'*size)
for n in range(1, steps):
    print(' '*n*size + '|' + '_'*(size-1))
print('_'*steps*size + '|')

输出:

____
    |___
        |___
            |___
                |___
____________________|

答案 2 :(得分:0)

def stairs(steps):
    print("__")
    length = 1
    for i in range(steps):
        length += 1
        print("%s|_" % (" "*(length+i)),)
    print("%s|" % ("_"*(length+steps+1)),)

stairs(4)

输出:

__
  |_
    |_
      |_
        |_
__________|

答案 3 :(得分:0)

您可以通过while完成此操作。     counter = 0 while counter < steps: Create_stairs() increase counter

答案 4 :(得分:0)

不确定您的确切问题是什么。步骤的模式是:

  • 步骤1 - &gt; 4个空白
  • 步骤2 - &gt; 6个空白
  • 步骤3 - &gt; 8个空白
  • 步骤n - &gt; 2 +(2 * n)空白

    steps = int(输入('步数多少?'))