0 0

Python自然字符串末尾的反斜杠10

我发现自然字符串末尾似乎不能是反斜杠···
比如:
path = r'C:\Windows\'


Python 2.6报错:
SyntaxError: EOL while scanning string literal

IronPython 2.6.2也报错:
File "<stdin>", line 1
    path = r'C:\Windows\'

           ^
SyntaxError: EOL while scanning single-quoted string

不是已经标记了自然字符串了么?反斜杠应该不会转义啊!

我尝试过以下两种写法:
path = r'C:\Windows\\'

path = r'C:\Windows\''

可以运行,但print得到的结果都不对,分别是 C:\Windows\\ 和 C:\Windows\'

请问用自然字符串如何表示末尾带反斜杠的字符串的?
2011年5月03日 18:49

5个答案 按时间排序 按投票排序

0 0

字符串的末尾,即使是原始(raw)字符串末尾也不能带奇数个反斜杠,因为这会引起后续引号的转义:比如r'C:\Windows\'这个字符串常量,后一个反斜杠会告诉解析器后面的单引号不是字符串的结尾,字符串由两个引号包围,少了一个引号结束字符串,所以出现"SyntaxError: EOL while scanning single-quoted string "这个错误;这说明原始字符串也不是100%的"raw",它影响字符串的开头和结尾,下面举几个例子:
r'C:\Windows'new'不是有效的字符串,前部分r'C:\Windows'已经是合法的字符串了,后面加上new'解析失败;
r'C:\Windows'\new'也会出错,错误原因同上,合法字符串r'C:\Windows'加上\new'让解析器解析失败;
r'C:\Windows\'new'不会出错,很多人理解的原始字符串会保留字符本来的意义,所以会认为字符串中r'C:\Windows\'已经是一个合法的字符串了,后面还跟着new'使得字符串不合法,其实这个字符串中r'C:\Windows\'不合法,应为后面的反斜杠告诉解析器"我后面的引号的意义已经被我转义了,在这里不是字符串的结尾,你可以继续进行解析"。

完成你的工作需求的三种方法:<1>r'C:\Windows\\'[:-1] <2>r'C:\Windows'+'\\' <3>'C:\\Windows\\'

希望对你有所帮助

2011年5月09日 09:50
0 0

字符串的末尾,即使是原始(raw)字符串末尾也不能带奇数个反斜杠,因为这会引起后续引号的转义:比如r'C:\Windows\'这个字符串常量,后一个反斜杠会告诉解析器后面的单引号不是字符串的结尾,字符串由两个引号包围,少了一个引号结束字符串,所以出现"SyntaxError: EOL while scanning single-quoted string "这个错误;这说明原始字符串也不是100%的"raw",它影响字符串的开头和结尾,下面举几个例子:
r'C:\Windows'new'不是有效的字符串,前部分r'C:\Windows'已经是合法的字符串了,后面加上new'解析失败;
r'C:\Windows'\new'也会出错,错误原因同上,合法字符串r'C:\Windows'加上\new'让解析器解析失败;
r'C:\Windows\'new'不会出错,很多人理解的原始字符串会保留字符本来的意义,所以会认为字符串中r'C:\Windows\'已经是一个合法的字符串了,后面还跟着new'使得字符串不合法,其实这个字符串中r'C:\Windows\'不合法,应为后面的反斜杠告诉解析器"我后面的引号的意义已经被我转义了,在这里不是字符串的结尾,你可以继续进行解析"。

希望对你有所帮助

2011年5月09日 09:45
0 0

用r无法表达的,碰到这种情况,还是老实的用:
s='c:\\windows\\'吧

2011年5月08日 14:55
0 0

这位兄台 我仔细研究了你说的问题
    觉得你可能想输出一个这样的字符串c:\windows\纯粹的路径,但是单纯的一个\字符在Python中没法表示,它在输出的时候会默认将其转义为c:\windows\\
    所以你看到的path='c:\\'  打印出的c:\\实际上就是你要的东西

希望我的回答对你有帮助

2011年5月04日 08:48
0 0

字符串续行用的

2011年5月03日 19:08

