如何忽略python中的下一行

时间:2016-02-08 07:03:27

标签: python loops

我正在尝试打印这样的东西

*
* *
* * *
* * * *

这是我的代码

while 1:
    n=int(input("Enter the N"))
    if n<3:
        print("Wrong Input")
        continue
    else:
        for i in range(1,n+1):
            for j in range(1,i+1):
                print("x")

我指的是question,但我无法做到这一点。 你能帮帮我怎样才能实现这个目标? 谢谢

2 个答案:

答案 0 :(得分:4)

示例:

for i in range(5): 
     print('* '* i)

*
* *
* * *
* * * *

修改

或者你可以使用更快的map函数:

print('\n'.join(map(lambda x: '* ' * x, range(5))))

<强>时序

In [25]: %timeit print('\n'.join(map(lambda x: '* ' * x, range(5))))
1000 loops, best of 3: 289 us per loop

In [26]: %timeit for i in range(5): print('* '*i)
1000 loops, best of 3: 444 us per loop

答案 1 :(得分:1)

或类似的东西也可能有效:

>>> n = 5
>>> s = '\n'.join('*' * i for i in range(5))
>>> print(s)

*
**
***
****

或者将它包装在一个函数定义中,然后使用你需要的任何数字传递任何你想要的字符:

>>> def my_print(c, n):
        s = '\n'.join(c * i for i in range(n+1))
        return s

>>> my_string = my_print('^', 10)
>>> print(my_string)


^
^^
^^^
^^^^
^^^^^
^^^^^^
^^^^^^^
^^^^^^^^
^^^^^^^^^
^^^^^^^^^^