shawncaoo 发表于 2020-5-15 16:59:08

第十四讲 密码安全性问题

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


在这个里面 为什么只有symbols后面要加r''' ''',而chars和nums后面直接跟的是字符串
? 可不可以将symbols的r''' '''去掉呢?

wuqramy 发表于 2020-5-15 17:01:38

不可以!
symbols后面要加r''' '''是为了给symbols里面的/转义

shawncaoo 发表于 2020-5-15 17:04:23

wuqramy 发表于 2020-5-15 17:01
不可以!
symbols后面要加r''' '''是为了给symbols里面的/转义

那可不可以给chars和nums后面也加上r''' '''呢?什么时候需要转义呢?

wuqramy 发表于 2020-5-15 17:06:07

shawncaoo 发表于 2020-5-15 17:04
那可不可以给chars和nums后面也加上r''' '''呢?什么时候需要转义呢?

给chars和nums加了也不会报错(没必要加)
在字符串中存在\的都尽量加一下
末尾有\的不能加r,要用字符串拼接去加上那个\

shawncaoo 发表于 2020-5-15 17:11:07

wuqramy 发表于 2020-5-15 17:06
给chars和nums加了也不会报错(没必要加)
在字符串中存在\的都尽量加一下
末尾有\的不能加r,要用字符 ...

好的谢谢你!还有一个问题就是r后面一定要接3个'''引号么?我在网上搜了一下见有的是r'' '',这方面不是太明白{:10_243:}

wuqramy 发表于 2020-5-15 17:14:23

shawncaoo 发表于 2020-5-15 17:11
好的谢谢你!还有一个问题就是r后面一定要接3个'''引号么?我在网上搜了一下见有的是r'' '',这方面不是 ...

不一定要
3个引号只是指它是一个长字符串

shawncaoo 发表于 2020-5-15 17:14:57

wuqramy 发表于 2020-5-15 17:14
不一定要
3个引号只是指它是一个长字符串

谢谢!

txxcat 发表于 2020-5-15 17:21:19

本帖最后由 txxcat 于 2020-5-15 17:22 编辑

    字符串前面加r或者R是定义原始字符串,作用恰恰是禁止'\'的转义功能而恢复为普通字符串,经常用在windows系统路径字符串前面。既然是用在字符串前面,那么无论单引号、双引号还是三引号,都是可以用的。
    三引号由三个半角单引号组成,是超长字符串的标记,你可以在里面任意回车换行,想写多少写多少,很多代码开头的注释就用三引号,比#好看。这里用三引号是因为字符串里面有单引号和双引号。

shawncaoo 发表于 2020-5-15 17:27:27

txxcat 发表于 2020-5-15 17:21
字符串前面加r或者R是定义原始字符串,作用恰恰是禁止'\'的转义功能而恢复为普通字符串,经常用在windo ...

谢谢解答,你这么解释我更明白了{:10_297:}
页: [1]
查看完整版本: 第十四讲 密码安全性问题