相关推荐

    原始字符串末尾的反斜杠【方法总结】.py

    给python的新学者参考使用,3.6,win64版本制作

    Python字符串和正则表达式中的反斜杠('\')问题详解

    反斜杠在Python字符串和正则表达式中扮演着特殊角色,而这一角色在不同的上下文中有不同的含义。本文将详细解释Python字符串和正则表达式中关于反斜杠的问题,包括其转义规则和使用方法。 首先,我们从Python普通...

    python字符串的使用方法.docx

    Python字符串是编程中不可或缺的部分,尤其在处理文本数据时。字符串是由一个或多个字符组成的序列,它们可以包含字母、数字、特殊符号等。在Python中,字符串是不可变的,这意味着一旦创建,就不能直接更改其内容。...

    python输入多行字符串的方法总结

    这种方法的一个好处是它不会像使用反斜杠那样在字符串末尾添加不必要的空白字符。 #### 扩展:处理长字符串 当遇到特别长的字符串时,将其分割成多行不仅有助于提高代码的可读性,还可以避免某些IDE或编辑器中的...

    python字符串处理实例.docx

    ### Python字符串处理技巧详解 #### 一、Python中的清屏指令 在Python中,可以通过调用`os`模块中的`system`方法来实现控制台的清屏操作。 ```python import os os.system('cls') # 在Windows操作系统中 ``` 此命令...

    python字符串的相关知识点

    Python字符串是编程中常用的数据类型,它用于存储和操作文本数据。字符串是由一个或多个字符组成的有序序列,每个字符都有其对应的序号,这使得我们可以对字符串中的字符进行索引和切片操作。 1. **字符串简介** -...

    多行字符串的表示方式

    例如,`+`操作符用于字符串连接,`%`运算符用于格式化输出,`chomp`方法用于移除字符串末尾的换行符,`strip`方法用于去除字符串首尾的空白等。 总之,多行字符串的表示方式因编程语言而异,理解并熟练掌握这些方法...

    Python 基础之字符串string详解及实例

    Python字符串(string)是编程语言中用来表示文本的数据类型,它由一个或多个字符组成,且在Python中,字符串是不可变的,意味着一旦创建,就不能修改。本篇将深入探讨Python字符串的基础概念、特性以及常见操作。 1....

    python3数据类型:String字符串

    Python中的字符串用单引号 ’ 或双引号 ” 括起来,同时使用反斜杠 \ 转义特殊字符。 字符串的截取的语法格式如下: 变量[头下标:尾下标] 索引值以 0 为开始值,-1 为从末尾的开始位置。 加号 + 是字符串的连接符...

    python笔记02.pdf

    1. Python字符串定义: - Python中定义字符串可以使用单引号(')、双引号(")或者三引号('''或 """)。 - 当字符串内部包含单引号或双引号时,需要使用反斜杠(\)进行转义。 - 双引号字符串中,若要输出一个反斜杠(\)...

    Python中关于字符串对象的一些基础知识

    此外,字符串的反斜杠"\"可用于多行字符串,通过在行末添加反斜杠可以将一行内容延续到下一行。 在Python中,字符串的每个字符可以通过索引来访问,索引从0开始计数。索引操作如S[1:]将会提取字符串S中从第2个字符...

    Python知识点详细总结.pdf

    - **转义字符**:在Python字符串中,使用反斜杠`\`作为转义字符。例如,`'what\'s up'`与`"what's up"`是等价的。 - **行续接**:在一行末尾使用一个单独的反斜杠`\`可以将当前行与下一行合并为同一行,例如:`'...

    python正则表达式_深入浅出

    - **`$` (美元符号)**:匹配字符串的结束位置或字符串末尾的换行符。在`MULTILINE`模式下,匹配每一行的末尾。 - **`*` (星号)**:表示前一个字符或表达式可重复0次或多次。 - **`+` (加号)**:表示前一个字符或...

    python基础入门(超详细).pdf

    9. **字符串转义**:在字符串中,反斜杠 `\` 用于转义特殊字符,如 `"nihao \"nihao"` 转义了内部的双引号。三引号 `"""` 可以创建多行字符串,包含所有内部字符,包括空格。 10. **切片**:通过索引和步长对字符串...

    Python总结(精简).pdf

    3. **行延续**:在字符串末尾使用反斜杠 `\` 可以实现行延续,即表示当前行末尾不是字符串的结尾,而是继续到下一行。例如,`'aaaaa\ndddd'` 等同于 `'aaaaadddd'`。 4. **原始字符串**:通过前缀 `r` 创建的原始...

    python3教程笔记.docx

    多行语句可以使用反斜杠 `\` 实现,但在 `[]`、`{}` 或 `()` 中的多行语句不需要使用反斜杠 `\`。 Python 中有六种基本数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)和 ...

    Python中正反斜杠(‘/’和‘\’)的意义与用法

    另一方面,反斜杠(‘\’)在Python字符串中,有特殊的转义功能,这意味着它能够改变紧随其后的字符的含义。例如,`\n`代表换行,`\t`代表制表符。如果想要在字符串中表示一个反斜杠本身,则需要使用两个反斜杠(‘\...

    python正则表达式 深入浅出.docx

    例如,为了匹配一个实际的反斜杠字符,我们需要使用四个反斜杠`\\\\`(`\\`作为正则表达式的字符串,`\\`作为Python字符串中的转义)。为了避免这种复杂性,建议使用**raw string**,即以`r`开头的字符串。例如,`r'...

Global site tag (gtag.js) - Google Analytics