我在python中创建了一个caesar shift程序,见下文:
from string import maketrans
originalChar = (raw_input("Enter a letter: "))
numToInc = int(raw_input("Enter a number: "))
code = ""
for x in originalChar:
newChar = (chr(ord(x) + numToInc))
code = code + newChar
transtab = maketrans(chr(32+numToInc), " ")
print code.translate(transtab)
我必须转移以下代码:
%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[(_@%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{_@#_^{*
@##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**$&^{$!@#$%)!@(&
+^!{%_$&@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++
!_)^$&&%#+)}!@!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$$()_#}!@}^@_&%^*!){*^^_$^
如您所见,它包含注释。
如何将该代码转换为字符串?这些评论阻止了我的python脚本提供任何输出。
由于
答案 0 :(得分:4)
Tripple引用它:
"""%%$@_$^__#)^)&!_+]!*@&^}@[@%]()%+$&[(_@%+%$*^@$^!+]!&_#)_*}{}}!}_]$[%}@[{_@#_^{*
@##&{#&{&)*%(]{{([*}@[@&]+!!*{)!}{%+{))])[!^})+)$]#{*+^((@^@}$[**$&^{$!@#$%)!@(&
+^!{%_$&@^!}$_${)$_#)!({@!)(^}!*^&!$%_&&}&_#&@{)]{+)%*{&*%*&@%$+]!*__(#!*){%&@++
!_)^$&&%#+)}!@!)&^}**#!_$([$!$}#*^}$+&#[{*{}{((#$]{[$[$$()_#}!@}^@_&%^*!){*^^_$^"""
三引号字符串可以跨越多行并在其中包含注释。
答案 1 :(得分:1)
在三引号之间包围输入文本:"""your code"""
答案 2 :(得分:1)
如果源字符串包含Python转义字符,则三引号方法将不起作用。例如,序列\n
表示换行符,并且(正确地)解释为一个字符,而不是两个字符。
如果您想要一个通用解决方案,其中输入中提供的所有字符都按原样捕获并且没有转义/解释,请通过引号外的前导r
使用原始字符串方法:
>>> s = '\n\n\n'
>>> print len(s)
3
VS
>>> r = r'\n\n\n'
>>> print len(r)
6
无需担心特殊情况。