fayzzz 发表于 2018-11-19 21:18:24

有关字符串方法的密码课后习题问题

看到小甲鱼老师在定义所有符号的时候用了下面的语句:
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''

请问这里为什么要用r和三引号?

大黑狼 发表于 2018-11-19 21:36:36

本帖最后由 大黑狼 于 2018-11-19 21:39 编辑

三引号在python里面的意思类似于html里面的<pre>标签 用于保留文本格式的意思
而在前面加个r的意思应该就是防止三引号和中间的三引号被系统误读,导致最后的那个三引号失效,中间的那个三引号应该是单纯的符号意思,而前面和最后的三引号应该是一组的把中间的整个数据包裹起来
这是python里面的解释 差不多
或者说三重引号是用来跨多行字符串的意思即 ''' 内容 '''   
r可以用来表示原始字符串
相当于是
>>>str = r'C:\now'
       print(str)       #其中r的作用就是防止\n被系统理解成换行的意思 目的是输出目录地址
                           如果没有r的话输出结果就变成C:
                                                                        ow
            我也不知道我说的对不对如果有不对的地方请见谅   小甲鱼老师的003讲python的那个视频教程讲到了这两个知识点不知道跟你说的那个地方一不一样作用,这个r的作用相当于就是防止代码被系统误解读 因为中间也有一个三引号

塔利班 发表于 2018-11-19 21:36:51

因为你的内部有单引号和双引号

fayzzz 发表于 2018-11-19 21:56:25

大黑狼 发表于 2018-11-19 21:36
三引号在python里面的意思类似于html里面的标签 用于保留文本格式的意思
而在前面加个r的意思应该就是防 ...

嗯 我看了笔记 r是为了防止误读的 但是也没看到内容里有任何反斜杠+字母的组合呀

fayzzz 发表于 2018-11-19 21:59:12

塔利班 发表于 2018-11-19 21:36
因为你的内部有单引号和双引号

赞! 好像前面的r不打也不要紧

heidern0612 发表于 2018-11-20 08:16:32

fayzzz 发表于 2018-11-19 21:59
赞! 好像前面的r不打也不要紧

用r原始字符串的话,symbols会转义掉单引号和双引号,老师这么做只是为了防止bug,虽然三引号也可以使用。虽然不带r确实不要紧,但是我想老师想表示的是一种严谨的思想。

cdcf 发表于 2018-11-21 15:57:09

{:5_90:}
页: [1]
查看完整版本: 有关字符串方法的密码课后习题问题