每日一题——Python实现PAT乙级1109 擅长C(举一反三+思想解读+逐步优化)七千字好文


一个认为一切根源都是“自己不够强”的INTJ

个人主页:用哲学编程-CSDN博客
专栏:每日一题——举一反三
Python编程学习
Python内置函数

Python-3.12.0文档解读

目录

初次尝试

代码分析

时间复杂度

空间复杂度

总结

我要更强

代码结构与功能

全局时间复杂度

全局空间复杂度

代码优点

代码优化建议

哲学和编程思想

1. 模块化(Modularity)

2. 封装(Encapsulation)

3. 抽象(Abstraction)

4. 可重用性(Reusability)

5. 递归与迭代(Recursion and Iteration)

6. 正则表达式(Regular Expressions)

7. 异常处理(Exception Handling)

总结

举一反三

模块化(Modularity)

封装(Encapsulation)

抽象(Abstraction)

可重用性(Reusability)

递归与迭代(Recursion and Iteration)

正则表达式(Regular Expressions)

异常处理(Exception Handling)

综合应用

总结


题目链接

初次尝试

letters=[]
for i in range(26):letters.append([input() for row in range(7)])
#letters
#[['..C..', '.C.C.', 'C...C', 'CCCCC', 'C...C', 'C...C', 'C...C'], 
# ['CCCC.', 'C...C', 'C...C', 'CCCC.', 'C...C', 'C...C', 'CCCC.'], 
# ['.CCC.', 'C...C', 'C....', 'C....', 'C....', 'C...C', '.CCC.'], 
#...
#]words=list(input())
for i in range(len(words)):if words[i].isupper():passelse:words[i]=' 'while str(words[-2]).isupper()==False:words.pop()
while str(words[0]).isupper()==False:words.pop(0)
i=1
while i<len(words):while str(words[i-1]).isupper()==False and str(words[i]).isupper()==False:words.pop(i)i+=1#print(words)
word=['','','','','','','']for char_num in range(len(words)):if words[char_num].isupper():letter=letters[ord(words[char_num])-65]for i in range(7):tmp=word[i]+letter[i]+' 'word[i]=tmpelse:for i in range(7):tmp=word[i][:-1]word[i]=tmpif char_num<len(words)-1:for row in word:print(row)print()else:for row in range(6):print(word[row])print(word[6],end='')word=['','','','','','','']

代码分析

这段代码从输入中读取 26 个字母,每个字母由 7 行字符组成,并将它们存储在 letters 列表中。这一部分的时间复杂度是 O(26 * 7) = O(182),空间复杂度是 O(182),因为存储了 26 个字母,每个字母占 7 行字符。

将输入的字符串转换为字符列表。

这段代码将所有小写字母替换为空格,时间复杂度是 O(n),其中 n 是输入字符串的长度。

这两段循环去除单词首尾的空格,最坏情况下时间复杂度是 O(n),因为可能需要遍历整个字符串。

这段代码通过遍历字符串并删除连续的空格,最坏情况下时间复杂度是 O(n^2),因为每次 .pop(i) 操作都是线性时间复杂度。

  1. 输入处理
    • letters=[]
    • for i in range(26): letters.append([input() for row in range(7)])
  2. 处理输入的单词
    • words=list(input())
  3. 删除小写字母并用空格替换
    • for i in range(len(words)): if words[i].isupper(): pass else: words[i]=' '
  4. 去除首尾的空格
    • while str(words[-2]).isupper()==False: words.pop()
    • while str(words[0]).isupper()==False: words.pop(0)
  5. 去除多个连续空格
    • i=1 while i<len(words): while str(words[i-1]).isupper()==False and str(words[i]).isupper()==False: words.pop(i) i+=1
  6. 构建字符图案
  • 初始化 word 列表
  • 遍历字符并构建图案

这一部分的时间复杂度是 O(n),其中 n 是字符数,因为每个字符需要处理 7 行。空间复杂度也是 O(n),因为每个字符的图案需要额外的存储空间。

时间复杂度

总体时间复杂度分析如下:

  • 输入处理:O(182)
  • 替换小写字母:O(n)
  • 去除首尾空格:O(n)
  • 去除多个连续空格:O(n^2)
  • 构建字符图案:O(n)

总体时间复杂度:O(n^2)

空间复杂度

总体空间复杂度分析如下:

  • 输入处理:O(182)
  • 构建字符图案:O(n)

总体空间复杂度:O(n)

总结

