python进阶练习题:自圣诞树【难度:2级】:

任务

圣诞节快到了,你的任务是建立一个定制的圣诞树与指定的字符和指定的高度.

输入:

  • chars:指定的字符.
  • N:指定的高度.一个正整数大于2.

输出:

  • 多行字符串.每一行是由’\ N`分离.树包含两个部分:叶子和树干.

叶子应该是N行.第一行填写1块炭,在第二行填入3个字符,等等.一个单一的空间将被添加之间有两个调整字符,以及一些必要的空间将被添加到左侧,以保持树的形状.没有足够的空间需要被添加到右侧.

躯干应至少1个单位的高度,这取决于N的值. n的最小值为3,和树干的高度为1米单位的高度.如果N增加3,和树干增加1个单位.例如,当n是3,4或5,躯干应为1行;当n为6,7或8,躯干应该是2行;等等.

还不明白的任务吗?请看下面的例子;-)

例子

对于字符= "* @○" 和n = 3,输出应该是:


  *
 @Ø
* @Ø
  |

对于字符= "* @○" 和n = 6,输出应该是:


     *
    @Ø
   * @Ø
  * @ *Ø
 @ *ØØ@
* @ *ØØ@
     |
     |

对于字符= "1234" 和n = 6,输出应该是:


     1
    2 3
   4 1 2
  3 4 1 2
 3 4 1 2 3
4 1 2 3 4 1
     |
     |

对于字符= "123456789" 并且n = 3,输出应该是:


  1
 2 3
4 5 6
  |

编程目标:

def custom_christmas_tree(chars, n):
    #your code here


测试样例:

Test.describe("Basic tests")
Test.assert_equals(custom_christmas_tree("*@o",3),
"""  *
 @ o
* @ o
  |""")
Test.assert_equals(custom_christmas_tree("*@o",6),
"""     *
  * @ o *
 @ o * @ o
* @ o * @ o
     |
     |""")
Test.assert_equals(custom_christmas_tree("1234",6),


最佳答案(多种解法):

点击查看答案

更多关联题目:

交流讨论:

景越Python基础训练营QQ群

欢迎各位同学加群讨论,一起学习,共同成长!

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/custom-christmas-tree

更多推荐

python进阶练习题:自圣诞树【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