Python学习笔记(十):字符串实战(1)-《垂直柱状图》题解

Python中如何使用matplotlib给柱状图添加数据标签(bar_label()) Python中如何使用matplotlib给柱状图添加数据标签(bar_label())     本文主要记录如何用使用matplotlib给柱状图添加数据标签,是以matplotlib.pyplot.bar_label()为例。 目录Python中如何使用matplotlib给柱状图添加数据标签(bar_label())0.更新matplotlib库1.导入库2.数据准备3.绘制柱状图4.绘图结果5.完整代码6.bar_label()相关参数的补充说明7.参考文献 0.更新matplotlib库      阅读详情

目录

 

原题目链接

解题思路

每行的输出

代码实现


原题目链接

原题目:洛谷 P1598

解题思路

1.循环4次,每次输入内容添加到一个字符串内。

2.遍历字符串,对于每个字母,根据其ASCII码进行基数计数。同时找出出现的最高次数(maxn)。

3.从maxn开始递减,每次遍历所有基数,若次数大于等于当前的高度则输出星号。

举个例子:

上图:计数完毕后的图像

下图: 从maxn=7开始,向下一行一行地输出星号

 

4.输出完毕,输出最底层的字母A-Z。

这就是本题的基本解决思路了。但是依照原题,每行后不得有多余的空格。

接下来,就研究一下怎么在每行的时候按照要求输出了。

每行的输出

Python对于C++有个好处,就是可以更加方便地遍历列表。

于是,在每行,再次横向遍历26个基数,并检查当前的基数所对应的次数是否可以在本行输出星号。

在横向遍历26个基数的同时,再次遍历当前基数右侧的所有基数,

确保本行的输出是否到头(如果接下来没有满足条件的基数的话)。

改成图像就是:

代码实现

重要声明:抄袭、复制代码是非常恶劣的行为。此类行为将会导致您成为作弊者。代码仅供参考。

a=''                        #初始化字符串a
for i in range(4):
    a+=input()              #输入
maxn=0
sumn=list()                 #初始化存放计次的列表
for i in range(26):
    sumn.append(0)          #建立长度为26的列表,每个列表项都为0
for i in a:                 #遍历字符串
    if 65<=ord(i)<=90:      #如果当前字符的ASCII码显示其为大写字母
        sumn[ord(i)-65]+=1  #计数
        if sumn[ord(i)-65]>maxn:
            maxn=sumn[ord(i)-65]    #如果当前次数大于最大值,则更新
while maxn>=1:              #遍历每行(上图可见)
    for i in range(26):     #遍历每个基数
        wait=0              #存放右侧是否还有符合条件的基数的变量为wait
        for o in range(i+1,26):
            if sumn[o]>=maxn:
                wait=1      #如果发现符合条件的,则将wait的值赋1
                break
        if wait==0 and sumn[i]>=maxn:
            print('*')
            continue
        if wait==1 and sumn[i]>=maxn:
            print('*',end=' ')
        if wait==1 and sumn[i]<maxn:
            print(' ',end=' ')#判断输出(上图可见)
    maxn-=1
o=""
for i in range(65,91):
    o+=chr(i)
    if i!=91:
        o+=" "
print(o)                      #输出最底一行字母

 

Python实现垂直输出 如果您需要在输出过程中保持更多的格式控制和可读性,可以使用Python的pprint(pretty print)模块。综上所述,您可以使用for循环、join()函数或pprint模块来实现Python中的垂直输出。这些方法各有优劣,您可以根据具体的需求选择适合的方法。pprint模块的pprint()函数根据指定的宽度将列表按照垂直方向输出。另一种常用的方法是使用join()函数和换行符"\n"来连接列表中的元素,并打印输出结果。这种方法将列表中的每个元素用换行符连接起来,实现了垂直输出的效果。 阅读详情

相关推荐

100天精通Python(可视化篇)——第80天:matplotlib绘制不同种类炫酷柱状图代码实战(簇状、堆积、横向、百分比、3D柱状图)

0. 专栏导读 1. 普通柱状图 2. 簇状柱形图 3. 堆积柱形图 4. 横向柱状图 5. 横向双向柱状图 6. 百分比堆积柱形图 7. 3D柱形图 8. 3D堆积柱形图 9. 3D百分比堆积柱形图

努力让自己发光,对的人才能迎着光而来 2万+

Python 之 Matplotlib 柱状图(竖直柱状图和水平柱状图)、直方图和饼状图

柱状图,竖直柱状图,水平柱状图,直方图 plt.hist(),饼状图 pie()

