这个问题主要与我想更好地理解python是如何工作的有关。你知道吗
所以我只做了一个简单的函数,它是.split()
函数的一个更动态的版本(它允许多个拆分,其中一个是'\n'
,这样我可以更好地格式化一些CSV信息),但是我不知道它的一个方面为什么工作。当您使用for循环(如-for letter in string
)遍历字符串(如"Hello there!\nGeneral Kenobi."
)时,为什么'letter'
变量将'\n'
存储为一个字符串,而不是'\'
并在下一次迭代中'n'
?你知道吗
我知道的代码是这样做的:
myString = "This is a string\nThis is a string"
for letter in myString:
print(repr(letter))
说清楚一点,我喜欢它这样做,但我只想知道为什么。你知道吗
谢谢!你知道吗
在字符串文本(reference page for python 3)中,转义字符,即那些以反斜杠“
\
”开头的字符被替换,并根据一些规则进行解释。通过在字符串文本前面加上字母“r
”或“R
”,可以强制python将“\”(反斜杠)解释为单个字符。你知道吗因此“
\n
”实际上是源代码中的两个字符,但它被python解释为ASCII字符“换行符”关于用户输入的说明
用Python2的
input()
传递的字符串与字符串文本(您在代码中定义的字符串,只需将它们写在引号之间)的处理方式相同。在这两种情况下,“\n
”被解释为单行换行符。你知道吗另一方面,Python3的
input()
和Python2的raw_input()
读取原始字符串,即“\n
”被解释为两个字符。你知道吗所以如果在你的例子中(我假设Python3),你使用
并将“
This is a string\nThis is a string
”作为输入,则for循环将分别迭代“\
”和“n
”。你知道吗因为它是一个字符。在许多上下文中,
\
通常是一个“转义”字符,这意味着它和后面的字符不是字符串的一部分,而是一个字符或其他结构的表示形式,这些字符或结构没有书面表示形式,或者在该上下文中不容易忠实地呈现(例如换行符)。字符串中的文字\n
将被呈现为\\n
,实际上(其中\
本身必须转义,以指示它是文字\
)。你知道吗在我们所看到的“字符”和python所看到的
\
和n
之间存在不匹配,每一个都有自己的含义。但是Python读取\n
,因为\
表示*忽略下一个字符。因此python读取\n
而不是\
和n
。这个\n
对于python是“行尾”,因此我们不应该将其解释为\n
(\
,n
),而应该解释为end of line
(enter)。你知道吗*过于简单化
相关问题 更多 >
编程相关推荐