程序员都看不懂的代码

############字符或特殊符号横向条形图输出##################################
# 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] )    # 输出公司名称

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金枝玉叶9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值