有关在循环中添加字符的问题

时间:2018-10-26 15:29:50

标签: python loops

我正在学习编程课,并且试图弄清楚如何编写代码来根据用户输入的高度和字符来构建三角形。这是我开始做的事情,但是会失败,因为我无法根据用户的身高输入弄清楚如何在每行上打印多个字符。关于我需要更改的任何想法?这本书并没有多大帮助,我仍然不熟悉适当的术语,因此我的搜索没有发现任何有用的东西,谢谢!

triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')
i = 0
while i <= 0:
    if i > triangle_height:
        break
    print(triangle_char)
    i = i + 1 
    if i == 1:
        print(triangle_char, triangle_char)
        i = i + 1
    if i == 2:
        print(triangle_char, triangle_char, triangle_char)

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的工作代码,我想您想要一个直角三角形。在这种情况下,您可以使用单个for循环并使用join在字符之间放置空格" "triangle_char*i重复字符i的次数,其中i的范围是1triangle_height

triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')

for i in range(1, triangle_height + 1):
    print(" ".join(triangle_char*i))

Enter a character:
*
Enter triangle height:
6

*             # ^
* *           # | 
* * *         # | height = 6
* * * *       # | 
* * * * *     # |
* * * * * *   # v

答案 1 :(得分:0)

实际上,您可以在这里完成一千种方法。这是创建对称三角形的示例:

def draw_line(i, char, total_height):

    if i == total_height:
        print ( char * (2 * total_height - 1) )
        return None

    side = (total_height - i) * " "

    if i == 1:
        middle = char
    else :
        middle = char + (2*i - 3) * " " + char

    print( side + middle + side )
    return None


def create_triangle(char="*",  height=5):

    for i in range(1, height+1):
        draw_line(i, char, height)

    return None


if __name__ == '__main__':
    create_triangle("^", 7)

这将输出:

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

使用Python之类的脚本语言,您可以使用一系列有用的函数轻松地操作字符串。祝你好运!