Python-VBA编程500例-024(入门级)

字符串写入的行数(Line Count For String Writing)在实际应用中有着广泛的应用场景。常见的应用场景有:

1、文本编辑及处理:在编写或编辑文本文件时,如使用文本编辑器或文本处理器,经常需要处理字符串并确定其在文件中的行数。这有助于用户更好地理解和组织文本内容。

2、日志文件分析:系统或应用程序的日志文件通常包含大量的字符串信息,这些信息按行写入。分析这些日志文件的行数可以帮助识别错误、异常或性能问题,进而进行故障排除和优化。

3、代码格式化与检查:在编程领域,字符串写入的行数对于代码格式化、风格检查和版本控制等任务至关重要。通过统计行数,可以确保代码符合一定的格式规范,便于阅读和维护。

4、文档与报告生成:在生成文档或报告时,可能需要将特定的字符串信息按行写入文件。例如,生成报告摘要、数据表格或列表时,每一行可能代表一个数据点或一条记录。

5、网络通信与协议:在网络通信中,字符串信息经常以特定的格式按行发送和接收。例如,在HTTP协议中,请求和响应的头部信息通常按行分隔。处理这些字符串的行数有助于解析和处理网络数据。

6、配置文件解析:许多应用程序使用配置文件来存储设置和参数。这些配置文件通常以键值对或特定格式的行存储信息。解析这些文件的行数有助于读取和解析配置参数。

7、数据处理与统计:在处理大量数据时,字符串的行数可以作为数据量的一个指标。通过对行数进行统计和分析,可以了解数据的分布、趋势和异常情况。

总之,字符串写入的行数在多个领域中都有广泛的应用,有助于更好地处理、分析和呈现字符串信息。 

1、字符串写入的行数:
1-1、Python:
# 1.问题描述:
# 把字符串str1中的字符从左至右写入行中,每行最大宽度为100,写入操作过程中,若内容超过100的宽度,则自动转行.把字符串str1全部写完,
# 至少需要多少行?最后一行用去的宽度是多少?将结果以整数数列的形式返回.
# 2.问题示例:
# 输入 str1_width = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10],
# str1 = "abcdefghijklmnopqrstuvwxyz",输出[3, 60],即每个字符的宽度为10,若要将26个字符都写进去,则需两整行和一个长度为60的行.
# 3.代码实现:
class Solution:'''num_len_ofline函数:计算给定字符串str1在给定字符宽度数组str1_width下的行数和最后一行的剩余长度参数str1_width:一个列表,表示每个字符的打印宽度参数str1:待打印的字符串返回值:一个包含两个元素的列表,第一个元素为行数,第二个元素为最后一行的剩余长度'''def num_len_ofline(self, str1_width, str1):line = 1  # 当前行数length = 0  # 当前行的长度for c in str1:# 累加当前字符的宽度到当前行的长度length += str1_width[ord(c) - ord('a')]# 如果当前行长度超过100,则换行,并重置当前行长度为当前字符的宽度if length > 100:line += 1length = str1_width[ord(c) - ord('a')]# 如果字符串遍历完,但最后一行长度恰好为100,需要额外增加一行(因为下一行即使没有字符也需要开始新的一行)if length == 100:line += 1return [line, length]
# 主函数
if __name__ == '__main__':# 初始化字符宽度列表,这里每个字符的宽度都是10str1_width = [10] * 26# 待处理的字符串,包含所有小写英文字母str1 = "abcdefghijklmnopqrstuvwxyz"# 创建Solution类的实例solution = Solution()# 打印输入的字符宽度和字符串print("输入的字符宽度:", str1_width)print("输入的字符串:", str1)# 调用num_len_ofline函数并打印结果result = solution.num_len_ofline(str1_width, str1)print("输出:", result)
# 4.运行结果:
# 输入的字符宽度: [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
# 输入的字符串: abcdefghijklmnopqrstuvwxyz
# 输出: [3, 60]
1-2、VBA:
Rem 自定义函数,功能:计算给定字符串str1在给定字符宽度数组str1_width下的行数和最后一行的剩余长度
Function num_len_ofline(str1_width As Variant, str1 As String) As VariantDim line As Integer ' 当前行数Dim length As Integer ' 当前行的长度Dim i As Integer ' 循环计数器Dim c As String ' 当前字符line = 1 ' 初始化行数length = 0 ' 初始化当前行长度' 遍历字符串中的每个字符For i = 1 To Len(str1)c = mid(str1, i, 1) ' 获取当前字符' 累加当前字符的宽度到当前行的长度length = length + str1_width(Asc(c) - Asc("a"))' 如果当前行长度超过100,则换行,并重置当前行长度为当前字符的宽度If length > 100 Thenline = line + 1length = str1_width(Asc(c) - Asc("a"))End IfNext i' 如果字符串遍历完,但最后一行长度恰好为100,需要额外增加一行If length = 100 Thenline = line + 1End If' 返回一个包含两个元素的数组,第一个元素为行数,第二个元素为最后一行的剩余长度num_len_ofline = Array(line, length)
End Function
Rem 执行程序,功能:调用自定义函数num_len_ofline,在立即窗口中输出结果
Sub TestRun()Dim str1_width() As Variant ' 初始化字符宽度数组Dim str1 As String ' 待处理的字符串Dim result() As Variant ' 存储结果的数组Dim line As Integer ' 行数Dim length As Integer ' 最后一行的剩余长度Dim i As Integer '计数器' 初始化字符宽度列表,这里每个字符的宽度都是10ReDim str1_width(25) ' 因为数组是从0开始索引的,所以大小为25(对应26个小写字母)For i = 0 To 25str1_width(i) = 10Next i' 待处理的字符串,包含所有小写英文字母str1 = "abcdefghijklmnopqrstuvwxyz"' 调用num_len_ofline函数result = num_len_ofline(str1_width, str1)' 提取结果并打印line = result(0)length = result(1)' 打印输入的字符宽度和字符串Debug.Print "输入的字符宽度:" & vbCrLf & "[" & Join(str1_width, ", ") & "]"Debug.Print "输入的字符串:" & vbCrLf & str1' 打印结果Debug.Print "输出:[" & line & "," & length & "]"
End Sub
'结果输出:
'输入的字符宽度:
'[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
'输入的字符串:
'abcdefghijklmnopqrstuvwxyz
'输出: [3,60]

