рдмрд╣реБрднрд╛рд╖реА рд░рдЬрд╛рдИ

рдореИрдВрдиреЗ рд▓реЗрдЦ "50 quines рдХреЗ рд░рд┐рд▓реЗ рджреМрдбрд╝" рдкрдврд╝рд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрджрдореА рдиреЗ рдПрдХ рднрдпрд╛рдирдХ рдмрд╛рдд рд▓рд┐рдЦреА, рдЬрдмрд░рджрд╕реНрдд рдХрд╛рдо, рдХрд▓рд╛ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рдоред рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рдирд╡реАрдп рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ, рдЕрдЧрд░ рд╡реЗ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдЧреВрдврд╝ рднрд╛рд╖рд╛рдУрдВ (рдмреНрд░реЗрдирдлрдХ, рдЕрдирд▓реИрдореНрдмреНрдбрд╛, рд╡реНрд╣реЙрдЯреНрд╕рдПрдк) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдХрдЧрд╛рд░ рдкрд░ рд░рдЦ рджреЗрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХреНрд╡реАрди рдХреИрд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдЕрдЬрдЧрд░ рдореЗрдВ рдХреЛрдб рд╣реИ рдЬреЛ рдмреНрд░реЗрдирдлреИрдХ рдореЗрдВ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдореНрдмрд╛рдореНрдмрд┐рдпрд╛ рдореЗрдВ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдЬрдЧрд░ рдореЗрдВ рдореВрд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:

data = 'def brainfuck(st): return "".join(["+"*ord(c)+".>" for c in st])\ndef unlambda(st): return "`r"+"`"*len(st)+"".join(["."+e for e in st])+"i"\nprint brainfuck(unlambda(\'data = %s\'%`data`+chr(10)+data))' def brainfuck(st): return "".join(["+"*ord(c)+".>" for c in st]) def unlambda(st): return "`r"+"`"*len(st)+"".join(["."+e for e in st])+"i" print brainfuck(unlambda('data = %s'%`data`+chr(10)+data)) 


рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░реВрдВрдЧрд╛ред
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдкрд╛рдпрдерди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддреА рд╣реИред рдпрд╣ рдкрдВрдХреНрддрд┐ рдЕрдВрддрд┐рдо рдмрд╛рд░ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рд╕рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдирдХреЛрдбреЗрдб рд╣реИред

 >>> data = 'def brainfuck(st): return "".join(["+"*ord(c)+".>" for c in st])\ndef unlambda(st): return "`r"+"`"*len(st)+"".join(["."+e for e in st])+"i"\nprint brainfuck(unlambda(\'data = %s\'%`data`+chr(10)+data))' >>> print data def brainfuck(st): return "".join(["+"*ord(c)+".>" for c in st]) def unlambda(st): return "`r"+"`"*len(st)+"".join(["."+e for e in st])+"i" print brainfuck(unlambda('data = %s'%`data`+chr(10)+data)) 


рддрджрдиреБрд╕рд╛рд░, рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд╛рда рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 'data = %s'%`data`+chr(10)+data 


рдЕрдирд▓рдореНрдмрд╛ рдлрдВрдХреНрд╢рди рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд░рд┐рд╕реАрд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдирд▓рдореНрдмрд╛ рдХреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рдмреНрд░реЗрдирдлрдХ рдлрд╝рдВрдХреНрд╢рди рдмреНрд░реЗрдирдлрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░

 brainfuck(unlambda('data = %s'%`data`+chr(10)+data)) 


рдпрд╣ рдПрдХ рд▓рд╛рдЗрди рд╣реИ рдЬреЛ рдмреНрд░реЗрдирдлрдХ рдкрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ, рдЕрдирд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреА рд╣реИ, рдПрдХ рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреА рд╣реИ
рдЕрдЬрдЧрд░ред
рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд▓рд╛рдЗрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд▓рд╛рдЗрди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛ рдХреА рдЧрдгрдирд╛ рдлрд┐рд░ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред

рдЕрджреНрдпрддрдиред

рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореБрдЭреЗ рдмреЗрд╣рддрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдХ рдХреНрд╡рд┐рд▓рд┐рди рдЬреИрд╕реА рдбрд┐рдЬрд╝рд╛рдЗрди (рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬрд╣рд╛рдБ рдЖрдк рдбреЗрдЯрд╛ рдФрд░ рдХреЛрдб рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
1) рдбреЗрдЯрд╛ рдЦрдВрдб (рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ, рдпрд╣ рднрд╛рдЧ рддрдм рддрдХ рдЦрд╛рд▓реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдб рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ)ред
2) рдХреЛрдб рдЦрдВрдб
рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рдлрд░ рд╣реИ рдЬрд┐рд╕реЗ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдбреЗрдЯрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдЬрдмрдХрд┐ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдкрд░, рдХреЛрдб рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЗрди рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░, рд╣рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВред
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдРрд╕реА рд░реЗрдЦрд╛ 'рдбреЗрдЯрд╛ =% s'% `рдбреЗрдЯрд╛` + chr (10) + рдбреЗрдЯрд╛ рд╣реИ ред
'data =% s'% `data` рдбреЗрдЯрд╛ рд╕реЗрдЧрдореЗрдВрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реА рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рд╣реИ, рдбреЗрдЯрд╛ рдХреЛрдб рд╕реЗрдЧрдореЗрдВрдЯ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рд╣реИ, рдФрд░ chr (10) рдЙрдирдХреЗ рдмреАрдЪ рдХреА рд▓рд╛рдЗрди рдлреАрдб рд╣реИред
рдФрд░ рдлрд┐рд░, рд╣рдорд╛рд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдпрд╣ рдЬрд╛рджреВ рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:

 data = "l = 'data = %s'%`data`+chr(10)+data\nprint l" l = 'data = %s'%`data`+chr(10)+data print l 

рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдкрд▓рдЯ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рдкрд╛рда рдХреЛ рд╕рд╛рдордиреЗ рдХреА рддрд░рдл рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ:

 data = "l = 'data = %s'%`data`+chr(10)+data\nprint l[-1::-1]" l = 'data = %s'%`data`+chr(10)+data print l[-1::-1] 


рд╣рдо рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреЗ рд╖реЛрдбрд╢ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 data = "l = 'data = %s'%`data`+chr(10)+data\nprint ' '.join([hex(ord(e)) for e in l])" l = 'data = %s'%`data`+chr(10)+data print ' '.join([hex(ord(e)) for e in l]) 


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ)ред рдПрдХ "рд╕рд┐рдлрд░" рдореЗрдВ рддрд╛рд░ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдВрддрд░рд┐рдХ рдкрд╛рдпрдерди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдПрд╕рд╕реАрдЖрдИ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рдлрд┐рд░ рдХрд┐рд╕реА рдФрд░ рддрд░рд╣ рд╕реЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓реЗрдВ:

 data = [108, 32, 61, 32, 39, 100, 97, 116, 97, 32, 61, 32, 37, 115, 39, 37, 100, 97, 116, 97, 43, 99, 104, 114, 40, 49, 48, 41, 43, 39, 39, 46, 106, 111, 105, 110, 40, 91, 99, 104, 114, 40, 101, 41, 32, 102, 111, 114, 32, 101, 32, 105, 110, 32, 100, 97, 116, 97, 93, 41, 10, 112, 114, 105, 110, 116, 32, 108] l = 'data = %s'%data+chr(10)+''.join([chr(e) for e in data]) print l 

Source: https://habr.com/ru/post/In188378/


All Articles