DoubleS、Zhao 发表于 2020-10-24 20:39:42

各位大佬帮忙一下,谢谢

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''

为什么前面要加r,为什么不能光用两个单引号框住这些符号呢?

{:9_220:}

知了和蜜蜂 发表于 2020-10-24 20:50:27

本帖最后由 知了和蜜蜂 于 2020-10-24 20:55 编辑

因为这些特殊字符已经包含了单引号和双引号了,你用两个单引号但是最终显示的是却是三个单引号,不符合引号成双成对出现的规则。

DoubleS、Zhao 发表于 2020-10-24 21:01:03

知了和蜜蜂 发表于 2020-10-24 20:50
因为这些特殊字符已经包含了单引号和双引号了,你用两个单引号但是最终显示的是却是三个单引号,不符合引号 ...

那r是代表什么?而且我一边用两个和一边用三个有什么区别吗?

冰河星云 发表于 2020-10-24 21:01:15

加r是因为让字符串变成原始意义,也就是变成原始字符串

DoubleS、Zhao 发表于 2020-10-24 21:10:46

冰河星云 发表于 2020-10-24 21:01
加r是因为让字符串变成原始意义,也就是变成原始字符串

那为什么有一边有三个引号呢?{:9_220:}

冰河星云 发表于 2020-10-24 21:15:56

DoubleS、Zhao 发表于 2020-10-24 21:10
那为什么有一边有三个引号呢?

三引号可以在命令行模式下随意换行,更方便打印需要换行的字符串

程永康 发表于 2020-10-24 21:30:39

如果你用三引号,那前面可以不加r吧……

笨鸟学飞 发表于 2020-10-24 22:13:08

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''   #首先看清楚是3个单引号,加r的原因,是因为后面有\,加了r就可以直接这么定义字符串,不加r你碰到反斜杠就得写2个

>>> print (r'\n\t')
\n\t
>>> print('''\n\t''') #这里的\n直接转义成了换行,\t转义成了制表符

       
>>> print('\\n\\t')
\n\t

疾风怪盗 发表于 2020-10-25 00:31:30

r是表示类型,raw string类型(原生字符串类型),指不包含转义符的字符串

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
页: [1]
查看完整版本: 各位大佬帮忙一下,谢谢