LoginSignup
10
5

More than 5 years have passed since last update.

๐Ÿ’ฉใ“ใ‚Œใฏไธ–็•Œไธ€ใฎ่‡ญใ„ใงใ‚ใ‚‹ใ‚ฆใƒณใ‚ณใƒผใƒ‰ใ‚’ๅ‡บๅŠ›ใ—ใพใ™๐Ÿ’ฉ

Posted at

ใ‚ฟใ‚คใƒˆใƒซใ‚’ๅ†็ฟป่จณใƒ†ใ‚ญใ‚นใƒˆใฃใฝใใ—ใŸใฎใฏ่ถฃๅ‘ณใงใ™ใ€‚

tl;dr

  • ใ‚ฏใ‚ฝใฟใŸใ„ใชใ‚ณใƒผใƒ‰(้€š็งฐใ‚ฆใƒณใ‚ณใƒผใƒ‰)ใ‚’็œบใ‚ใฆใ„ใฆใ€ใ“ใ‚Œใฏ่‡ญใ†ใฃใฆๆ€ใฃใŸ
  • ๆœฌๅฝ“ใซ่‡ญใ„ใ‚ณใƒผใƒ‰ใจใฏใชใซใ‹่€ƒใˆใŸ
  • Pythonใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ใ†ใ‚“ใกใซๅค‰ใˆใ‚‹ใƒ—ใƒญใ‚ฐใƒฉใƒ ใ‚’ไฝœใฃใŸ

ใฏใ˜ใ‚ใซ

ใ‚ฆใƒณใ‚ณใƒผใƒ‰ใƒปใƒžใƒ‹ใ‚ขใจใ„ใ†ใ‚ตใ‚คใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚ๆœ‰ๅฟ—ใฎๆ–นใ€…ใŒ้›†ใ‚ใŸใ‚ฏใ‚ฝใชใ‚ณใƒผใƒ‰ใ„ใ‚ใ‚†ใ‚‹ใ‚ฆใƒณใ‚ณใƒผใƒ‰ใŒๆŠ•็จฟใ•ใ‚Œใฆใ„ใพใ™ใ€‚

ๆœ‰ๅใชใ‚ณใƒผใƒ‰ใฎไพ‹ใ ใจใ€128ๅ€‹ใฎcaseใŒไธฆใถswitchๆ–‡ใ‚„ใ€่ฌŽใฎ้€ฃ็•ชใงๅ‘ฝๅใ•ใ‚ŒใŸๅค‰ๆ•ฐใชใฉ...(่จ˜ไบ‹ๆŠ•็จฟๆ™‚ใซใƒกใƒณใƒ†ใƒŠใƒณใ‚นไธญใ ใฃใŸใŸใ‚ใ€ใ‚นใ‚ฏใ‚ทใƒงใ‚’่ฒผใ‚Œใชใ‹ใฃใŸ...)

็œŸ้ข็›ฎใช่ฉฑใ‚’ใ™ใ‚‹ใจใ€ใ‚ฆใƒณใ‚ณใƒผใƒ‰ใ‚’ๅ‹‰ๅผทใ™ใ‚‹ใจๅ้ขๆ•™ๅธซใฎใ‚ˆใ†ใซใ“ใ†ใ‚„ใฃใฆใ™ใ‚‹ใจใƒ€ใƒกใชใ‚“ใ ใชใฃใฆใ„ใ†ๅ‹‰ๅผทใซใชใฃใŸใ‚Šใ‚‚ใ—ใพใ™ใ€‚ใ‚ขใƒณใƒใƒ‘ใ‚ฟใƒผใƒณใชใ‚‰ใฌใ‚ฆใƒณใƒใƒ‘ใ‚ฟใƒผใƒณใ‚’็ŸฅใฃใฆใŠใ“ใ†ใจใ„ใ†ใ“ใจใงใ™ใ€‚

ใ‚ใ‚Šใจใใฎใ‚ณใƒผใƒ‰ใฎไธญใซใ‚‚่ญฐ่ซ–ใ‚’ๅ‘ผใถใ‚‚ใฎใ‚‚ใ‚ใ‚Šใพใ™ใ€‚ใ€ŒๆžœใŸใ—ใฆใ“ใ‚Œใฏๆœฌๅฝ“ใซใ‚ฆใƒณใ‚ณใƒผใƒ‰ใจใ„ใฃใฆใ„ใ„ใฎใ‹?ใ€ใ‚„ใ€Œใ“ใฎๆ›ธใๆ–นใฏๆญฃใ—ใ„orๆญฃใ—ใใชใ„ใ€ใฟใŸใ„ใช่ฉฑใ‚‚ใ‚ใŒใฃใŸใ‚Šใ—ใพใ™ใ€‚ๅ‹‰ๅผทใซใชใ‚‹ใ€‚ๅ‚่€ƒโ†’ใ‚ฆใƒณใ‚ณใƒผใƒ‰ใซๆŽฒ่ผ‰ใ•ใ‚Œใฆใ„ใ‚‹ใ‚ณใƒผใƒ‰ใฏๆœฌๅฝ“ใซใ‚ฆใƒณใ‚ณใชใฎใ‹ - ่Ÿฒ๏ผ่™ซ๏ผ่Ÿฒ๏ผ - #!/usr/bin/bugrammer

ใใ“ใงใ€่ชฐใงใ‚‚ใ“ใ‚Œใฏใ‚ฆใƒณใ‚ณใƒผใƒ‰ใ ใจ่จ€ใˆใ‚‹ใ‚ณใƒผใƒ‰ใ‚’่ฆ‹ใคใ‘ใพใ—ใŸใ€‚(่ค’ใ‚่จ€่‘‰)โ†“
Pythonใง1่กŒใงใงใ‹ใ„๐Ÿ’ฉใ‚’่กจ็คบใ™ใ‚‹ใพใงใฎ้“ใฎใ‚Š - Qiita

