鲨鱼辣椒1 发表于 2020-6-24 12:00:38

python课后作业14讲

给出的答案是   symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
但是题目里是    (仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)
然后我用    symbols = r'''~!@#$%^&*()_=-/,.?<>;:[]{}|\'''    做不出来,只能把三引号里面的内容换成答案给的那些特殊字符。   我又试了下 symbols = r'''~!@#$%^&*()_=-/,.?<>;:[]{}|\ ''' 在最后的三引号前面加个空格就又可以了,这是为什么?

roy_lz 发表于 2020-6-24 12:34:06

本帖最后由 roy_lz 于 2020-6-24 12:37 编辑

应该是\不能在最后,不然python以为还没结束,要求你继续输入的。

Twilight6 发表于 2020-6-24 13:13:32



因为 \ 还有个作用就是换行效果,当你把 \ 放在字符串的最后一个,那么Python 就会认为你要换行

所以会报错哈,你随便移动下 \ 的位置就可以避免这种情况发生了,建议不要补空格,因为到时候密码判断也会把空格判断为特殊字符了

Hoiste 发表于 2020-6-24 13:38:08

本帖最后由 Hoiste 于 2020-6-24 13:39 编辑

应该是\的问题,一开始以为是转义,不过前面有r所以反斜杠不能转义了,所以有可能是\放在字符串末尾被当做换行继续输入的标志了。
页: [1]
查看完整版本: python课后作业14讲