Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中多行注释和多行字符串之间的区别是什么?_Python_Syntax - Fatal编程技术网

python中多行注释和多行字符串之间的区别是什么?

python中多行注释和多行字符串之间的区别是什么?,python,syntax,Python,Syntax,我仍在探索python。今天我遇到了多行字符串。如果我这样做: a = ''' some-text ''' 变量a的内容为“\n某些文本\n”。但这让我感到困惑。我一直认为,如果你用三个单引号括起来,你就是在注释它。因此,上述语句相当于C++中的类似语句: a = /* some-text */ 我遗漏了什么?从技术上讲,这种用三个引号括起来的多行注释实际上不是注释,而是字符串文字 您仍然可以使用它们注释内容的原因是字符串文本本身并不表示任何类型的操作。它会被解析,但不会对它做任何处理,也不

我仍在探索python。今天我遇到了多行字符串。如果我这样做:

a = '''
some-text
'''
变量a的内容为“\n某些文本\n”。但这让我感到困惑。我一直认为,如果你用三个单引号括起来,你就是在注释它。因此,上述语句相当于C++中的类似语句:

a = /*
some-text
*/

我遗漏了什么?

从技术上讲,这种用三个引号括起来的多行注释实际上不是注释,而是字符串文字

您仍然可以使用它们注释内容的原因是字符串文本本身并不表示任何类型的操作。它会被解析,但不会对它做任何处理,也不会被分配给变量名,因此会被忽略

您还可以将任何其他文字放入代码中。只要它不涉及任何类型的操作或任务,它基本上会像注释一样被忽略。不过,它不是一条注释,如果您想这样命名,它只是无用的代码

下面是一个代码示例,它可以。。。嗯,没什么:

# This is a real comment.

"useless normal string"

"""useless triple-quoted
multi-line
string"""

[1, "two"]  # <-- useless list

42  # <-- useless number
我一直认为,如果你用三个单引号括起来

事实并非如此。将某些内容括在三个引号“string”中,它会创建一个字符串表达式,该表达式生成一个包含引号中字符的字符串。此字符串与单引号字符串“string”的区别在于前者可以位于多行。人们经常用它来注释多行文字

但是,如果不将字符串表达式指定给变量,则会得到类似于注释的内容

'''this is
a useless piece of python
text that does nothing for
your program'''
在python中,将代码包装为“将其编码为字符串,有效地注释掉它,除非该代码已经包含多行字符串文字”。然后,字符串将被终止

print('''hello!
How are you?''')

# this will not have the intended comment effect
'''
print('''hello!
How are you?''')
'''

注释解释得很好,我一直认为,如果你用三个单引号括起来,你就是在注释它。嗯,你不是。你在用绳子把那个东西包起来。字符串,即使是docstring,从技术上讲,它们不是注释。要回答您的问题,请参阅@GianlucaMancini,这样就没有多行注释了。多行stings同时用作docstring。两者都是经过编译的。但单行注释不是。是否正确?@daltonfury42您可以使用任何字符串作为docstring:def f:\nhello\n return 42工作正常,并提供hello作为f.\uuu doc\uuuu。使用多行字符串作为注释与在随机位置使用数字完全相同:`do_something;42; 做点别的吧。Python对表达式求值,但由于表达式的值没有保存在任何地方,因此它是无用的;如果您使用的是文本,它将被编译出来,除非用作docstring。