【问题标题】:Python 3 Beginner - Iterating TrianglePython 3 初学者 - 迭代三角形
【发布时间】:2014-04-11 18:38:20
【问题描述】:

我正在通过过去的测试,代码的输出是这样的:

Enter the height:
5
     5
    44
   333
  2222
 11111

我必须写下代码 - 到目前为止,我知道如何制作一个普通的三角形:

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

 *
 **
 ***
 ****

我的主要问题是,如果三角形迭代数字,我如何获得主体?

那么第一个三角形的代码是什么? 帮助将不胜感激:)

【问题讨论】:

  • 通过过去的测试:你真的应该拿一些,试着弄清楚如何去做。
  • 你是对的 - 我很懒惰。不好意思,下次会做的更好:)
  • 另外,感谢大家的帮助。

标签: python loops geometry


【解决方案1】:

这个代码几乎是一样的,你只需要改变你打印每个字符的次数,把你要打印的*改成一个数字。

for i in range(5):
    print(str(5-i) * (i+1))

这会生成:

5    
44   
333  
2222 
11111

要使其正确对齐,就像在您的示例中一样,只需对空格字符使用字符串乘法即可。

for i in range(5):
    print(' ' * (4-i) + str(5-i) * (i+1))

这会让你:

    5
   44
  333
 2222
11111

【讨论】:

    【解决方案2】:

    你可以使用 str:

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

    【讨论】:

      【解决方案3】:

      其他一些答案基本上是正确的,但这一个正确地证明了你的三角形就像原始输出一样。

      def print_triangle(rows):
          for i in range(rows + 1):
              print((str(rows + 1-i)*i).rjust(rows))
      

      【讨论】:

        【解决方案4】:
        height = 5
        for i in range(height, 0, -1):
            empty_chars = ' ' * (i - 1)
            filler_chars = str(i) * (height - i + 1)
            print('{}{}'.format(empty_chars, filler_chars))
        

        【讨论】:

          【解决方案5】:

          带有外部数组和否定变量的格式化字符串和间距。

          def height(num):
            rangenum=range(num+1)
            for i in rangenum:
              print(("%"+str(num)+"s")%(i*str(rangenum[-i])))
          
          print("%(spacing as a number)s"%(a string))
          

          返回

          (spacing as a number)-(a string)
          

          示例:

          print("%10s"%"this")
          

          返回:

          "      this"
          

          旁注:

          %-(a number)s
          

          是正确的。

          (尽管python试图减少数百万种方法来做同样的事情,但仍然有数千种)

          https://docs.python.org/2/tutorial/inputoutput.html

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-12
            • 2017-09-20
            • 1970-01-01
            • 2011-04-08
            • 2019-03-11
            • 1970-01-01
            相关资源
            最近更新 更多