【Python】用文本打印树

From:http://zhidao.baidu.com/link?url=O8U5TynGBMojDw2iFhlghPPf5_ZE1X8CAQMrK19pv-KxhvKCc6Z2yzsoQaukgN2haYudVO7Hg3c0ZvNm8ALcY_

#!/usr/bin/python3
# -*- coding: utf-8 -*-
 
def print_tree(tree):
    buff = ['ROOT/']
    _print_tree(tree, buff, '', 0)
    print('\n'.join(buff))
 
def _print_tree(tree, buff, prefix, level):
    count = len(tree)
    for k, v in tree.items():
        count -= 1
        if v:
            buff.append('%s +- %s/' % (prefix, k))
            if count > 0:
                _print_tree(v, buff, prefix + ' |  ', level + 1)
            else:
                _print_tree(v, buff, prefix + '    ', level + 1)
        else:
            buff.append('%s +- %s' % (prefix, k))
 
def test():
    tree = {
        'bin': { 'bash': None, 'cat': None, 'cp': None, },
        'etc': {
            'init.d': { 'apache2':None, 'slapd':None, 'sshd':None, },
            'passwd': None,
            'hosts': None,
        },
        'var': {
            'log': {
                'apache2': { 'accesslog':None, 'errorlog': None, },
            },
        },
    }
    print_tree(tree)
 
if __name__ == '__main__':
    test()

输出

ROOT/
 +- etc/
 |   +- passwd
 |   +- init.d/
 |   |   +- apache2
 |   |   +- sshd
 |   |   +- slapd
 |   +- hosts
 +- bin/
 |   +- cp
 |   +- bash
 |   +- cat
 +- var/
     +- log/
         +- apache2/
             +- errorlog
             +- accesslog

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,这是一个在 Python 中制作圣诞的示例代码: ``` # 导入必要的库 import turtle # 设置画布大小 turtle.setup(800, 600) # 设置画笔速度 turtle.speed(10) # 画圣诞 def draw_tree(length): # 判断长度是否大于 10,如果是,就继续画 if length > 10: # 画干 turtle.forward(length) # 向左倾斜 45 度 turtle.left(45) # 递归调用画的函数,画左分支 draw_tree(length - 10) # 向右倾斜 45 度 turtle.right(90) # 递归调用画的函数,画右分支 draw_tree(length - 10) # 向左倾斜 45 度,返回到干的起点 turtle.left(45) # 向后移动,返回到干的起点 turtle.backward(length) # 设置画笔颜色 turtle.color("green") # 设置画笔宽度 turtle.width(3) # 起始位置向上移动 turtle.penup() turtle.backward(100) turtle.pendown() # 向下倾斜 60 度 turtle.left(90) turtle.forward(300) turtle.right(90) # 调用画的函数 draw_tree(100) # 设置圣诞球的颜色 turtle.color("red") # 画圣诞球 turtle.begin_fill() turtle.circle(10) turtle.end_fill() # 设置星星的颜色 turtle.color("yellow") # 画星星 turtle.begin_fill() for i in range(5): turtle.forward(10) turtle.right(144) turtle.end_fill() # 等待用户关闭窗口 turtle.exitonclick() ``` 在运行代 ### 回答2: 你好!以下是我用Python实现圣诞的代码: ```python def print_christmas_tree(height): for i in range(height): print(' ' * (height - i - 1) + '*' * (2 * i + 1)) print(' ' * (height - 1) + '|') print_christmas_tree(5) ``` 这个函数称为`print_christmas_tree`,它接受一个参数`height`,代表圣诞的高度。函数通过循环逐行打印圣诞的形状。 首先,我们通过一个for循环从0到`height-1`来遍历每一层。每一层包含两部分:空格部分和星号部分。空格的数量由当前层数决定,即`height - i - 1`。星号的数量为`(2 * i + 1)`,其中`i`为当前层数。 然后,在最后一层打印一个竖线“|”,表示圣诞干。 例如,如果调用`print_christmas_tree(5)`,将会打印出一个高度为5的圣诞: ``` * *** ***** ******* ********* | ``` 希望对你有帮助!圣诞快乐! ### 回答3: 要用Python做一个圣诞,我们可以使用文本图形来表示它。以下是一个简单的例子: ```python def draw_christmas_tree(rows): for i in range(rows): print(" " * (rows - i - 1) + "*" * (2 * i + 1)) print(" " * (rows - 1) + "*") # 绘制干 # 测试 rows = 5 # 设置的行数 draw_christmas_tree(rows) ``` 在这个例子中,我们使用了一个循环来控制的行数。每一行输出的星号数量为行数的两倍减去1,星号之前的空格数量为总行数减去当前行数减一。 输出的结果如下: ``` * *** ***** ******* ********* * ``` 这是一个简单的圣诞形状,干只有一行。 根据需要,你可以调整`rows`变量以改变的大小。你还可以通过添加更多的输出来定制圣诞,例如装饰物或星星。 祝你圣诞快乐!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值