python 格式化打印

python 格式化打印

# coding=utf-8
def myprint(d):
    print(myprint2(d, 0))


def myprint2(d, deep=0):
    result = ''
    newline = '\n'
    suojin = '    ' * deep
    if isinstance(d, dict):
        start, end = '{', '}'
        result = suojin + start + newline  # 定义当前字典的开头缩进,以及左括号
        for key in d.keys():
            result += myprint2(key, deep + 1) + ' : '  # 打印键,以及冒号
            if isinstance(d[key], (list, dict, tuple)):
                result = result + newline + myprint2(d[key], deep + 1) + ',' + newline  # 如值不是字符串,则换行进行打印这个序列或者字典
            else:
                result = result + repr(d[key]) + ',' + newline  # 若值是字符串,则直接打印字符串,并且加上逗号和换行

        result += suojin + end  # 打印结果的缩进,以及右括号
        return result

    elif isinstance(d, list):
        start, end = '[', ']'
        result = suojin + start + newline  # 定义当前序列的开头缩进,以及左括号
        for value in d:
            result = result + myprint2(value, deep + 1) + ',' + newline  # 直接将内容放入myprint2打印,并且加上新的缩进
        result += suojin + end  # 定义结尾的缩进,以及右括号
        return result
    elif isinstance(d, tuple):
        start, end = '(', ')'
        result = suojin + start + newline
        for value in d:
            result = result + myprint2(value, deep + 1) + ',' + newline
        result += suojin + end
        return result
    else:
        return suojin + repr(d)  # 打印字符串加上引号结果


if __name__ == '__main__':
    d1 = {'a': {'a': 1, 'b': 2}}
    d2 = ['aaaaaaa', 1231231235, [12312311, 123132, 3123213], ['asdfsaf', '123213123', 'asdfsaf']]
    d3 = 'asdfasddf'
    d4 = (1, 2, 3, 4)
    print(myprint(d3))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值