每天进步一点点! 7万+

100天精通Python(可视化篇)——第104天:Pyecharts绘制多种炫酷象形柱状图参数说明+代码实战

一、象形柱状图介绍 1. 象形柱状图是什么? 2. 象形柱状图应用场景 二、象形柱状图配置选项 1. 导包 2. add_yaxis函数 3. symbol参数说明 3. 图形网站推荐 三、象形柱状图实战 1. 基础象形柱状图 2. 传入网络图片链接 3. 传入本地图片 4. 传入SVG代码

努力让自己发光,对的人才能迎着光而来 2万+

Python学习14:字符串垂直输出(python123)

描述 将输入的字符串垂直输出‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 输入格式 这是一个字符串

weixin_60530224的博客 6076

HSMS/SECS/GEM/GEM300半导体通讯协议介绍

HSMS/SECS/GEM/GEM300半导体通讯协议解决方案介绍 目录 SECS/GEM协议通讯 1 目录 2 1.介绍 3 1.1 产品概述 3 1.1.1 高扩展性 4 1.2 通讯实现 4 1.2.2多主机实现 4 1.3 当前的SEMI标准 5 1.3.1 功能跟友商对比 6 1.4 软件灵活性 7 1.5 无需学习SECS 7 1.6 自定义消息传递 8 1.7 记录收集 8 1.8 SECS Manual文档 8 1.9 产品清单 8 2 产品结构 9 2.1 控制面板 9 2.2 使用环境

semisecs 16万+

不修改MMDetection源码使用自定义数据和模型

以目标检测为例,用非侵入式的模型和MMDetection数据的方法进行配置。也就是不改动MMDetection的任何源码或目录的条件下,使用自定义数据训练自定义模型。

Dlite的技术笔记 1342

【算法】字符串 hash 进阶

本文为算法的学习总结,讲解字符串 hash。

weixin_44413191的博客 738

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4797

Python科学计算与图形渲染库

本课程是NumPy丛入门到精通课程。主要介绍了NumPy函数库的使用方法。

Polymarket链上预测市场自动化交易代理开发实战指南

自动化交易代理是量化交易的核心工具,它通过预设的算法规则,自动执行市场分析、决策与下单操作,旨在提升交易效率与纪律性。其技术原理通常涉及实时数据获取、策略引擎计算、交易执行与风险管理等模块的协同工作。在区块链与DeFi领域,这类代理的价值尤为凸显,能够高效处理链上合约交互,捕捉去中心化市场的套利机会。具体到应用场景,链上预测市场如Polymarket,为自动化策略提供了丰富的博弈标的。本文以Polymarket交易代理项目为例,深入剖析其基于Node.js与ethers.js的技术栈实现,详解从环境配置、策

weixin_42533910的博客 581

深入解析SVPWM七段式与五段式调制的电压波形差异及优化策略

本文深入解析了SVPWM七段式与五段式调制在相电压和线电压波形上的核心差异。七段式波形对称、谐波含量低,适合追求静音与性能的场景;五段式开关次数少、损耗低,适用于对效率与散热要求高的应用。文章提供了基于谐波与损耗权衡的优化策略与选型指南。

weixin_29216957的博客 440

python 绘制柱状图

使用 Matplotlib 提供的bar()函数来绘制柱状图。与前面介绍的 plot() 函数类似,程序每次调用 bar() 函数时都会生成一组柱状图, 如果希望生成多组柱状图,则可通过多次调用 bar() 函数来实现。 下面程序使用柱状图来展示《C语言基础》和《Java基础》两套教程历年的销量数据。 import matplotlib.pyplot as plt import numpy...

qq_40977108的博客 2万+

Go语言全面解析:从入门到精通

Go语言是由Google开发的一种静态类型、编译型编程语言,具有简洁、高效、安全的特点。它特别适合高并发服务、云原生应用和网络编程等场景。Go采用Goroutine和Channel实现轻量级并发,性能接近C/C++。与其他语言相比,Go语法更简洁但类型更严格,编译速度快且跨平台支持好。虽然Go支持多种设计模式和编程范式,但其面向对象实现方式与传统语言不同。标准库丰富且拥有Gin、GORM等企业级框架。核心语法包括包管理、变量声明、函数定义、流程控制等,适合构建高性能后端服务和系统工具。

博哥哥的博客 4925

python如何绘制柱状图

