斜杠、反斜杠以及换行符

1)正斜杠和反斜杠什么的一直都搞不清楚,今天在知乎上看到一个很好记的方法,就是“/\”,很像汉字“八”,八的左半边部分就是正斜杠,八的右半边部分就是反斜杠。另外就是说明它们各自的用途,除了在程序中,其他的地方基本不会使用反斜杠“\”,反斜杠几乎是程序中专用的

2)正斜杠和反斜杠在程序在都有应用,首先正斜杠可以用来表示路径,在Unix和Mac中使用正斜杠“/”来表示路径,但是Windows中却使用“\”表示路径,这里的“/”称为分隔符。

3)反斜杠“\”在程序设计中称为转义符,用来表示那些不能直接显示的字符。例如,换行。但是在不同的系统中换行的表示又不相同,在Unix中换行符是"\n",而在Windows中换行符是"\r\n"(先回车再换行),在Mac中换行是"\r"。这里的换行符的意思也就是说,当我们使用文本编辑器书写内容时,当我们完成一行内容(无论主动敲击回车键换行还是文本编辑器自动换行),编辑器会自动在我们每行文本(这里称为有效文本,也就是我们书写的实际内容)的内容后添加转义字符("\n"或者“\r\n”或者"\r",不同的系统在行尾添加的内容不同),也就是在每行末尾做个”标记“,当使用编辑器打开时,方便我们查看(不过,这些“标记”我们是看不到的)。

参考:http://www.ruanyifeng.com/blog/2006/04/post_213.html

转载于:https://www.cnblogs.com/lz3018/p/5344630.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在QPainter中,可以使用Python原生字符串(使用反斜杠\作为转义字符)来处理反斜杠换行符\,例如: ```python text = "This is a multi-line text. "\ "It spans over multiple lines." ``` 这将被解释为单个字符串,不包括反斜杠换行符。 如果您的文本包含反斜杠换行符,并希望在绘图期间处理它们,则可以使用Python的字符串处理方法。例如,可以使用split()方法将字符串分成多行,然后使用嵌套的循环来逐行绘制文本。 以下是一个示例代码,可以处理反斜杠换行符: ```python from PyQt5.QtGui import QPainter # ... def paintEvent(self, event): painter = QPainter(self) font = painter.font() font.setPointSize(14) painter.setFont(font) text = "This is a multi-line text. "\ "It spans over multiple lines. "\ "This is the third line.\n"\ "This is the fourth line." rect = self.geometry() top_margin = 20 bottom_margin = 20 left_margin = 20 right_margin = 20 lines = text.split('\n') y = top_margin for line in lines: x = left_margin words = line.split() for i, word in enumerate(words): if i > 0: x += painter.fontMetrics().width(' ') if '\n' in word: word, sep = word.split('\n') painter.drawText(x, y, word) y += painter.fontMetrics().height() x = left_margin painter.drawText(x, y, sep) else: word_width = painter.fontMetrics().width(word) if x + word_width > rect.width() - right_margin: x = left_margin y += painter.fontMetrics().height() painter.drawText(x, y, word) x += word_width y += painter.fontMetrics().height() painter.end() ``` 在此示例中,我们首先将文本分成多行,然后使用嵌套的循环逐行绘制文本。在每行中,我们使用split()方法将单词分开,并在必要时处理反斜杠换行符。如果单词中包含换行符,则我们使用split()方法将其分成两部分,并在第一部分中绘制文本,然后在下一行中绘制第二部分。否则,我们计算单词的宽度,并在达到行末时换行。 请注意,此示例仅处理换行符,而不考虑其他反斜杠转义序列。如果您的文本包含其他反斜杠转义序列,例如\t或\r,则需要对代码进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值