注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,在立即窗口中输出结果。

2、相关文章:

2-1、Python-VBA编程500例-022(入门级) 

2-2、Python-VBA编程500例-023(入门级)​​​​​​​ 

Myelsa的Python算法之旅(高铁直达):Myelsa的Python算法之旅(高铁直达)-CSDN博客
欢迎访问个人主页:非风V非雨-CSDN博客
欢迎志同道合者一起交流学习,我的QQ:94509325/微信:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2906087.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Aurora IP的Framing帧接口和Streaming流接口

本文介绍Aurora IP配置时要选择的接口类型以及两种接口类型之前的区别。 Aurora IP接口有两种模式:Framing帧接口,Streaming流接口 目前一直在用的都是Framing帧接口。 Framing帧接口和Streaming流接口的主要区别是什么呢? 顾名思义&#x…

微信开发者工具接入短剧播放器插件

接入短剧播放插线 申请添加插件基础接入app.jsonapp.jsplayerManager.js数据加密跳转到播放器页面运行出错示例小程序页面页面使用的方法小程序输入框绑定申请添加插件 添加插件:登录微信开发者平台 ——> 设置 ——> 第三方设置 ——> 插件管理 ——> 搜索“短剧…

【数据结构 | 图论】如何用链式前向星存图(保姆级教程,详细图解+完整代码)