ใใ“ใง"๐Ÿ’ฉ"ใ‚’ไฝฟใฃใŸใชใซใ‹ใ‚’ใคใใ‚ŠใŸใใชใ‚Šใพใ—ใŸใ€‚

ใ™ในใฆใฎPythonใ‚ณใƒผใƒ‰ใ‚’๐Ÿ’ฉใซๅค‰ใˆใ‚‹ใƒ„ใƒผใƒซ

ใ‚’ใคใใ‚Šใพใ—ใŸใ€‚

ไพ‹ใˆใฐ

for i in range(10): print(' '*(10-i) + '๐Ÿ’ฉ'*i)

ใ‚’

 ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ   ๐Ÿ’ฉ      ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ      ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ   ๐Ÿ’ฉ      ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ    ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ     ๐Ÿ’ฉ๐Ÿ’ฉ   ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ      ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ   ๐Ÿ’ฉ      ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ     ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ    ๐Ÿ’ฉ ๐Ÿ’ฉ     ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ       ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ ๐Ÿ’ฉ   ๐Ÿ’ฉ ๐Ÿ’ฉ     ๐Ÿ’ฉ๐Ÿ’ฉ   ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ      ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ       ๐Ÿ’ฉ ๐Ÿ’ฉ ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ       ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ    ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ  ๐Ÿ’ฉ ๐Ÿ’ฉ  ๐Ÿ’ฉ

ใซๅค‰ๆ›ใ—ใพใ™ใ€‚ใ‚ใŠ่‡ญใ„ใ€‚
ใกใ‚ƒใ‚“ใจๅฎŸ่กŒใงใใพใ™ใ€‚

ไปฅไธŠใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ€

         ๐Ÿ’ฉ
        ๐Ÿ’ฉ๐Ÿ’ฉ
       ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ
      ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ
     ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ
    ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ
   ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ
  ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ
 ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ๐Ÿ’ฉ

ใŒๅ‡บๅŠ›ใ•ใ‚Œใพใ™ใ€‚

ไฝœใฃใŸใ‚ฆใƒณใ‚ณใƒผใƒ‰

ไปฅไธ‹ใŒๅค‰ๆ›ใจใ‹ใ‚’ใ—ใฆใ„ใ‚‹ใ‚ณใƒผใƒ‰ใ€‚
pythonใ‚ณใƒผใƒ‰(ใ‚นใ‚ฏใƒชใƒ—ใƒˆ)ใ‚’UTF-8ใฎๆ–‡ๅญ—ๅˆ—ใจใ—ใฆๆ‰ฑใ„ใ€ใƒใ‚คใƒŠใƒชใซๅค‰ๆ›ใ€‚ใใฎใƒใ‚คใƒŠใƒชใ‚’๐Ÿ’ฉใจ(ๅŠ่ง’ใ‚นใƒšใƒผใ‚น)ใซๅค‰ๆ›ใ—ใพใ™ใ€‚ๅฎŸ่กŒใ™ใ‚‹ใจใใฏ้€†ใฎๆ“ไฝœใ‚’ใ—ใฆPythonใ‚ณใƒผใƒ‰ใซใ‚‚ใฉใ—ใฆใ€exec()ใ—ใฆใ‚‹ใ ใ‘ใ€‚
ใ‚ณใƒผใƒ‰ใ‚’ๅˆ†ๅ‰ฒใ™ใ‚‹ใจใใซไปฅไธ‹ใฎ่จ˜ไบ‹ใ‚’ๅ‚่€ƒใซใ•ใ›ใฆใ„ใŸใ ใใพใ—ใŸใ€‚
ๆ–‡ๅญ—ๅˆ—ใ‚’ๆŒ‡ๅฎšใ—ใŸๆ–‡ๅญ—ๆ•ฐใ”ใจใซๅˆ†ๅ‰ฒใ™ใ‚‹ใ€‚RubyใจPythonใงใ€‚ - Qiita

poolib.py
def __bin2poo(bin_str):
    return bin_str.replace('0', ' ').replace('1', '๐Ÿ’ฉ')

def __poo2bin(poo_str):
    return poo_str.replace(' ', '0').replace('๐Ÿ’ฉ', '1')

# https://qiita.com/yasunori/items/551a7c20ef9b81474e2a
def __split_n(text, n):
    return [text[i: i+n] for i in range(0, len(text), n)]

def python2poo(code):
    return ''.join(map(__bin2poo, (['%04d' % int(bin(int(d, 16))[2:]) for d in code.encode('utf-8').hex()])))

def poo2python(code):
    return bytes.fromhex(''.join(map(str, map(lambda b: hex(int(b, 2))[2:], map(__poo2bin, __split_n(code, 4)))))).decode("utf-8")

def runpoo(poocode):
    exec(poo2python(poocode))

ไปฅไธŠใ‚’่ชญใฟ่พผใ‚“ใงใ€ไปฅไธ‹ใฎใ‚ณใƒผใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจ

sample.py
from poolib import python2poo, poo2python, runpoo

code = "for i in range(10): print(' '*(10-i) + '๐Ÿ’ฉ'*i)"
poo = python2poo(code)
print("org code")
print(code)
print("poo code")
print(poo)
print("run poo")
runpoo(poo)

ๅ…ˆใปใฉใฎไพ‹ใซใชใ‚Šใพใ™ใ€‚

ๅ‚่€ƒใƒชใƒณใ‚ฏ

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5