【问题标题】:How to make a triangle of x's in python?如何在python中制作x的三角形?
【发布时间】:2012-12-17 05:12:42
【问题描述】:

我将如何编写一个生成这样的三角形的函数:

    x
   xx
  xxx
 xxxx
xxxxx

假设函数是def triangle(n),底行将有n x 的数量

我只知道做一个盒子:

n = 5
for k in range(n):
    for j in range(n):
        print('x', end='')
    print()

【问题讨论】:

  • 您应该先自己尝试一下,而不是仅仅发布问题。这也计入您之前的问题。
  • 两个提示:Python 的 string methods 以及您的三角形是右对齐文本这一事实。
  • 另一个提示:您可以将字符串乘以整数来重复它们 ('a'*3 == 'aaa')。每行有多少个空格和多少个x?
  • 嗯,好的,我试试看。我想我应该在其中的某个地方使用一个while循环。我通常会多试一试,但我从早上 5 点起就一直在死记硬背,而且考试是在早上,所以我很着急。

标签: python function geometry


【解决方案1】:

老兄,超级简单:

def triangle(n):
    for i in range(1, n +1):
        print ' ' * (n - i) + 'x' * i

甚至:

def triangle(n):
    for i in range(1, n +1):
        print ('x' * i).rjust(n, ' ')

triangle(5) 的输出:

X xx xxx xxxx xxxxx

不要只是复制这段代码而不理解它,尝试并了解它是如何工作的。通常练习学习编程语言的好方法是尝试不同的问题并看看如何解决它。我推荐this site,因为我刚开始编程时经常使用它。

而且,如果你不知道怎么做,不要只发布你的作业或类似的东西,只有当你遇到困难时。首先试着想出很多你认为可以解决问题的方法,如果你不知道如何完成某项特定任务,就查一下并从中学习。

【讨论】:

  • 我对你的问题投了反对票,因为你似乎没有努力过
  • 很抱歉,我通常不会,但我现在真的很绝望,因为我的期末考试还有大约 7 个小时。我不只是复制它,我确实会在看到它之后尝试了解它是如何工作的,因为在我的测试中不会以这种确切的方式询问它,所以我需要知道它是如何工作的。无论如何,谢谢!
  • 太棒了,我希望你在测试中表现出色:P
【解决方案2】:

您可以对程序进行一些小改动

n = 5
for k in range(n):
    for j in range(n):
        print('x' if j+k >= n-1 else ' ', end='')
    print()

虽然这不是一个很好的方法。您应该考虑使用类似的东西一次打印一个整体

n = 5
for k in range(n):
    i = ???
    j = ???
    print(' '*i+'x'*j)

你只需要锻炼ij

【讨论】:

    【解决方案3】:
    hight = 5
    for star in range(hight):
        for num in range(hight):
            print('*' if num+star >= hight-1 else ' ', end='')
        print()
    

    【讨论】:

      【解决方案4】:

      答案:

      def triangle(i, t=0):
          if i == 0:
              return 0
          else:
              print ' ' * ( t + 1 ) + '*' * ( i * 2 - 1 )
              return triangle( i - 1, t + 1 )
      triangle(5) 
      

      输出:

      * * * * * * * * *
         * * * * * * *
           * * * * *
             * * * 
               *
      

      【讨论】:

      • 这可能是正确的答案,但请解释代码是如何工作的,而不是仅仅免费赠送代码
      【解决方案5】:
      def triangle(n):
          x = ('')
          for i in range(n, 0, -1):
              x += '*'
              print(' ' * (i + 1) + x)
      

      【讨论】:

      • 这并没有改善已经接受的答案
      猜你喜欢
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      相关资源
      最近更新 更多