1、插件安装 安装两种插件 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy 2、普通柱状图 柱状图绘制步骤 导入matplotlib.pyplot模块 准备数据,可以使用numpy/pandas整理数据 调用pyplot.bar()绘制柱状图 上代码 import numpy as np imp

ben_na_的博客 10万+

RK3588 部署 YOLO26 目标检测:从训练到 NPU 推理

如果做垂直场景(工业缺陷、农作物、特定零件),需要自己标数据。采集图像(500+ 张,覆盖不同光照/角度)→ 筛选(删除模糊/无目标)→ LabelImg 标注(选择 YOLO 格式)→ 划分(train:val:test = 7:2:1)labelImg├── train/├── val/├── test/YOLO26 在 RK3588 上的全流程是 PC 端训练 + ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。

m0_71589036的博客 110

手把手教你学simulink(90.1)--直流电动机实例:基于Simulink的基本模型的直流电动机(DC Motor)建模

直流电动机(DC Motor)因其结构简单、控制方便和良好的调速性能,广泛应用于各种工业自动化、机器人技术、家用电器以及航空航天等领域。为了更好地理解和应用直流电动机的工作原理及其控制系统,本项目旨在通过Simulink对直流电动机进行基本模型的建模与仿真。

MHD0815的博客 441

Python Matplotlib绘制柱状图(bar和barh函数)详解

使用 Matplotlib 提供的bar()函数来绘制柱状图。与前面介绍的 plot() 函数类似,程序每次调用 bar() 函数时都会生成一组柱状图, 如果希望生成多组柱状图,则可通过多次调用 bar() 函数来实现。 下面程序使用柱状图来展示《C语言基础》和《Java基础》两套教程历年的销量数据。 上面程序中,第 9、10 两行代码用于在数据图上生成两组柱状图,程序设置了这两组柱状...

人生苦短, 还不用Python? 5万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Rust每日一练(Leetday0029) 柱状图、最大矩形、扰乱字符串

84. 柱状图中最大的矩形 Largest-rectangle-in-histogram🌟🌟🌟   85. 最大矩形 Maximal Rectangle🌟🌟🌟   87. 扰乱字符串 Scramble String🌟🌟🌟

汉阳Hann's Home 2437

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python数据分析学习day08:柱状图

x 表示x坐标,数据类型为float类型,一般为np.arange()生成的固定步长列表 height 表示柱状图的高度,也就是y坐标值,数据类型为float类型,一般为一个列表,包含生成柱状图的所有y值 width 表示柱状图的宽度,取值在0~1之间,默认值为0.8 bottom 柱状图的起始位置,也就是y轴的起始坐标,默认值为None align 柱状图的中心位置,“center”,"lege"边缘,默认值为’center’ color 柱状图颜色,默认为蓝色 alpha 透明度,取值在0~

weixin_44748589的博客 6347

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

洛谷 P1598 垂直柱状图

P1598 垂直柱状图 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。 输入格式 四行字符,由大写字母组成,每行不超过100个字符 输出格式 由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行...

bupt_sanqing的博客 369

洛谷P1598垂直柱状图

用柱状条形统计图来统计每个字母的出现次数,并用‘*’符号来代表出现的次数。

weixin_73756947的博客 1681

【Python 实战基础】如何绘制柱状图分析两个学生成绩数据

如何绘制柱状图分析两个学生成绩数据 文件读写 基础语法 字符串处理 文件生成 数据构建

菜鸟实战的博客 2251

matplotlib绘制柱状图(基础操作)

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。本文由浅入深,教你画柱状图

wish_you_luck的博客 3万+

python画柱状图bar:并列柱状图

参数: 1.alpha:柱状图形的透明度 2.width:柱形图的宽度 3.edgecolor:图形的边缘颜色 4.label:图例,每个图像代表的含义 让图例展示出来的代码,并可指定其在图形中的位置 5.plt.legend("upper right") 方法一: import numpy as np import pandas as pd import matplotlib.p...

weisiyu_liang的博客 1万+

简单字符串——洛谷#P1598 垂直柱状图(Python实现)

题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。 Python解答 用string.ascii_uppercase输出A-Z的字符串,再将每个字母作为key值,初始化value值为0统计频数。 依次输入句子,字母出现则在字典中加1。将出现频数最高次的value值...

给我一点温度 869

数据可视化:绘制图表(一)——柱状图

理解掌握如何用matplotlib库绘制柱状图

Tanzy666的博客 6360
上一篇: 字符串常用处理函数(C++)
下一篇: Python学习笔记(十一):循环初步(for)
Draba_Chen
博客等级 码龄8年 134粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值