“ \r “导致print打印被覆盖

news2024/11/11 4:59:27

这里写自定义目录标题

  • 写在最前面
  • 1." \r " 回车符
    • 一些有趣的小功能
      • 倒计时
      • 加载中(转圈)
      • 进度条
      • 删除功能
    • 强行不换行
      • (1) python2中可以在print语句的末尾加上逗号
      • (2)在python3里print是一个独立函数,可以通过修改它的默认值来让其不换行
  • 2." \v " 垂直制表符
  • 3." \f " 换页符

写在最前面

读取文档中的文本进行处理,在这部分被坑死了
一段字符串文本,中间有/r进行换行,但文本就是打印不出来
调试到最后,通过替换" \r "发现了问题
print(text.replace("\r",'\n'))

关键" \r "之前python课还学过,真真无语
只能说,如果基础更牢一些,会少一些麻烦事吧~

参考:https://blog.csdn.net/m0_51183870/article/details/111477557
https://www.cnblogs.com/zzliu/p/10156658.html

1." \r " 回车符

将光标移到本行开头
\r 这一转义字符的来处:之前的打印机的指令

\b表示将光标的位置回退一位

print("01234\r56789")
print("\n")

在这里插入图片描述

这个代码只有一行,暂无法对其进行调试,以查看运行过程
但可以根据定义,对这代码进行人肉编译,我们可以猜测:
1.首先运行 \r 前的代码:向控制台输出01234。
2.其次运行到 \r 这一转义字符:光标移至本行开头,故此时光标位于0之前。
3.继续运行剩下代码:从光标处开始向控制台输出56789。

综上猜测:可以认为之前输出的01234是被56789覆盖了的!

继续编写代码验证猜测:

print("01234\r56789");
print("0123456789\ra");
print("0123456789\rab");
print("0123456789\rabc");

在这里插入图片描述

一些有趣的小功能

倒计时

# 显示倒计时
import time
for i in range(10):
    print("\r离程序退出还剩%s秒" % (9-i), end="")
    time.sleep(1)

(第一次做gif,留黑边了,有知道怎么去除的嘛)
请添加图片描述

加载中(转圈)

import time
lst = ["\\", "|", "/", "———"]
for i in range(20):
    j = i % 4
    print("\r" + lst[j], end="")
    time.sleep(0.2)

请添加图片描述

进度条

# 进度条功能
import time

for i in range(10):
    print("\r" + "■"*i, sep="", end="")
    time.sleep(0.2)
print("\n下载完成")

请添加图片描述

删除功能

import time
s = "是Yu誒222"
l = len(s)
for i in range(l):
    print("\r" + s[:l-1-i] + "|", end="")
    time.sleep(0.5)

请添加图片描述

强行不换行

在python里print会默认进行换行,可以通过修改参数让其不换行

(1) python2中可以在print语句的末尾加上逗号

print "hello",
print "world"

执行结果

hello world

(2)在python3里print是一个独立函数,可以通过修改它的默认值来让其不换行

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    """
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
    """

将end参数改为其他的字符可以让print不换行:

print("Dream", "it", "possible", sep="-",end="/")
print("Big big world")

运行结果如下:

Dream-it-possible/Big big world

在这里插入图片描述

2." \v " 垂直制表符

将光标移到下一个垂直制表符对齐处位置。

print("01234\v56789\v");
print("\v =%d\n", '\v');
print("01234567\vab");
print("0123456789\vabc");

在这里插入图片描述

3." \f " 换页符

将光标移到下一页开头。

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

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

相关文章

笔记02:CUDA编程模型

CUDA是一种通用的并行计算平台和编程模型,是在C语言基础上扩展的。 一、CUDA编程模型概述 1. CUDA编程结构 在一个异构环境中包含多个CPU和GPU,每个GPU和CPU的内存都由一条PCI-e总线分隔开,需要注意区分 (1)主机&a…

湖仓一体概念快问快答

概念篇 问题一 “湖仓一体”是什么? “湖仓一体”是一种新的架构模式,湖仓一体是将数据湖的灵活性和数仓的易用性、规范性、高性能结合起来的融合架构,无数据孤岛。湖仓一体数据存储在数据湖低成本的存储架构之上&am…

蓝桥云课ROS机器人旧版实验报告-07外设

项目名称 实验七 ROS[Kinetic/Melodic/Noetic]外设 成绩 内容:使用游戏手柄、使用RGBD传感器,ROS[Kinetic/Melodic/Noetic]摄像头驱动、ROS[Kinetic/Melodic/Noetic]与OpenCV库、标定摄像头、视觉里程计,点云库、可视化点云、滤波和缩…

嵌入式系统工程师怎样才能不落伍

不断增加的复杂性和异质化正在衍生出一些新的方法,能够避免在设计周期结束时出现意外。 在一个系统中,硬件的表现是否优秀取决于运行在其上的软件。随着系统复杂性的增加,总是软件在拖后腿。 缩小硬件和软件差距的方法是不断改进软件开发的方…

