首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-03-03 04:44
  • 3404
  • 6293
blog.csdn.net

目录

1、字符串写入的行数:

1-1、Python:

1-2、VBA:

2、相关文章:

Python算法之旅:Myelsa的Python算法之旅(高铁直达)-CSDN博客

个人主页:非风V非雨-CSDN博客

欢迎志同道合者一起交流学习,我的QQ:94509325/微信

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

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

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

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

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

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

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

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

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

1、字符串写入的行数:
1-1、Python:
  1. # 1.问题描述:
  2. # 把字符串str1中的字符从左至右写入行中,每行最大宽度为100,写入操作过程中,若内容超过100的宽度,则自动转行.把字符串str1全部写完,
  3. # 至少需要多少行?最后一行用去的宽度是多少?将结果以整数数列的形式返回.
  4. # 2.问题示例:
  5. # 输入 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],
  6. # str1 = "abcdefghijklmnopqrstuvwxyz",输出[3, 60],即每个字符的宽度为10,若要将26个字符都写进去,则需两整行和一个长度为60的行.
  7. # 3.代码实现:
  8. class Solution:
  9. '''
  10. num_len_ofline函数:计算给定字符串str1在给定字符宽度数组str1_width下的行数和最后一行的剩余长度
  11. 参数str1_width:一个列表,表示每个字符的打印宽度
  12. 参数str1:待打印的字符串
  13. 返回值:一个包含两个元素的列表,第一个元素为行数,第二个元素为最后一行的剩余长度
  14. '''
  15. def num_len_ofline(self, str1_width, str1):
  16. line = 1 # 当前行数
  17. length = 0 # 当前行的长度
  18. for c in str1:
  19. # 累加当前字符的宽度到当前行的长度
  20. length += str1_width[ord(c) - ord('a')]
  21. # 如果当前行长度超过100,则换行,并重置当前行长度为当前字符的宽度
  22. if length > 100:
  23. line += 1
  24. length = str1_width[ord(c) - ord('a')]
  25. # 如果字符串遍历完,但最后一行长度恰好为100,需要额外增加一行(因为下一行即使没有字符也需要开始新的一行)
  26. if length == 100:
  27. line += 1
  28. return [line, length]
  29. # 主函数
  30. if __name__ == '__main__':
  31. # 初始化字符宽度列表,这里每个字符的宽度都是10
  32. str1_width = [10] * 26
  33. # 待处理的字符串,包含所有小写英文字母
  34. str1 = "abcdefghijklmnopqrstuvwxyz"
  35. # 创建Solution类的实例
  36. solution = Solution()
  37. # 打印输入的字符宽度和字符串
  38. print("输入的字符宽度:", str1_width)
  39. print("输入的字符串:", str1)
  40. # 调用num_len_ofline函数并打印结果
  41. result = solution.num_len_ofline(str1_width, str1)
  42. print("输出:", result)
  43. # 4.运行结果:
  44. # 输入的字符宽度: [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]
  45. # 输入的字符串: abcdefghijklmnopqrstuvwxyz
  46. # 输出: [3, 60]
1-2、VBA:
  1. Rem 自定义函数,功能:计算给定字符串str1在给定字符宽度数组str1_width下的行数和最后一行的剩余长度
  2. Function num_len_ofline(str1_width As Variant, str1 As String) As Variant
  3. Dim line As Integer ' 当前行数
  4. Dim length As Integer ' 当前行的长度
  5. Dim i As Integer ' 循环计数器
  6. Dim c As String ' 当前字符
  7. line = 1 ' 初始化行数
  8. length = 0 ' 初始化当前行长度
  9. ' 遍历字符串中的每个字符
  10. For i = 1 To Len(str1)
  11. c = mid(str1, i, 1) ' 获取当前字符
  12. ' 累加当前字符的宽度到当前行的长度
  13. length = length + str1_width(Asc(c) - Asc("a"))
  14. ' 如果当前行长度超过100,则换行,并重置当前行长度为当前字符的宽度
  15. If length > 100 Then
  16. line = line + 1
  17. length = str1_width(Asc(c) - Asc("a"))
  18. End If
  19. Next i
  20. ' 如果字符串遍历完,但最后一行长度恰好为100,需要额外增加一行
  21. If length = 100 Then
  22. line = line + 1
  23. End If
  24. ' 返回一个包含两个元素的数组,第一个元素为行数,第二个元素为最后一行的剩余长度
  25. num_len_ofline = Array(line, length)
  26. End Function
  27. Rem 执行程序,功能:调用自定义函数num_len_ofline,在立即窗口中输出结果
  28. Sub TestRun()
  29. Dim str1_width() As Variant ' 初始化字符宽度数组
  30. Dim str1 As String ' 待处理的字符串
  31. Dim result() As Variant ' 存储结果的数组
  32. Dim line As Integer ' 行数
  33. Dim length As Integer ' 最后一行的剩余长度
  34. Dim i As Integer '计数器
  35. ' 初始化字符宽度列表,这里每个字符的宽度都是10
  36. ReDim str1_width(25) ' 因为数组是从0开始索引的,所以大小为25(对应26个小写字母)
  37. For i = 0 To 25
  38. str1_width(i) = 10
  39. Next i
  40. ' 待处理的字符串,包含所有小写英文字母
  41. str1 = "abcdefghijklmnopqrstuvwxyz"
  42. ' 调用num_len_ofline函数
  43. result = num_len_ofline(str1_width, str1)
  44. ' 提取结果并打印
  45. line = result(0)
  46. length = result(1)
  47. ' 打印输入的字符宽度和字符串
  48. Debug.Print "输入的字符宽度:" & vbCrLf & "[" & Join(str1_width, ", ") & "]"
  49. Debug.Print "输入的字符串:" & vbCrLf & str1
  50. ' 打印结果
  51. Debug.Print "输出:[" & line & "," & length & "]"
  52. End Sub
  53. '结果输出:
  54. '输入的字符宽度:
  55. '[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]
  56. '输入的字符串:
  57. 'abcdefghijklmnopqrstuvwxyz
  58. '输出: [3,60]

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

2、相关文章:

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

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

2-3、Python-VBA编程500例-025(入门级) 

2-4、Python-VBA编程500例-026(入门级) 

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览60120 人正在系统学习中
遨游码海,我心飞扬
微信名片
注:本文转载自blog.csdn.net的神奇夜光杯的文章"https://myelsa1024.blog.csdn.net/article/details/137131178"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top