这段代码在处理输入和构建图案方面是有效的,但存在一些可以优化的地方,例如在去除连续空格的部分。当前算法在最坏情况下的时间复杂度是 O(n^2),可以通过使用更高效的数据结构(如双端队列)来优化,将去除连续空格的时间复杂度降低到 O(n)。

同时,代码的可读性和结构也有提升的空间,建议将代码分解为多个函数,每个函数负责一个明确的任务,以提高代码的可维护性和可读性。


我要更强

def read_matrix():# 创建一个空列表,用于存储26个字母的矩阵表示letters = []for i in range(26):# 对于每个字母,读取7行输入,并去除每行的前后空白字符letter = [input().strip() for _ in range(7)]# 将该字母的矩阵表示添加到letters列表中letters.append(letter)return lettersdef split_words(sentence):import re# 使用正则表达式找到句子中的所有由连续大写字母组成的单词return re.findall(r'[A-Z]+', sentence)def print_word(word, letters):# 创建一个包含7个空字符串的列表,用于存储最终输出的每一行lines = ['' for _ in range(7)]for char in word:# 根据字符的ASCII值找到对应的字母矩阵letter = letters[ord(char) - ord('A')]for i in range(7):# 如果当前行已经有其他字母,则添加一个空格作为分隔符if lines[i]:lines[i] += ' '# 将当前字母的对应行添加到输出行中lines[i] += letter[i]# 打印每一行的最终结果for line in lines:print(line)def main():# 读取26个字母的矩阵表示letters = read_matrix()# 读取输入的句子,并去除前后空白字符sentence = input().strip()# 将句子分割成一个个单词(由连续大写字母组成)words = split_words(sentence)# 标记是否是第一个单词,以便在单词之间添加空行first_word = Truefor word in words:# 如果不是第一个单词,则在单词之间添加一个空行if not first_word:print()# 打印当前单词的字母矩阵表示print_word(word, letters)# 标记已经处理了第一个单词first_word = False# 如果脚本是作为主程序运行,执行main函数
if __name__ == "__main__":main()

这段代码的功能是根据输入的字母矩阵表示和一个包含大写字母的句子,生成并输出句子的矩阵表示。以下是对代码的详细点评,包括时间复杂度和空间复杂度的分析。

代码结构与功能

  1. 函数 read_matrix
    • 功能:从标准输入读取26个字母的矩阵表示,每个字母由7行字符组成,并去除每行的前后空白。
    • 处理过程:循环26次,每次读取7行输入,去除空白并存储在letters列表中。
    • 时间复杂度:O(26 * 7) = O(182)
    • 空间复杂度:O(26 * 7) = O(182)
  2. 函数 split_words
    • 功能:使用正则表达式从输入句子中提取出由连续大写字母组成的单词。
    • 处理过程:使用re.findall函数匹配正则表达式[A-Z]+。
    • 时间复杂度:O(n),其中n是输入句子的长度。
    • 空间复杂度:O(k),其中k是匹配到的单词总长度。
  3. 函数 print_word
    • 功能:根据输入的单词和字母矩阵表示,生成并打印单词的矩阵表示。
    • 处理过程:
      • 初始化一个包含7个空字符串的列表lines。
      • 对于每个字符,查找其对应的字母矩阵,并将其拼接到lines的对应行中。
      • 打印生成的每一行。
    • 时间复杂度:O(m * 7),其中m是单词的长度,因为每个字符需要处理7行。
    • 空间复杂度:O(7),因为lines列表始终包含7个字符串。
  4. 函数 main
  • 功能:协调以上函数,读取输入,分割单词,并打印每个单词的矩阵表示。
  • 处理过程:
    • 调用read_matrix读取字母矩阵表示。
    • 调用split_words分割输入句子为单词列表。
    • 循环处理每个单词,调用print_word打印其矩阵表示,并在单词之间添加空行。
  • 时间复杂度:整体受read_matrix、split_words和print_word的时间复杂度影响。
  • 空间复杂度:整体受read_matrix、split_words和print_word的空间复杂度影响。

全局时间复杂度

  1. read_matrix:O(182)
  2. split_words:O(n)
  3. print_word:(最坏情况下)设输入句子长度为n,单词总数为w,平均单词长度为m,则总时间复杂度为O(w * m * 7),整体为O(n * 7) = O(7n) = O(n)

综合以上分析,总体时间复杂度为: [ O(182) + O(n) + O(n) = O(n) ]

