【问题标题】:Reverse upside-down asterisk triangle反转倒置星号三角形
【发布时间】:2013-09-26 17:31:12
【问题描述】:

我正在尝试使用嵌套的 for 循环向用户询问一个整数,然后程序将输出一个倒置的倒三角形,它的底部有星号的数量并向下工作。 它应该看起来像这样:

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

我的代码:

def pattern():
  integer = requestInteger("Please enter a number")
  for number in range(0, integer):
    for variable in range(integer, 0, -1):
      if variable - 1 > number:
        sys.stdout.write(' ')
      else:
        sys.stdout.write('*')
  sys.stdout.write('\n')

输出这个:

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

我不太确定如何更改我的 for 循环以使其正常工作,并且我已经尝试了一段时间,因此非常感谢您的帮助。

【问题讨论】:

  • 你试过什么?如果你向后而不是向前循环外循环会发生什么?
  • 在 if 和 else 块中切换代码

标签: python ascii-art


【解决方案1】:

我的看法是这样的:

def pattern():
    integer = int(raw_input("Please enter a number"))
    for number in range(0, integer):
        print " " * number + "*" * (integer - number)

这是作业吗(嵌套循环是强制性的)?提示:* 运算符可以很容易地被 for 循环替换。

【讨论】:

    【解决方案2】:

    你可以使用reversed range:

    u=int(raw_input('Number:'))
    for i in reversed(range(1,u)):
        print ' '*(u-i),'*'*i
    

    【讨论】:

      【解决方案3】:

      我知道这是一段很长的时间,但我想分享我对这个问题的处理方法。

      def pattern(size):
          for i in reversed(range(1, size+1)):
              print("*" * i)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        • 2016-02-05
        • 2017-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-08
        相关资源
        最近更新 更多