一、概述 链式前向星是一种用于存储图的数据结构,特别适合于存储稀疏图,它可以有效地存储图的边和节点信息,以及边的权重。 它的主要思想是将每个节点的所有出边存储在一起,通过数组的方式连接(类似静态数组实现链表…

云存储比起自建服务器做数据存储的好处是什么?

近年来,国内科技行业开始趋于饱和,越来越多的企业将海外业务作为新的增长点。 但由于国内外政策、市场等因素不同,在出海过程中,安全合规、海外业务保障、应对各地区合规挑战成为企业最普遍的需求之一。 最基本的问题之一是&…

餐饮行业在线预约小程序 提前取号小程序源码系统 带完整的安装代码包以及搭建教程

移动互联网的快速发展,餐饮行业也在不断探索与新兴技术的融合。传统的餐厅预约、取号方式已经无法满足消费者日益增长的便捷性需求。下面,小编给大家分享一款专为餐饮行业打造的在线预约小程序源码系统,旨在帮助餐厅实现智能化、高效化的服务…

软件测试基础理论、测试用例及设计方法、易混淆概念总结【软件测试】

一.软件测试基础理论 1.软件定义 软件是计算机系统中与硬件相互依存的一部分,包括程序、数据以及与其相关文档 的完整集合。 程序是按事先设计的功能和性能要求执行的指令序列; 数据是使程序能正常操作信息的数据结构; 文档是与程序开发、维…

【Python函数和类2/6】函数的参数

目录 目标 为函数设置参数 传递实参 关键字实参 关键字实参的顺序 位置实参 常见错误 缺少实参 位置实参的顺序 默认值形参 参数的优先级 默认值形参的位置 总结 目标 上篇博客中,我们在定义函数时,使用了空的括号。这表示它不需要任何信息就…

使用AOP实现打印日志

首先创建annotation.SystemLog类: package com.gjh.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD…

海外短剧系统搭建影视类分销软件APP开发网剧CPS分销系统H5,海外短剧国际版源码系统:连接世界,共享短剧文化。

目录 一、海外短剧系统搭建部署流程 二、开发完善的系统模板功能展示 总结: 一、海外短剧系统搭建部署流程 搭建和部署海外短剧系统需要经过以下步骤: 系统设计:首先需要进行系统设计,确定系统的功能和需求。包括用户注册登录、…

区块链dapp开发 dapp系统开发方案

在区块链技术的兴起和普及的推动下,去中心化应用程序(DApp)成为了当前数字世界中的热门话题之一。DApp 的开发不仅需要考虑技术方面的挑战,还需要深入了解区块链的工作原理和应用场景。本文将介绍一种 DApp 系统开发的基本方案&am…

没学数模电可以玩单片机吗?

我们首先来看一下数电模电在单片机中的应用。数电知识在单片机中主要解决各种数字信号的处理、运算,如数制转换、数据运算等。模电知识在单片机中主要解决各种模拟信号的处理问题,如采集光照强度、声音的分贝、温度等模拟信号。而数电、模电的相互转换就…

华为云亮相KubeCon EU 2024,以持续开源创新开启智能时代

3月21日,在巴黎举办的云原生顶级峰会KubeCon EU 2024上 ,华为云首席架构师顾炯炯在“Cloud Native x AI:以持续开源创新开启智能时代”的主题演讲中指出,云原生和AI技术的融合,是推动产业深刻变革的关键所在。华为云将…

报错:torch.distributed.elastic.multiprocessing.errors.ChildFailedError:

错误: torch.distributed.elastic.multiprocessing.errors.ChildFailedError: 这个主要是torch的gpu版本和cuda不适配 我的nvcc -V是11.8 torch使用的: pip install torch2.0.1 torchvision0.15.2 torchaudio2.0.2 --index-url https://download.pyt…

C#自定义最大化、最小化和关闭按钮

目录 1.资源文件 2.读取资源文件中的图片 3.WindowState属性 4. 示例 用户在制作应用程序时,为了使用户界面更加美观,一般都自己设计窗体的外观,以及窗体的最大化、最小化和关闭按钮。本例通过资源文件来存储窗体的外观,以及最…

【机器学习之---数学】随机游走

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 随机游走 1. 概念 1.1 例1 在你的饮食俱乐部度过了一个富有成效的晚上后,你在不太清醒的状态下离开了。因此,你会醉醺醺地在展…

算法系列--动态规划--回文子串系列

💕"我们好像在池塘的水底,从一个月亮走向另一个月亮。。"💕 作者:Mylvzi 文章主要内容:算法系列–动态规划–回文子串系列 今天为大家带来的是算法系列--动态规划--回文子串系列(1),本文重点掌握如何快速判…

esp单片机下arduino_gfx不相干显示驱动优化对flash空间的占用对比

一般情况下,很多esp32或者esp8266下的tft模块驱动都会包含很多种,而我们只需要其中一种,那就有个疑问这些被编译进的显示驱动到底占用了多少空间,是否需要把他优化掉? 这是默认的驱动列表: 84个文件&…

Java毕业设计-基于springboot开发的原创歌曲分享平台-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、平台功能模块2、后台功能模块2.1管理员功能模块2.2用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开…

Node爬虫:原理简介

在数字化时代,网络爬虫作为一种自动化收集和分析网络数据的技术,得到了广泛的应用。Node.js,以其异步I/O模型和事件驱动的特性,成为实现高效爬虫的理想选择。然而,爬虫在收集数据时,往往面临着诸如反爬虫机…

HarmonyOS 应用开发之任务(Mission)管理场景介绍

任务(Mission)管理相关的基本概念如下: AbilityRecord:系统服务侧管理一个UIAbility实例的最小单元,对应一个应用侧的UIAbility组件实例。系统服务侧管理UIAbility实例数量上限为512个。MissionRecord:任务…