全局空间复杂度

  1. read_matrix:O(182)
  2. split_words:O(k), 其中k是正则表达式匹配到的单词长度总和。
  3. print_word:O(7)

综合以上分析,总体空间复杂度为: [ O(182) + O(k) + O(7) = O(182 + k) ]

代码优点

  • 模块化:函数划分明确,可读性强。
  • 简洁:使用了Python的标准库和内置函数,简化了代码逻辑。
  • 高效:在处理和输出方面都较为高效。

代码优化建议

  1. 缓存和复用:在print_word函数中,如果字母矩阵可以重复使用,可以考虑缓存处理过的字母以减少重复操作。
  2. 输入验证:增加输入验证,确保输入的格式和内容符合预期。
  3. 异常处理:增加异常处理,确保程序在异常情况下能有适当的响应。

总体来说,这段代码设计合理,效率较高,适合处理由大写字母构成的句子矩阵表示生成任务。


哲学和编程思想

在这段代码中,可以看到多种编程思想和哲学的应用。这些思想不仅帮助提高代码的质量和可维护性,还使代码更加高效和易于理解。以下是一些具体的编程思想和相关的哲学观点:

1. 模块化(Modularity)

编程思想:

  • 将代码划分为多个独立的函数,每个函数负责一个明确的任务。这种方法使代码更易于理解、维护和测试。

哲学观点:

  • 单一职责原则(Single Responsibility Principle):一个函数(或模块)应当只负责一个明确的功能,避免功能混杂。
  • 分而治之(Divide and Conquer):将复杂的问题分解为更小、更易处理的子问题。

具体应用:

  • read_matrix函数负责读取字母的矩阵表示。
  • split_words函数负责处理输入句子,将其分割为单词。
  • print_word函数负责打印单词的矩阵表示。
  • main函数负责协调整个过程,各函数各司其职。

2. 封装(Encapsulation)

编程思想:

  • 将数据和操作数据的方法封装在一起,隐藏内部实现细节,只对外暴露接口。这种方法提高了代码的安全性和可维护性。

哲学观点:

  • 信息隐藏(Information Hiding):通过隐藏实现细节,减少模块之间的耦合,使代码更易维护。

具体应用:

  • 各个函数内部实现细节是独立的,外部调用者不需要关心这些细节,只需要使用暴露的接口即可。例如,main函数只需要调用read_matrix、split_words和print_word,而不需要知道这些函数的内部实现。

3. 抽象(Abstraction)

编程思想:

  • 提取出程序中共性的部分,忽略具体的实现细节,只关注核心功能。这种方法使得代码更简洁、更通用。

哲学观点:

  • 抽象化(Abstraction):通过抽象化,将具体问题提升到概念层次,使其更易于处理和理解。

具体应用:

  • split_words函数使用正则表达式来匹配大写字母单词,这是一种抽象化的字符串处理方法,简洁而高效。
  • print_word函数将字符矩阵的拼接抽象为对每行字符串的操作,从而简化了处理过程。

4. 可重用性(Reusability)

编程思想:

  • 编写可以在不同场景下重复使用的代码,以减少重复劳动,提高开发效率。

