zoukankan      html  css  js  c++  java
  • 大爽Python入门练习题 35 控制台文本展示输出直方图

    大爽Python入门练习题总目录

    第三章 中期练习题 困难 第5题

    题目

    简介

    实现一个函数print_histogram(lst)
    接受一个数组lst作为参数。
    直接输出该数组对应的直方图(每项的值对应直方图中柱的高度)。

    无返回值。

    补充: 默认lst数组不为空,起码有一个元素。

    详细说明

    比如如下数组

    lst = [3, 1, 5, 2, 4]
    

    绘制的直方图如下

      #  
      # #
    # # #
    # ###
    #####
    

    lst

    1. 第一个值为3,直方图第一个(列)柱子的高度为3
    2. 第二个值为1,直方图第二个(列)柱子的高度为1
    3. 第三个值为5,直方图第三个(列)柱子的高度为5
    4. 第四个值为2,直方图第四个(列)柱子的高度为2
    5. 第五个值为4,直方图第五个(列)柱子的高度为4

    所有的柱子均用#表示,
    对应项的值为多少,该柱就有多少个#
    总输出行数为最高柱子的高度。

    示例

    示例一

    lst = [3, 1, 5, 2, 4]
    print_histogram(lst)
    

    输出为

      #  
      # #
    # # #
    # ###
    #####
    

    示例二

    lst = [1, 3, 2, 0, 5, 4, 1, 4]
    print_histogram(lst)
    

    输出为

        #   
        ## #
     #  ## #
     ## ## #
    ### ####
    

    分割线

    本小段没有实际意义,
    仅用于分隔题目和答案。
    防止学生无意中直接看到答案,
    影响思路。



















    答案

    def print_histogram(lst):
        max_h = lst[0]
        for item in lst:
            if item > max_h:
                max_h = item
    
        for ri in range(max_h, 0, -1):
            for item in lst:
                if item >= ri:
                    print("#", end="")
                else:
                    print(" ", end="")
    
            print()
    
  • 相关阅读:
    浅谈最长上升子序列(LIS)
    浅谈树链剖分
    数字计数
    windy数
    骑士(树形dp)
    旅游规划
    皇宫看守
    k8s安装报错
    linux文件夹存储潜规则
    搭建覆盖率测试环境
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15690329.html
Copyright © 2011-2022 走看看