• 程序员都看不懂的代码


    ############字符或特殊符号横向条形图输出##################################
    # 4大互联网公司市值信息列表
    chart = [['alibaba', 4580], ['amazon', 9628], ['apple', 11331], ['oracle', 2053]]
    hchartall = 300                        # 数据单位长度参数
    mark = '$'                            # 条形图填充字符为“$”
    horiz = []                            # 横向二维列表
    for item in chart:                    # 遍历列表,转换量化数据为二维列表
        hchartwid = int(item[1] / hchartall)        # 获得条形图量化数据
        horiz.append(item[0].ljust(8) +hchartwid * mark)  # 转换为二维列表
    for item in horiz:                    # 遍历输出条形图
        print( '  \033[1;31;0m ' + item + '\033[0m')

    for item in chart:                            # 遍历列表
        hchartwid = int(item[1] / hchartall)      # 获取条形图量化数据
        print( item[0].ljust(8) + '  \033[1;31;0m ' + hchartwid * mark + '\033[0m')

    ############横向条形图背景色##################################
    chart=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]]# 4大互联网公司市值信息
    hchartall=300                    # 数据单位长度参数
    color= '41m '                     # 条形图颜色参数
    for item in chart:                # 遍历列表
        hchartwid = int(item[1] / hchartall)    # 获得条形图量化数据
        print( item[0].ljust(8) + '  \033[1;32;' +color  + ''.ljust(hchartwid)+ '\033[0m')
        print('')                    # 输出空行条形图之间的间隔

    ############纵向条形图字符填充##################################
    chart=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]] 
    hchartall=900            # 条形图数据单位长度
    mark=chr(0x25a0)            # 填充条形图的字符为方块
    datazip=[]                # 量化后的比较数据
    horiz=[]                # 横向列表矩阵
    stri=''                # 存储从横向列表矩阵临时提取的字符
    vertical=[]            # 纵向列表矩阵
    for item in chart:        # 遍历4大互联网公司市值列表
        hchartwid = int(item[1] / hchartall)    # 按单位长度计算各公司条形图比较数据
        datazip.append(hchartwid)            # 添加条形图数据到比较数据的列表
    maxdata=max(datazip)                # 获取数据比较列表的最大值
    for item in datazip:                # 遍历数据比较列表
       # 转换为由1和0组成的横向列表矩阵,列表前面的值为1(比较数据大小决定),后面补充0
        horiz.append('1' * int(item) + (maxdata-int(item))*'0')
    for i in range(maxdata):                # 按数据比较列表的最大值转换成纵向矩阵列表
        for item in horiz:                # 遍历横向矩阵列表
            stri=stri+item[maxdata-i-1]        # 提取每个列表的一个字符
        vertical.append(stri)                # 添加到纵向列表
        stri=''                        # 清空临时存储的横向数据
    for item in vertical:                # 遍历纵向矩阵列表
        for i in item:                # 遍历其中的一个列表
            if i=='1':                    # 如果列表元素为“1”
                print('  \033[31m'+mark *2+ '\033[0m',end=' ')    # 按行输出字符
            else:                    # 如果列表元素为"0 "
                print("      ",end=' ')        # 输出为空
        print()                    # 输出空列
    print(chart[0][0],chart[1][0],chart[2][0],chart[3][0] )    # 添加公司名称信息

    # 添加数据标签,显示市值
    print('\33[35m',chart[0][1],' ',chart[1][1],' ',chart[2][1],' ',chart[3][1],'\33[0m')   
    for item in vertical:                        # 遍历列表矩阵
        for i in item:                        # 遍历其中一个列表
            if i=='1':                            # 如果为“1”,输出背景色
                print('  \033[41m'+'   '+ '\033[0m',end='  ')
            else:                            # 如果为“0”,不输出内容
                print("     ",end='  ')    
        print()                            # 输出间隔列
    print(chart[0][0],chart[1][0],chart[2][0],chart[3][0] )    # 输出公司名称

     

  • 相关阅读:
    Python 音频处理以及可视化 Amplitude,MFCC,Mel Spectrogram, librosa 库
    NoSQL的特点以及与RDBMS的区别
    华为OD机试真题- 阿里巴巴找黄金宝箱(IV)-2023年OD统一考试(B卷)
    《SpringCloud Alibaba》实战
    python基于PHP+MySQL的图书分享平台
    ROS服务(Service)通信:通信模型、Hello World与拓展
    RDD——Action算子
    微信小程序源码获取和反编译
    wordcloud—根据文本生成词云—Python第三方库
    Scrapy基本概念——Item Pipeline
  • 原文地址:https://blog.csdn.net/s13166803785/article/details/125516162