字符串文字中的特殊字符

Special Characters in string literals

我正在 Python 中制作一组以容纳我键盘上的所有符号,但显然有一些会带来一些问题。有没有什么办法可以把它们都放进去而不会遇到问题?

这是我的设置:

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

为了绕开注释掉大部分内容,因为在 Python # 中是要注释,所以我把所有内容都这样封闭起来:

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

这对那个角色有效,但现在当我遇到 '\ 时,我已经看到了一个问题。有没有更好的制作方法?

您可以通过转义来修复反斜杠,' 可以通过将其放在双引号中来修复:

symbols = {..., '\', ... "'", ...}

但是输入所有这些内容非常乏味。为什么不直接使用 string.punctuation 来代替:

>>> from string import punctuation
>>> set(punctuation)
{'~', ':', "'", '+', '[', '\', '@', '^', '{', '%', '(', '-', '"', '*', '|', ',', '&', '<', '`', '}', '.', '_', '=', ']', '!', '>', ';', '?', '#', '$', ')', '/'}
>>>

我宁愿将它们全部放在三引号中,就像这样。它会忽略任何特殊字符:

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