Python:圣诞树

时间:2015-12-12 14:30:11

标签: python python-3.x

我需要打印一张如下所示的圣诞树:

  /\  
 /  \
/    \

到目前为止,这是我的代码:

for count in range (0,20):
    variable1 = count-20
    variable2 = count*2

print('{0:{width1}}{1:{width2}}' .format('/','\\', width1=variable1 , width2=variable2))

我使用的是Python 3.5。编码说不允许用sstring格式说明符

3 个答案:

答案 0 :(得分:1)

如果你可以使用不同的方法,这个方法使用生成器和字符串连接

n=10
print('\n'.join(' '*(n-i)+'/'+' '*2*i+'\\' for i in range(n)))

产生

          /\
         /  \
        /    \
       /      \
      /        \
     /          \
    /            \
   /              \
  /                \
 /                  \

或者,如下面@zvone所建议的,为什么不添加一些随机装饰?

print('\n'.join(' '*(n-i)+'/'+''.join(random.choice(' # *') for _ in range(2*i))+'\\' for i in range(n)))

产生更美妙的结果(甚至部分由SO&#13的语法分析器点亮)

          /\
         /*#\
        / ###\
       /* #  #\
      /#  ***  \
     /*#  # ##  \
    /   #* * * # \
   /##  **##   *#*\
  /    *  # #  ## #\
 /*# ## *#   * * #* \

圣诞快乐!!!

:)

答案 1 :(得分:1)

import builtins
builtins.unicode = str
print ('                  ',chr(0x2605))
for count in range (20):
    print ('{0:>{width1}}{1:>{width2}}' .format('/','\\', width1 = 20-count , width2 = 2*count+1))
print ('-----------------------------------------'
print ('                 [      ]                ')
print ('                 [      ]                ')
print ('                 [      ]                ')
print ('                 [      ]                ')
print ('                 [      ]                ')
print ('-----------------------------------------')

感谢帮助我完成工作的人们!

答案 2 :(得分:0)

以下适用于Python 3.4,我认为它也适用于Python 3.5。

Traceback (most recent call last):
  File "/home/dusan/PycharmProjects/untitled1/2.py", line 10, in <module>
    powers = list(reversed(powers)) #obrtanje liste
TypeError: 'list' object is not callable

导入部分 - 正如其他人在评论中提到的那样 - 不使用固定宽度进行格式化。

请注意必要的'&gt;'右对齐所需的对齐字符。