Python 蟒蛇:圣诞树

Python 蟒蛇:圣诞树,python,python-3.x,Python,Python 3.x,我需要打印一棵像这样的圣诞树: /\ / \ / \ 以下是我目前的代码: 用于范围(0,20)内的计数: 变量1=计数-20 变量2=计数*2 打印({0:{width1}}{1:{width2}})。格式('/','\\',width1=variable1,width2=variable2)) 我正在使用Python 3.5。编码表示在字符串格式说明符中不允许使用符号如果您可以使用不同的方法,这个方法使用生成器和字符串连接 n=10 print('\n'.join(' '*(n-

我需要打印一棵像这样的圣诞树:

/\
/  \
/    \
以下是我目前的代码:

用于范围(0,20)内的计数:
变量1=计数-20
变量2=计数*2
打印({0:{width1}}{1:{width2}})。格式('/','\\',width1=variable1,width2=variable2))

我正在使用Python 3.5。编码表示在字符串格式说明符中不允许使用符号

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

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的语法分析器照亮)

圣诞快乐


:)

以下内容适用于Python3.4,我假设它也适用于Python3.5

    for count in range (20):
        print('{0:>{width1}}{1:>{width2}}' .format('/','\\', width1=20-count , width2=2*count+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 ('-----------------------------------------')

谢谢你帮助我完成的工作

我认为您需要使用
variable1
etc而不是硬代码
20
您的意思是什么?你的意思是我不应该使用宽度吗?还有没有字符串引号的
variable1=count-20
,等等你说
width1=20
,它应该是
width1=variable1
它说的是无效的说明符为什么不添加一些随机的修饰<代码>打印('\n'.join('*(n-i)+'/'+'''.join(random.choice('.*'))用于范围内(2*i))+'\\'用于范围内(n))圣诞快乐:)@zvone哈哈哈,gr8!我已经把它添加到我简单的基本答案中。荣誉!:)
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 ('-----------------------------------------')