哲学观点:

  • 不要重复自己(Don't Repeat Yourself,DRY):通过抽象和封装,减少重复代码,提高代码质量。

具体应用:

  • 各个函数可以在不同的上下文中重复使用。例如,print_word函数可以用于打印任何输入单词的矩阵表示,而不仅限于特定的输入。

5. 递归与迭代(Recursion and Iteration)

编程思想:

  • 递归和迭代是解决问题的两种基本方法。递归适用于问题的自然分解,而迭代则更适合于顺序处理。

哲学观点:

  • 自相似性(Self-Similarity):递归方法通过将问题分解为更小的自相似问题来解决。
  • 顺序处理(Sequential Processing):迭代方法通过按顺序处理数据来解决问题。

具体应用:

  • 代码中主要使用了迭代方法(如for循环和while循环)来读取输入、处理字符串和打印输出。

6. 正则表达式(Regular Expressions)

编程思想:

  • 使用正则表达式进行字符串匹配和处理,提供了一种强大的文本处理工具。

哲学观点:

  • 模式识别(Pattern Recognition):通过定义模式来识别和处理字符串,简化复杂的文本处理任务。

具体应用:

  • split_words函数使用正则表达式提取大写字母组成的单词。

7. 异常处理(Exception Handling)

编程思想:

  • 在代码中加入异常处理机制,以应对可能出现的错误,提高代码的健壮性。

哲学观点:

  • 鲁棒性(Robustness):通过处理异常情况,使程序能够在意外情况下仍然正常运行。

具体应用:

  • 当前代码中没有明显的异常处理,可以加入例如try/except结构来处理可能的输入错误或文件读取错误。

总结

这段代码通过模块化、封装、抽象、可重用性、迭代、正则表达式等编程思想,使得代码结构清晰、功能明确、易于维护和扩展。同时,这些编程思想也体现了相关的哲学观点,如单一职责原则、信息隐藏和模式识别等,进一步提升了代码的整体质量。


举一反三

要掌握这些编程哲学和思想,并能举一反三,以下是一些具体的技巧和建议:

模块化(Modularity)

技巧:

  1. 函数化编程:将代码功能分解为独立的函数,每个函数负责一个明确的任务。
  2. 接口设计:为每个模块设计明确的接口(输入和输出),确保模块间的低耦合性。
  3. 代码复用:将通用功能提取为独立模块,以便在不同项目中复用。

举一反三:

  • 在任何编程任务中,先思考如何将大任务分解为更小的子任务,并为每个子任务编写独立的函数。
  • 例如,处理文件输入输出时,可以创建单独的函数来处理文件读取、数据解析和结果写入。

封装(Encapsulation)

技巧:

  1. 隐藏实现细节:将实现细节封装在模块内,只对外暴露必要的接口。
  2. 使用类和对象:在面向对象编程中,将数据和操作数据的方法封装在类中。
  3. 访问控制:使用访问修饰符(如私有、保护和公共)来控制不同成员的访问权限。

举一反三:

  • 在设计类时,确保将属性设置为私有,提供必要的公共方法来访问和修改属性。
  • 在Web开发中,隐藏数据库实现细节,通过API接口对外提供服务。

抽象(Abstraction)

技巧:

  1. 提取共性:识别代码中的共性部分,将其提取为抽象接口或基类。
  2. 使用继承和多态:在面向对象编程中,通过继承和多态实现代码的抽象和复用。
  3. 定义接口:使用接口或抽象类定义抽象行为,具体实现交给子类。

举一反三:

  • 在不同项目中寻找相似的功能模块,将其抽象为通用库或工具类。
  • 在数据处理时,定义一个抽象的处理流程,将具体的处理步骤交给子类实现。

可重用性(Reusability)

技巧:

  1. 编写通用代码:编写通用的、可配置的代码,使其在不同场景下都能使用。
  2. 创建库和工具:将常用功能封装为库或工具,使其在多个项目中复用。
  3. 避免硬编码:使用配置文件或参数传递,避免在代码中硬编码特定值。

举一反三:

  • 创建一个通用的日志模块,可以在不同项目中使用,只需修改配置文件即可。
  • 在Web开发中,编写通用的中间件或插件,能够在不同的Web框架中使用。

递归与迭代(Recursion and Iteration)

技巧:

  1. 选择适当的方法:根据问题的自然分解特点选择递归或迭代方法。
  2. 优化递归:使用递归时,注意尾递归优化或将递归转化为迭代以提高性能。
  3. 理解终止条件:在编写递归函数时,确保定义清晰的终止条件,避免无限递归。

举一反三:

  • 在树或图的遍历问题中,理解如何使用递归进行深度优先搜索(DFS)和广度优先搜索(BFS)。
  • 在算法设计中,尝试将递归算法转化为迭代算法,优化其性能。

正则表达式(Regular Expressions)

技巧:

  1. 学习正则语法:熟练掌握正则表达式的基本语法和常用模式。
  2. 测试和调试:使用正则表达式测试工具,保证正则表达式的正确性。
  3. 性能优化:在处理大文本时,注意正则表达式的性能,避免过于复杂的模式。

举一反三:

  • 在数据清洗和文本处理任务中,使用正则表达式快速匹配和替换特定模式。
  • 在Web开发中,使用正则表达式进行表单验证,确保输入格式的正确性。

异常处理(Exception Handling)

技巧:

  1. 捕获和处理异常:使用try/except结构捕获并处理可能的异常,防止程序崩溃。
  2. 提供有用的错误信息:在异常处理代码中,记录有用的错误信息,以便调试和排错。
  3. 清理资源:在异常处理代码中,确保正确地释放资源(如关闭文件、网络连接等)。

举一反三:

  • 在文件处理、网络请求等可能出错的操作中,使用异常处理代码确保程序的健壮性。
  • 在Web开发中,提供友好的错误页面,捕获并处理应用程序中的异常。

综合应用

技巧:

  1. 综合运用:在实际编程中,综合运用上述各种思想和技巧,提高代码质量。
  2. 持续学习:不断学习新的编程思想和技术,提高自己的编程能力。
  3. 代码评审:通过代码评审,与他人交流和学习,提高团队的整体代码质量。

举一反三:

  • 在团队项目中,规范代码风格,制定代码评审流程,确保代码的质量和一致性。
  • 定期学习和实践新的编程模式和设计原则,如SOLID原则、设计模式等,提高设计和编程能力。

总结

通过掌握这些编程思想和具体技巧,可以在不同的编程任务中灵活运用,提高代码的质量、可维护性和效率。持续学习和实践是提升编程能力的关键,不断总结经验,将理论应用于实践,才能真正做到举一反三。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot+shiro+jwt 兼容session和token

最近和别的软件集成项目&#xff0c;需要提供给别人接口来进行数据传输&#xff0c;发现给他token后并不能访问我的接口&#xff0c;拿postman试了下还真是不行。检查代码发现项目的shiro配置是通过session会话来校验信息的 &#xff0c;我之前一直是前后端自己写&#xff0c;用…

学习Pr有哪些常见的使用的技巧?

本Premiere 学习笔记总结常见问题165条。不管你是初学的小白&#xff0c;或是刚进入剪辑学习软件阶段&#xff0c;还是说你学软件好几年了都有用处。因为这份总结涉及到了Pr的各个方面。既可以帮你解决软件出现的问题&#xff0c;也可以帮你熟知软件的实际应用&#xff0c;以及…

C# WPF入门学习番外篇(二) —— C# WPF使用数据库创建注册登录界面

C# WPF入门学习番外篇&#xff08;二&#xff09; —— C# WPF使用数据库创建注册登录界面 在这篇番外篇博客中&#xff0c;我们将介绍如何在C# WPF应用程序中使用数据库来创建一个简单的注册和登录界面。通过本教程&#xff0c;你将学习到如何在WPF中与数据库进行交互&#xf…

网格细分技术在AI绘画中的革新应用

导语&#xff1a; 随着人工智能技术的不断突破&#xff0c;艺术创作也迈入了一个新的时代。AI绘画不仅为艺术家提供了新的工具和灵感源泉&#xff0c;还极大地扩展了艺术的边界。在这背后&#xff0c;网格细分技术扮演着至关重要的角色&#xff0c;它通过将画面划分为数以万计的…

Android低代码开发 - 直接创建一个下拉刷新列表界面

看了我Android低代码开发 - 让IDE帮你写代码这篇文章的小伙伴&#xff0c;大概都对Dora全家桶开发框架有基本的认识了吧。本篇文章将会讲解如何使用dora-studio-plugin快捷创建一个下拉刷新列表界面。 效果演示 这样直接通过图形界面的方式就创建好了下拉刷新上拉加载空态界面…

旅游行业电商平台:数字化转型的引擎与未来发展趋势

引言 旅游行业数字化转型的背景和重要性 随着信息技术的飞速发展&#xff0c;数字化转型成为各行业发展的必然趋势。旅游行业&#xff0c;作为一个高度依赖信息和服务的领域&#xff0c;数字化转型尤为重要。通过数字化手段&#xff0c;旅游行业能够实现资源的高效配置、服务的…

用映射对比ab俩个数组 , 并把a的参数传递给b

项目背景 : react ant 需求 : 在项目进行表头设置时,根据aaa中的key和bbb中的name对应 , 并将sort值插入到bbb中 其中 a b 结构如下 具体实现 aaa[ { key: "orderNumber", orderNumber: "工单编号", sort: 1 } ... ]bbb [ { name: "orderNumber…

Jenkins For Windows编译构建C#项目环境搭建(完整版)

安装Jenkins 下载Windows安装包 官方下载地址 选择稳定版&#xff0c;这里下载的是最新版&#xff0c;如需下载指定版本点击 以前的发行版 配置java环境 下载 java jdk 17 jdk17官方下载链接 这里下载的是msi版本的安装包 安装jdk17 双击运行安装包&#xff0c;一直下…

3D数字化营销——电商行业提升转化率,降低退货率的杀手锏!

随着3D、AR等前沿技术的蓬勃发展&#xff0c;电商行业正迎来一场3D数字化营销的革命。这种创新的营销方式不仅极大地丰富了商品的展现形式&#xff0c;还成功弥补了传统电商在临场感和体验感方面的不足&#xff0c;从而显著提升了消费者的购物体验。 51建模网为电商行业提供3D…

WebSocket 快速入门 与 应用

WebSocket 是一种在 Web 应用程序中实现实时、双向通信的技术。它允许客户端和服务器之间建立持久性的连接&#xff0c;以便可以在两者之间双向传输数据。 以下是 WebSocket 的一些关键特点和工作原理&#xff1a; 0.特点&#xff1a; 双向通信&#xff1a;WebSocket 允许服务…

[AI Stability] 开源AI新利器:Stable Diffusion 3 Medium震撼发布!文本到图像再升级!

Stable Diffusion 3 Medium(SD3) 开源了&#xff0c;我们来看下。 关键要点 Stable Diffusion 3 Medium 是 Stability AI 迄今为止最先进的文本到图像开源模型。该模型的体积小巧&#xff0c;非常适合在消费级 PC 和笔记本电脑上运行&#xff0c;也适合在企业级 GPU 上运行。…

产品经理简要介绍主流电商平台商品API接口的重要应用价值

主流电商平台&#xff1a; 截至目前&#xff08;2024年6月&#xff09;&#xff0c;主流电商平台通常指的是国内外知名的在线购物平台&#xff0c;包括但不限于以下几家&#xff1a; 1. 中国电商平台&#xff1a; - 淘宝网&#xff08;taobao.com&#xff09; - 天猫商…

端午消费数据:“下沉”“价跌”延续

端午假期消费延续了五一的“下沉”与“价跌”趋势。一是人均旅游支出的恢复程度&#xff0c;仍不及2019年&#xff08;恢复至89.5%&#xff09;&#xff1b;二是三线以下城市继续成为旅游新增长点&#xff0c;其平台订单热度高于部分一线和新一线城市。三是国内、国际机票酒店价…

自动同步库数据——kettle开发36

kettle中的那些人工智能。 一、kettle的AI能力目录 跨库同步 2.自动开发 3.自动优化 二、AI实例 1、跨库同步 sqlsever表同步至oracle数据库 1.1源库sqlserver 1.2目标库oracle 1.3可视化跨库同步 使用多表复制向导 选择跨库的表&#xff0c;下一步下一步&#xff0c;即可…

Javaweb避坑指北(持续更新)

内容较多可按CtrlF搜索 0.目录 1.获取插入数据后自增长主键的值 2.Controller中返回给ajax请求字符串/json会跳转到xxx.jsp 3.ajax请求获得的json无法解析 4.在Controller中使用ServletFileUpload获取的上传文件为null 5.莫名其妙报service和dao里方法的错误 6.ajax请求拿…

DeepSpeed Monitoring Comm. Logging

Monitoring 支持多种后端&#xff1a;Tensorboard、WandB、Comet、CSV文件&#xff1b; TensorBoard例子&#xff1a; 自动监控&#xff1a;DeepSpeed自动把重要metric记录下来。只需在配置文件里enable相应的看板后端即可&#xff1a; {"tensorboard": {"enabl…

Linux-笔记 全志平台OTG虚拟 串口、网口、U盘笔记

前言&#xff1a; 此文章方法适用于全志通用平台&#xff0c;并且三种虚拟功能同一时间只能使用一个&#xff0c;原因是此3种功能都是内核USB Gadget precomposed configurations的其中一个选项&#xff0c;只能单选&#xff0c;不能多选&#xff0c;而且不能通过修改配置文件去…

湖北省七普分乡、镇、街道数据,shp、excel格式 需要自取

数据名称: 湖北省七普分乡、镇、街道数据 数据格式: Shp、excel 数据几何类型: 面 数据坐标系: WGS84 数据时间&#xff1a;2020年 数据来源&#xff1a;网络公开数据 数据可视化.

Vue27-内置指令04:v-once指令

一、需求 二、v-once指令 获取初始值&#xff1a; 三、小结

VBA实战(Excel)(6):报错处理

前言 在运行VBA的过程中会有一些报错&#xff0c;例如类型不匹配等运行错误。On Error错误处理程序能直接有效的解决报错。但是当程序逻辑复杂时&#xff0c; 使用On Error会掩盖其他的未知错误&#xff0c;所以应尽可能想办法排除错误&#xff0c;或在已知功能范围内使用。 …