hank124 发表于 2020-8-18 22:23:04

python零基础第14课后台 密码强度的问题

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

0. 第一句的symbols为何前面要加上r且使用 ''' ?
1. 答案中symbols中引用的顺序与题目中的不同,我输入symbols = r'''~!@#$%^&*()_=-/,.?<>;:[]{}|\''' 导致后面所有的内容都变成绿色,请问是什么原因?

sunrise085 发表于 2020-8-18 22:50:41

0. 第一句的symbols为何前面要加上r且使用 ''' ?
r不是这事一个原字符串,里面的内容不进行转义
使用三引号,是因为字符串内有单引号和双引号,若字符串外面街使用单引号或双引号的话,会导致引号配对出错。
1. 答案中symbols中引用的顺序与题目中的不同,我输入symbols = r'''~!@#$%^&*()_=-/,.?<>;:[]{}|\''' 导致后面所有的内容都变成绿色,请问是什么原因?
这个出错的原因是因为你把反斜杠放在字符串的结尾了,这事有问题的,反斜杠不能放在字符串的结尾

昨非 发表于 2020-8-18 23:27:20

三引号相当于中间内容直接注释掉了

sunrise085 发表于 2020-8-19 12:23:03

昨非 发表于 2020-8-18 23:27
三引号相当于中间内容直接注释掉了

你理解的有偏差,python中只有一种注释,就是前面加#
所谓的三引号注释,并不是真正的注释。三引号是长字符串,是可以跨行的字符串,若该字符串没有赋值给某个变量,在程序中不起作用,相当于被注释掉了。但实际上它仍然是一个字符串,需要符合字符串的规则。

昨非 发表于 2020-8-19 12:46:39

sunrise085 发表于 2020-8-19 12:23
你理解的有偏差,python中只有一种注释,就是前面加#
所谓的三引号注释,并不是真正的注释。三引号是 ...

仔细看了最佳答案,受教了,谢谢指正
页: [1]
查看完整版本: python零基础第14课后台 密码强度的问题