制作直方图

图片发自简书App
  • 首先获取列表的最大元素,同时也是确定输出总行数的关键
    data = [7, 3, 2, 9, 5, 1, 4, 0, 2, 8, 3, 9]
  • 行数
    r = max(data) + 2
  • 列数
    c = len(data)

通过循环打印图像

  • 每行第一列的第一个字符串必定以'|'开头
  • 是否有星(*)依赖于data列表中的元素大小
  • 最后再适当结合运行结果调整参数,使图像效果达到最好

代码(基于Python3)

data = [7, 3, 2, 9, 5, 1, 4, 0, 2, 8, 3, 9]
r = max(data) + 2
c = len(data)
for i in range(r):
    for j in range(c):
        if i < max(data) - data[j]:
            k = 0
        elif i < max(data):
            k = 1
        elif i == max(data):
            print('-' * 63)
            break
        else:
            print(' {}月 '.format(j + 1), end='')
            continue
        if not j:
            print('|' + ' ' * (2 - k) + '*' * k + ' ' * 2, end='')
        elif j < c - 3:
            print(' ' * (3 - k) + '*' * k + ' ' * 2, end='')
        elif j < c - 1:
            print(' ' * (4 - k) + '*' * k + ' ' * 2, end='')
        else:
            print('  *  ')

运行结果如下:


360截图16620615114117128.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容