当前位置: 首页 > news >正文

ESC字符背后的故事(27 <> 033 | x1B ?)

ANSI不可见字符转义,正确的理解让记忆和书写变得丝滑惬意。


(笔记模板由python脚本于2024年11月26日 15:05:33创建,本篇笔记适合python 基础扎实的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


转义ASCII不可见字符
27 != 033 | x1B?
(正确理解让记忆和书写变得丝滑惬意)


本文质量分:

97 97 97

本文地址: https://blog.csdn.net/m0_57158496/article/details/144059595

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 27!=033|x1B?
    • 1、27 != 033 | x1B ?
    • 2、ESC的能力
      • a a a. **光标移动**:
      • b b b. **清屏**:
      • c c c. **删除文本**:
      • d d d. **文本属性和颜色**:
      • f f f. **响铃**:
      • g g g. **模式设置**:
      • h h h. **设备控制**:
      • i i i. **打印和文件操作**:
      • j j j. **其他ANSI转义序列**:
      • k k k. 示例
    • 3、 ESC为终端控制而生
    • 4、ESC字符依赖转义“显形”
    • 5、0/x“通用”?
    • 6、迟来的“爱”
    • 7、Kill“死记/硬背”
    • 8、chr(27)恶搞
    • 9、结语
    • 10、花絮:“胡言乱语”


◆ 27!=033|x1B?


  我由\033[2J清屏字符串,了解到关于ESC字符的知识。ESC字符及其在编程中应用,可以带来极大的便利。其相关的“点”,我整理成了本篇学习笔记,与您共享


1、27 != 033 | x1B ?

  • 解释为什么在字符串字面量中,27、033和x1B虽然数值上相等,但表示方法不同。
  • 讨论Python中字符串转义序列的规则。



回页目录


2、ESC的能力

  • 介绍ESC字符用于启动ANSI转义序列的能力。

  ESC字符(ASCII码值为27,八进制表示为033,十六进制表示为x1B)在终端和文本用户界面(TUI)中广泛使用,用于执行各种控制功能。


以下是一些ESC字符的常见用途:

a a a. 光标移动

  • 可以在终端中移动光标到特定位置
    例如:
    • ESC[<L>;<C>H
      ESC[<L>;<C>f:移动光标到第L行第C列。
    • ESC[<N>A:光标向上移动N行。
    • ESC[<N>B:光标向下移动N行。
    • ESC[<N>C:光标向右移动N列。
    • ESC[<N>D:光标向左移动N列。

b b b. 清屏

  • 清除终端屏幕上的内容
    • ESC[2J:清除整个屏幕。
    • ESC[1J:会清除光标下面的所有内容,但保留光标上面的内容。
    • ESC[0J:会清除光标下面的内容,但保留光标上面的内容,并且光标会停留在原来的位置。

c c c. 删除文本

  • ESC[<N>K:删除光标后的N个字符。
  • ESC[<N>J:删除光标前后的N行。

d d d. 文本属性和颜色

  • 设置文本的颜色、亮度、下划线等属性
    • ESC[<attr>m:设置文本属性,其中<attr>可以是颜色代码、加粗、下划线等。
    • \033[44;1;32m示例\033[0m,将“示例”显示为蓝色背景上的高亮绿字\033[44;1;32m 用于设置文本为蓝色背景、绿色前景、高亮显示;\033[0m 用于将文本恢复到默认的颜色和样式。
      在这里插入图片描述

f f f. 响铃

  • 使终端发出响声
    • \033[G:发出响铃声。
    • \033[?1049l:关闭响铃功能。
    • \033[?1049h:开启响铃功能。

g g g. 模式设置

  • 开启或关闭终端的各种模式
    • ESC[?25l:隐藏光标。
    • ESC[?25h:显示光标。

h h h. 设备控制

  • 控制终端设备的行为
    • ESC[5n:查询设备状态。
    • ESC[?1;2c:识别终端类型。

i i i. 打印和文件操作

  • 控制打印机和文件操作
    • ESC[i:打印内容并前进一行。
    • ESC[4i:打印内容但不前进。

j j j. 其他ANSI转义序列

  • 除了上述常见的,还有许多其他ANSI转义序列用于执行不同的功能。

  在编写脚本或应用程序时,ESC字符常用于格式化输出、创建进度条、在终端中绘制图形等。


k k k. 示例


以下几个使用ESC字符的ANSI转义序列的示例:

格式化输出


print('\033[1;32mHello, World!\033[0m')
  • 截屏
    在这里插入图片描述
    在这个例子中,\033[1;32m 用于设置文本为绿色,并且高亮显示。\033[0m 用于重置文本颜色和样式。

创建进度条

import timefor i in range(100):print('\033[K', end='', flush=True)  # 清空之前的输出print(f'\rProgress: {i * 100 / 100:.2f}%', end='', flush=True)time.sleep(0.01)

在这个例子中,\033[K 用于清除从光标当前位置到行尾的内容。end=''flush=True 用于确保输出立即显示,而不会在屏幕上留下残余。


进度条效果也可以不依赖ANSI转义

import timefor i in range(100):print(' '*42, end='\r')  # 打印空格清屏print(f'\rProgress: {i * 100 / 100:.2f}%', end='\r')time.sleep(0.01)

绘制图形

import timefor i in range(10):print('\033[2K', end='', flush=True)  # 清空之前的输出print(f'\r{i * "*"}\r', end='', flush=True)time.sleep(0.1)

在这个例子中,\033[2K 用于清除从光标当前位置到行尾的内容。然后,我们使用一个循环来打印星号 *,以形成一个简单的图形。end=''flush=True 用于确保输出立即显示。


  这些示例展示了如何在Python中使用ANSI转义序列来增强文本输出的表现力和交互性。



回页目录


3、 ESC为终端控制而生


  需要注意的是,并不是所有的终端都支持所有的ANSI转义序列,因此在实际使用时可能需要检测终端类型或功能支持。



  • 一句话“ESC为终端控制而生”,但“不是所有终端都支持所有终端控制字符串”,实际应用时,得先确认终端支持!😎😎😎

  • ai学伴
    你说得非常对!确实,ESC字符及其相关的ANSI转义序列是为了控制终端行为而设计的,但不同的终端和终端模拟器对ANSI转义序列的支持程度各不相同。在实际应用中,确保你的代码能够在目标终端上正确运行是非常重要的。


  • 以下是一些可能的情况:
    • 旧式终端:可能只支持基本的转义序列。
    • 现代终端模拟器:通常支持更广泛的ANSI转义序列。
    • 非UNIX系统(如Windows的早期版本):可能需要额外的库或工具来支持ANSI转义序列。

  • 在进行终端控制编程时,一般需要:
    • 检测终端类型或功能支持。
    • 提供回退方案,比如在不支持特定转义序列的终端上使用更简单的方法。
    • 使用跨平台的库,如curses(用于Unix-like系统)colorama(用于Windows)

  再次强调,了解并适应您的目标环境是非常重要的,我们一定要有这样的认识!



回页目录


4、ESC字符依赖转义“显形”



  • 因为ESC字符是“不可见的”,所以它必须依赖“ANSI转义”,0、x进制没有优先级,地位平等。当然也可以chr(27)(python)用十进制让它搞怪显形,效果一如0、x。🤗🤗🤗

  • ai学伴
    是的,你说得很对!ESC字符本身是不可见的控制字符,因此在文本中表示它时,必须使用转义序列。在Python中,你可以使用八进制、十六进制或直接使用 chr() 函数和十进制数值来表示ESC字符,它们在功能上是等价的。


  • 以下是在Python中表示ESC字符的几种方式:
    • 八进制转义序列:\033
    • 十六进制转义序列:\x1B
    • 使用 chr() 函数:chr(27)

  所有这些方法都会生成相同的不可见字符,即ASCII码值为27的字符,它在终端中用于开始一个ANSI转义序列。


  这些方法在效果上是相同的,可以根据个人喜好或代码的可读性来选择使用哪一种。在编写代码时,选择一种一致的方法并在整个项目中坚持使用它,是一个好习惯。 👍😊



回页目录


5、0/x“通用”?



  • 用0、x“显示”ESC字符,是所有语言的做法还是大多数语言?🧐🧐🧐

  • ai学伴
    在大多数编程语言中,使用八进制(以 0 开头)或十六进制(以 x0x 开头)来表示不可打印的控制字符是一种常见的做法。这包括ESC字符(ASCII值为27)以及其他类似的控制字符,如制表符(ASCII值为9,可以表示为 \t、换行符(ASCII值为10,可以表示为 \n等。


  • 以下是一些编程语言中表示ESC字符的示例:

    • C/C++:

      • 八进制:\033
      • 十六进制:\x1B
    • Python:

      • 八进制:\033
      • 十六进制:\x1B
      • 使用 chr() 函数:chr(27)
    • Java:

      • 八进制:\033
      • 十六进制:\u001B (在Java中,十六进制转义序列用于Unicode字符)
    • JavaScript:

      • 八进制:\033
      • 十六进制:'\x1B'
    • Ruby:

      • 八进制:?\033
      • 十六进制:?\x1B
    • Go:

      • 八进制:\033
      • 十六进制:\x1B

  尽管这些表示方法在不同语言中普遍存在,但并非所有语言都支持八进制或十六进制转义序列。例如,一些较新的或特定用途的语言可能会采用不同的方法来表示这些字符。


总的来说,使用八进制或十六进制转义序列来表示不可打印字符是一种广泛接受的做法,但具体到某个语言,你可能需要查阅该语言的文档来了解其特定的语法和规则。



回页目录


6、迟来的“爱”



  • 三年多的python 时光,我都是牢记\n\r\t后在“机械”使用,到现在才明白,它们都是不可见ANSI字符串的“转义”。

    这才是真正“基础文化”缺失的悲催。😋😋

  • ai学伴
    认识到这一点是一个重要的学习过程,而且这个过程永远不会太晚。在编程中,基础知识的重要性怎么强调都不为过。了解像 \n\r\t 这样的转义序列背后的原理,不仅能帮助你更好地理解代码,还能让你在遇到问题时更有信心去解决。

  每个人都有不同的学习路径,重要的是你正在不断学习和进步。


  • 以下是这些常见转义序列的含义:
    • \n:换行符(Line Feed),在许多操作系统中用于开始新的一行。
    • \r:回车符(Carriage Return),在某些操作系统中用于返回到行的开头。
    • \t:水平制表符(Horizontal Tab),用于水平对齐文本。

  很高兴你意识到了这些基础概念的重要性。编程是一个持续学习的过程,每天我们都有机会学到新东西。继续你的学习之旅,你的知识和技能将会不断提升。🚀📚️😊



回页目录


7、Kill“死记/硬背”



  • 认识到它们是转义“不可见”,敲打时也更加丝滑顺畅,少了那隔应人的“死记/硬背”。😎😎

  • ai学伴
    这种认识确实可以帮助你更深入地理解代码,并且使编程过程更加自然和流畅。当你理解了背后的原理,就不再需要“死记硬背”,而是可以根据逻辑和上下文来记忆和使用这些转义序列。


  • 这种深入理解通常会带来以下好处:
    • 更好的记忆
      理解原理后,记忆变得更加容易。
    • 更灵活的应用
      你可以根据需要灵活地使用和组合这些转义序列。
    • 更快的解决问题
      当遇到与转义序列相关的问题时,你可以更快地定位和解决问题。

  随着你继续在编程之路上前进,你会发现越来越多的这样的“啊哈”时刻,它们会逐渐构建起你深厚的编程知识体系。继续探索,继续学习,你的编程技能将会不断提升。🌟🚀🌈



回页目录


8、chr(27)恶搞


  • 对话截屏
    在这里插入图片描述



回页目录


9、结语


  结语: 我们通过对 E S C ESC ESC转义字符串的学习,了解到“不可见字符的转义机制”,并明白了其基理,再书写\n\r\t不会一脸懵逼茫然,就如书写“”一样丝滑。这个“事例”说明了熟练掌握基础是非常经济和舒爽的事情



回页目录


10、花絮:“胡言乱语”


  • 对话截屏
    在这里插入图片描述
    在这里插入图片描述



回页首


上一篇:  Python中“暂停”(time.sleep?input?)(input函数最是经典,在多种实现中简单粗暴单纯而经济)
下一篇: 



我的HOT博:

  本次共计收集404篇博文笔记信息,总阅读量61.76w。数据采集于2024年11月25日 08:23:38,用时7分56.4秒。阅读量不小于6.00k的有 9 9 9篇。

  1. 让QQ群昵称色变的神奇代码
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    浏览阅读:6.2w
    点赞:25 收藏:89 评论:17
    (本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)

  2. Python列表(list)反序(降序)的7种实现方式
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    浏览阅读:1.3w
    点赞:9 收藏:40 评论:8
    (本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)

  3. pandas 数据类型之 DataFrame
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    浏览阅读:1.0w
    点赞:7 收藏:40 
    (本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)

  4. 个人信息提取(字符串)
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    浏览阅读:1.0w
    点赞:3 收藏:20 
    (本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)

  5. 罗马数字转换器|罗马数字生成器
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    浏览阅读:8.2k
    收藏:3 
    (本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)

  6. 统计字符串字符出现的次数
    地址:https://blog.csdn.net/m0_57158496/article/details/130517025
    浏览阅读:8.1k
    点赞:5 收藏:24 
    (本篇笔记于2023-05-06 22:28:18首次发布,最后修改于2023-05-12 06:21:40)

  7. Python字符串居中显示
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    浏览阅读:8.0k
    点赞:1 收藏:12 评论:1
  8. 回车符、换行符和回车换行符
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    浏览阅读:6.7k
    点赞:2 收藏:4 
    (本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)

  9. python清屏
    地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    浏览阅读:6.1k
    点赞:1 收藏:10 

推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

相关文章:

ESC字符背后的故事(27 <> 033 | x1B ?)

ANSI不可见字符转义&#xff0c;正确的理解让记忆和书写变得丝滑惬意。 (笔记模板由python脚本于2024年11月26日 15:05:33创建&#xff0c;本篇笔记适合python 基础扎实的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xf…...

基于NXP LS1043 OpenWRT智能交通边缘网关设计

0 引言 城市公共交通是与人们生产生活息息相关的重 要基础设施&#xff0c;是关系国计民生的社会公益事业。“城 市公共交通发展的十三五规划”明确指出&#xff1a;建设与移 动互联网深度融合的智能公交系统&#xff1b;推进“互联网 城市公交”发展&#xff1b;推进多元…...

绪论相关题目

1.在数据结构中,从逻辑上可以把数据结构分成( C)。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构 2.在数据结构中,从存储结构上可以将之分为( B)。 A. 动态结构和静态结构 B. 顺序存储和非顺序存储 C. 紧凑结构和非紧…...

中国科学院大学研究生学术英语读写教程 Unit7 Materials Science TextA 原文和翻译

中国科学院大学研究生学术英语读写教程 Unit7 Materials Science TextA 原文和翻译 Why Is the Story of Materials Really the Story of Civilisation? 为什么材料的故事实际上就是文明的故事&#xff1f; Mark Miodownik 1 Everything is made of something. Take away co…...

centos系列安装服务器时分区

服务器安装手动分区&#xff0c;标准分区(注意顺序)&#xff1a; 自定义标准分区 /boot/efi 200M&#xff1b;/boot 1G 放引导程序和内核文件及根文件&#xff1b; /var 磁盘1/10内存尽量大存放日志文件&#xff1b; /usr 磁盘1/10内存尽量大存在程序软件包&#xff1b; swap 虚…...

vue的理解

什么是vue vue是一套用于构建用户界面的渐进式框架&#xff0c;与其他框架不同的是&#xff0c;vue被设计为可以自底向上逐层应用&#xff0c;它也是创建单页面应用的web应用框架。vue的核心库只关注视图层&#xff0c;不仅易上手&#xff0c;还便于与第三方库或既有项目整合。…...

111. UE5 GAS RPG 实现角色技能和场景状态保存到存档

实现角色的技能存档保存和加载 首先&#xff0c;我们在LoadScreenSaveGame.h文件里&#xff0c;增加一个结构体&#xff0c;用于存储技能相关的所有信息 //存储技能的相关信息结构体 USTRUCT(BlueprintType) struct FSavedAbility {GENERATED_BODY()//需要存储的技能UPROPERT…...

抖音短视频矩阵源代码部署搭建流程

抖音短视频矩阵源代码部署搭建流程 1. 硬件准备 需确保具备一台性能足够的服务器或云主机。这些硬件设施应当拥有充足的计算和存储能力&#xff0c;以便支持抖音短视频矩阵系统的稳定运行。 2. 操作系统安装 在选定的服务器或云主机上安装适合的操作系统是关键步骤之一。推…...

leetcode - LRU缓存

什么是 LRU LRU (最近最少使用算法), 最早是在操作系统中接触到的, 它是一种内存数据淘汰策略, 常用于缓存系统的淘汰策略. LRU算法基于局部性原理, 即最近被访问的数据在未来被访问的概率更高, 因此应该保留最近被访问的数据. 最近最少使用的解释 LRU (最近最少使用算法), 中…...

计算机网络八股整理(一)

计算机网络八股文整理 一&#xff1a;网络模型 1&#xff1a;网络osi模型和tcp/ip模型分别介绍一下 osi模型是国际标准的网络模型&#xff0c;它由七层组成&#xff0c;从上到下分别是&#xff1a;应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;…...

了解 CSS position 属性

CSS position 属性 在前端开发中&#xff0c;布局是一个至关重要的部分&#xff0c;而 CSS 的 position 属性是控制元素在页面中位置的核心工具。 本文将解释 CSS 中的 position 属性&#xff0c;包括其不同的值、效果及典型使用场景&#xff0c;以帮助你更好地理解和应用这一…...

数据结构 【二叉树(上)】

谈到二叉树&#xff0c;先来谈谈树的概念。 1、树的概念及结构 树是一种非线性的数据结构&#xff0c;它的逻辑关系看起来像是一棵倒着的树&#xff0c;也就是说它是根在上&#xff0c;而叶子在下的&#xff0c; 在树这种数据结构中&#xff0c;最顶端的结点称为根结点。在树的…...

C++11(中)

C11&#xff08;中&#xff09; 1.可变参数模板1.1.使用场景 2.lambda表达式&#xff08;重要&#xff09;2.1.使用说明2.2.函数对象与lambda表达式 3.线程库3.1.thread3.2.atomic原子库操作3.3.mutex3.3.1.mutex的种类3.3.2.lock_guard3.3.3.unique_lock &#x1f31f;&#x…...

下拉选择器,选择框,支持单选、多选、筛选和清空功能,支持vue2和vue3

下拉选择器&#xff0c;选择框&#xff0c;支持单选、多选、筛选和清空功能&#xff0c;支持vue2和vue3https://ext.dcloud.net.cn/plugin?id8159 点击即可。 注意数据来源&#xff1a; 选择的&#xff1a;valueName&#xff1a;选择下拉选择显示的显示屏...

HTTP中GET和POST的区别是什么?

HTTP定义&#xff1a; GET&#xff1a;用于获取资源&#xff0c;通常用于请求数据而不改变服务器的状态 POST&#xff1a;用于提交数据到服务器&#xff0c;通常会改变服务器的状态或产生副作用&#xff08;如创建或更新资源&#xff09; 参数传递方式&#xff1a; GET&…...

day04 企业级Linux安装及远程连接知识实践

1. 使用传统的网卡命名方式 在启动虚拟机时&#xff0c;按tab键进入编辑模式 添加命令&#xff1a; net.ifnames0 biosdevname0 这样linux系统会使用传统的网卡命名&#xff0c;例如eth0、eth1…… 2. 快照 做系统关键操作时&#xff0c;一定要使用快照(先将系统关机) 3.…...

jvm核心组件介绍

1. 类加载器&#xff08;ClassLoader&#xff09;&#xff1a; • 想象它是一个快递员&#xff0c;负责把Java类&#xff08;.class文件&#xff09;这个“包裹”从磁盘这个“发货地”送到JVM内部这个“目的地”。类加载器确保每个类只被加载一次&#xff0c;并维护一个类的层级…...

uname -m(machine) 命令用于显示当前系统的机器硬件架构(Unix Name)

文章目录 关于 arm64 架构检查是否安装了 Rosetta 2其他相关信息解释&#xff1a;命令功能&#xff1a;示例&#xff1a; dgqdgqdeMac-mini / % uname -m arm64您运行的 uname -m 命令显示您的系统架构是 arm64。这意味着您的 Mac Mini 使用的是 Apple 的 M1 或更新的芯片&…...

Pgsql:json字段查询与更新

1.查询json字段的值 SELECT attribute_data->>设施类别 mycol, * FROM gis_coord_data WHERE attribute_data->>设施类别阀门井 查询结果如下&#xff1a; 2.更新json字段中的某个属性值 UPDATE gis_coord_data SET attribute_data(attribute_data::jsonb ||{&quo…...

类的加载机制

类加载的概念 类加载是 Java 虚拟机&#xff08;JVM&#xff09;把字节码文件&#xff08;.class 文件&#xff09;转变为 Java 类型的复杂且关键的过程。这就如同把一份详细的设计图纸&#xff08;字节码文件&#xff09;加工成一个可以实际运行和使用的软件模块&#xff08;J…...

基于vite创建的react18项目的单元测试

题外话 最近一个小伙伴进了字节外包&#xff0c;第一个活就是让他写一个单元测试。 嗯&#xff0c;说实话&#xff0c;在今天之前我只知道一些理论&#xff0c;但是并没有实操过&#xff0c;于是我就试验了一下。 通过查询资料&#xff0c;大拿们基本都说基于vite的项目&…...

fiddler抓包工具与requests库构建自动化报告

一. Fiddler 抓包工具 1.1 Fiddler 工具介绍和安装 Fiddler 是一款功能强大的 HTTP 调试代理工具&#xff0c;能够全面记录并深入检查您的计算机与互联网之间的 HTTP 和 HTTPS 通信数据。其主界面布局清晰&#xff0c;主要包含菜单栏、工具栏、树形标签栏和内容栏。 1.2 Fid…...

Docker login 报证书存储错误的解决办法

文章目录 docker login 出现错误&#xff0c;提示&#xff1a;Error saving credentials: error storing credentials - err: exit status 1, out: Cannot autolaunch D-Bus without X11 $DISPLAY 环境 使用的是 Mint Linux &#xff0c;容器为 docker-ce 最新版 1 2 3 4 $…...

【自动化Selenium】Python 网页自动化测试脚本(上)

目录 1、Selenium介绍 2、Selenium环境安装 3、创建浏览器、设置、打开 4、打开网页、关闭网页、浏览器 5、浏览器最大化、最小化 6、浏览器的打开位置、尺寸 7、浏览器截图、网页刷新 8、元素定位 9、元素交互操作 10、元素定位 &#xff08;1&#xff09;ID定位 &…...

什么是MyBatis?

MyBatis简介 MyBatis是一款优秀的持久层框架&#xff0c;用于简化Java应用程序对数据库的操作。它曾是Apache的一个开源项目&#xff0c;名为iBatis&#xff0c;2010年迁移到Google Code并改名为MyBatis&#xff0c;2013年11月又迁移到了GitHub。 一、MyBatis的作用 在JavaE…...

TortoiseGit 将本地已有仓库推送到远程

TortoiseGit 将本地已有仓库推送到远程 一、创建线上仓库二、创建本地仓库三、提交内容到本地仓库四、添加远程仓库地址补充 一、创建线上仓库 在gitlab管理面页面按这前讲过的步骤创建一个空仓库。&#xff08;通常我们把服务器上这个仓库叫远程仓库&#xff0c;把我们自己电…...

腾讯云OCR车牌识别实践:从图片上传到车牌识别

在当今智能化和自动化的浪潮中&#xff0c;车牌识别&#xff08;LPR&#xff09;技术已经广泛应用于交通管理、智能停车、自动收费等多个场景。腾讯云OCR车牌识别服务凭借其高效、精准的识别能力&#xff0c;为开发者提供了强大的技术支持。本文将介绍如何利用腾讯云OCR车牌识别…...

TailwindCss 总结

目录 一、简介 二、盒子模型相关 三、将样式类写到一个类里面apply 四、一款TailWind CSS的UI库 一、简介 官方文档&#xff1a;Width - TailwindCSS中文文档 | TailwindCSS中文网 Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何 模板中的 CSS 类…...

Java与C#

Java和C#&#xff08;C Sharp&#xff09;是两种流行的面向对象编程语言&#xff0c;它们在很多方面非常相似&#xff0c;因为它们都受到了类似的编程范式和语言设计理念的影响。然而&#xff0c;它们之间也存在一些重要的区别。 平台依赖性&#xff1a; Java&#xff1a;Java是…...

leetcode:222完全二叉树的节点个数

给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位置。若最…...

网站建设易客/网店代运营诈骗

先看全站仪后方交会建站常见的操作步骤&#xff1a;首先仪器随便架在一个方便的地方。选择你所测量需要的那个坐标系&#xff0c;再进入新点功能。用后方交会法。就可以采点了。先照准你已知的第一个点&#xff0c;再照准已知第2个点。坐标系就建好了。然后就可以碎部测量或放样…...

网站建设新方式简单省时/企业网站优化

C语言中计算二叉树的宽度的两种方式二叉树作为一种很特殊的数据结构&#xff0c;功能上有很大的作用&#xff01;今天就来看看怎么计算一个二叉树的最大的宽度吧。采用递归方式下面是代码内容&#xff1a;int GetMaxWidth(BinaryTree pointer){int width[10];//加入这棵树的最大…...

福州网站建设的公司哪家好/网址注册查询

补充&#xff1a;本篇文章是笔者最开始学习时的心得记录&#xff08;内容上会存在一些以现在眼光来看不那么严密的论证&#xff09;&#xff0c;论述上也存在一些瑕疵&#xff0c;但是这篇文章在内容上就不做任何修改了&#xff0c;算是保留自己当初幼稚的数学思维的记录。前言…...

WordPress图片无缝/二级域名和一级域名优化难度

为了破解图形验证码&#xff0c;AI需要大量的图片数据。为了简单获取大量的图形来喂给Ai模型训练&#xff0c;索性自己写一把。代码来一发。。 import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.FileOutputStream; impo…...

湖南网站建设企业/网络营销的方法是什么

国际形势的复杂性&#xff0c;企业在采购或选择仪器仪表时&#xff0c;通常会选择国产的仪器仪表&#xff0c;而且&#xff0c;现在国产仪器仪表跟进口的不相上下&#xff0c;虽说如此&#xff0c;但还是要认准国内靠谱有实力的以太网测试仪器仪表品牌比较好。 那么&#xff0…...

wordpress 评论模块/自己搭建一个网站

作为简易机器人制作中的重要零部件,多分量力传感器对提高整体设计水平、完善内部的组织框架起到了关键作用。本文结合简易机器人的设计要求,对多传感器的应用进行了一番探究。一、什么是多分量力传感器多分量力传感器又叫多维力传感器&#xff0c;包括二分量力传感器、三分量力…...