【Java】多医院、多诊所、多机构SaaS模式云HIS信息管理系统源码

云HIS,一款基于云计算和大数据技术的智慧医院云平台,为医疗机构提供了一种全新的信息化解决方案,旨在实现数据安全、用户满意度和成本效益的最佳平衡。 基于云计算技术的B/S架构的HIS系统,为基层医疗机构提供标准化的、信息化的、…

攻击数亿个账户,黑客利用OAuth2.0疯狂作恶

一、OAuth协议介绍 OAuth是一种标准授权协议,它允许用户在不需要向第三方网站或应用提供密码的情况下向第三方网站或应用授予对存储于其他网站或应用上的信息的 委托访问 权限。OAuth通过访问令牌来实现这一功能。 1.发展历史 OAuth协议始于2006年Twitter公司Ope…

Python爬虫遇到URL错误解决办法大全

在进行Python爬虫任务时,遇到URL错误是常见的问题之一。一个错误的URL链接可能导致爬虫无法访问所需的网页或资源。为了帮助您解决这个问题,本文将提供一些实用的解决方法,并给出相关代码示例,希望对您的爬虫任务有所帮助。 一、…

mysql进阶-触发器

在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如 商品信息 和 库存信息 分别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时 在库存表中…

牛客网Verilog刷题——VL41

牛客网Verilog刷题——VL41 题目答案 题目 请设计一个可以实现任意小数分频的时钟分频器,比如说8.7分频的时钟信号,注意rst为低电平复位。提示:其实本质上是一个简单的数学问题,即如何使用最小公倍数得到时钟周期的分别频比。设小…

23种设计模式详解与示例代码(详解附DEMO)

设计模式在Java中的应用与实现 🚀🚀🚀1.创建型模式1. 工厂方法模式(Factory Pattern)2.抽象工厂模式(Abstract Factory Pattern)3. 单例模式(Singleton Pattern)4.原型模…

Bug解决:ModuleNotFoundError: No module named ‘taming‘

from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer ModuleNotFoundError: No module named taming 在安装 taming-transformers时,出现了以下两个报错: 报错一: from taming.modules.vqvae.quantize import V…

使用langchain与你自己的数据对话(四):问答(question answering)

之前我已经完成了使用langchain与你自己的数据对话的前三篇博客,还没有阅读这三篇博客的朋友可以先阅读一下: 使用langchain与你自己的数据对话(一):文档加载与切割使用langchain与你自己的数据对话(二):向量存储与嵌入使用langc…

2023CRM如何选型?有哪些特点需要注意?

企业管理中客户关系管理系统被认为是至关重要的一环。随着市场竞争加剧和科技不断发展,企业面临着各种选择,如何选择适合自己的CRM系统变得非常重要。本文将为您介绍2023CRM选型最新指南。 首先,应该了解CRM系统的分类,根据自己的…

LeetCode每日一题——1331.数组序号转换

题目传送门 题目描述 给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号。 序号代表了一个元素有多大。序号编号的规则如下: 序号从 1 开始编号。一个元素越大,那么序号越大。如果两个元素相等,那么它们的…

【Python机器学习】实验07 K-means无监督聚类

文章目录 聚类K-means 聚类1 准备数据2 给定聚类中心,计算每个点属于哪个聚类,定义函数实现3 根据已有的数据的标记,来重新更新聚类中心,定义相应的函数4 初始化聚类中心,定义相应的函数5 定义K-means算法6 绘制各个聚…

windwos server 2008 更新环境,且vs_redis 安装失败

KB2919442 下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id42153 KB2919355 下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id42153 安装步骤:先安装442,后安装355

C++ 对象的生存期

对象(包括简单变量)都有诞生和消失的时刻。对象诞生到结束的这段时间就是它的生存期。在生存期内,对象将保持它的状态(即数据成员的值),变量也将保持它的值不变,直到它们被更新为止。对象的生存…

windows下安装anaconda、pycharm、cuda、cudnn、PyTorch-GPU版本

目录 一、anaconda安装及虚拟环境创建 1.anaconda的下载 2.Anaconda的安装 3.创建虚拟环境 3.1 环境启动 3.2 切换镜像源 3.3环境创建 3.4 激活环境 3.5删除环境 二、pycharm安装 1.pycharm下载 2.pycharm的安装 三、CUDA的安装 1.GPU版本和CUDA版本、cudnn版本、显卡…

布瑞特单圈绝对值旋转编码器串口数据读取

布瑞特单圈绝对值旋转编码器串口数据读取 数据手册:http://briter.net/col.jsp?id109 (2.1版本RS485说明书通信协议 单圈.pdf) 绝对式编码器为布瑞特BRT38-ROM16384-RT1,采用RS485通信。 该绝对式编码器共有5根线:红、黄、黑、绿、白 由…

解决 MyBatis-Plus + PostgreSQL 中的 org.postgresql.util.PSQLException 异常

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…