¸ðµâ ÇÁ·Î±×·¡¹Ö

¿ì¸®´Â ¹«¾ùÀ» ´Ù·ê °ÍÀΰ¡?
  • ¸ðµâÀº ¹«¾ùÀΰ¡¿¡ °üÇÏ¿©
  • ¸ðµâ·Î¼­ÀÇ ÇÔ¼ö
  • ¸ðµâ ÆÄÀÏ »ç¿ëÇϱâ
  • ¿ì¸® ÀڽŸ¸Àº ÇÔ¼ö¿Í ¸ðµâÀ» ÀÛ¼ºÇϱâ
  • ¸ðµâÀ̶õ ¹«¾ùÀΰ¡?

    ÇÁ·Î±×·¡¹ÖÀÇ ³×¹ø° ¿ä¼Ò´Â ¸ðµâ ÇÁ·Î±×·¡¹Ö modular programmingÀÌ´Ù. »ç½Ç ±×°ÍÀº ¾ö¹ÐÈ÷ ¸»ÇØ ÇʼöÀûÀÎ °ÍÀº ¾Æ´Ï´Ù, ±×¸®°í ¿ì¸®°¡ Áö±Ý±îÁö ´Ù·ç¾î¿Â °ÍÀ» »ç¿ëÇÏ¿© ¿©·¯ºÐÀº ½ÇÁ¦·Î ´ë´ÜÈ÷ ÀλóÀûÀÎ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö¸¸ ÇÁ·Î±×·¥ÀÌ Ä¿Áü¿¡ µû¶ó ¹«¾ùÀÌ ¾îµð¿¡¼­ ÀϾ´ÂÁö ÃßÀûÇϱⰡ Á¡Á¡ ¾î·Á¿öÁø´Ù. ¿ì¸®´Â ½ÇÁ¦·Î ¼¼ºÎÀûÀÎ »çÇ×µéÀ» »ý·«ÇÏ¿©¼­ ÄÄÇ»ÅÍ°¡ ¾î¶»°Ô ÀÛµ¿Çϴ°¡ º¸´Ù´Â ¿ì¸®°¡ Ç®°íÀÖ´Â ¹®Á¦¿¡ ´ëÇÏ¿© »ý°¢ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. ¾î´À Á¤µµ±îÁö´Â ±×°ÍÀº ÆÄÀ̽ã, º£ÀÌÁ÷ µîµîÀÌ ÀÌ¹Ì ³»ÀåµÈ ´É·ÂÀ¸·Î ¿ì¸®¸¦ À§ÇÏ¿© ÇØÁÖ´Â °ÍÀÌ´Ù - ±×°Íµé ¶§¹®¿¡ ¿ì¸®´Â ÄÄÇ»ÅÍ Çϵå¿þ¾î¸¦, Å°º¸µå À§ÀÇ °³º°ÀûÀÎ Å°µéÀ» Àд ¹ý µîµîÀ» ´Ù·ê ¼ö°¡ ¾ø´Ù.

    ¸ðµâ ÇÁ·Î±×·¡¹ÖÀÇ ¿ªÇÒÀº ÇÁ·Î±×·¡¸Ó¿¡°Ô ±× ¾ð¾îÀÇ ³»Àå ´É·ÂÀ» È®ÀåÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °ÍÀÌ´Ù. ±×°ÍÀº ÇÁ·Î±×·¥ÀÇ Á¶°¢µéÀ» ¸ðµâ·Î Æ÷ÀåÇؼ­ ¿ì¸®°¡ ¿ì¸®ÀÇ ÇÁ·Î±×·¥¿¡ '²È¾Æ ³ÖÀ»' ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¸ðµâÀÇ Ã¹ ¹ø° ÇüÅ´ ÇϺηçƾsubroutineÀ̾ú´Âµ¥ ±×°ÍÀº ÇÑ ºí·ÏÀÇ ÄÚµå·Î¼­ ¿©·¯ºÐÀº ±×°÷À¸·Î Á¡ÇÁÇÒ ¼ö ÀÖ°í (¾à°£Àº ºÐ±â ¼½¼Ç¿¡¼­ ¾ð±ÞÇÑ GOTO¿Í ºñ½ÁÇÏÁö¸¸) ±×·¯³ª Äڵ尡 ³¡³ª°í ³ª¸é, ºÒ·ÁÁ³´ø °÷À¸·Î ´Ù½Ã Á¡ÇÁÇÒ ¼ö ÀÖ´Ù. ±×·¯ÇÑ Æ¯ÀÌÇÑ ½ºÅ¸ÀÏÀÇ ¹¦µâ¼ºÀº ÇÁ·Î½ÃÁ® procedure ȤÀº ÇÔ¼ö function¶ó°í ¾Ë·ÁÁ® ÀÖ´Ù. ÆÄÀ̽ã°ú ±×¸®°í ´Ù¸¥ ¾î¶² ¾ð¾î¿¡¼­´Â ¸ðµâ moduleÀ̶ó´Â ´Ü¾î´Â Ưº°ÇÑ Àǹ̸¦ °¡Á®¼­ ¿ì¸®´Â ª°Ô ±×°ÍÀ» »ìÆ캼°ÍÀÌ´Ù, ±×·¯³ª ÇÔ¼ö¸¦ ¾à°£ ´õ ÀÚ¼¼ÇÏ°Ô ¼÷°íÇØ º¸ÀÚ.

    ÇÔ¼ö¸¦ »ç¿ëÇϱâ

    ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â ¹ýÀ» »ý°¢ÇØ º¸±â Àü¿¡ ¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­µµ ÀÖ´Â (¶§¶§·Î ¶óÀ̺귯¸® library¶ó°í ºÒ¸®¿ì´Â) ±× ¸¹°í, ¸¹Àº ÇÔ¼öµéÀ» ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö »ìÆ캸ÀÚ.

    ¿ì¸®´Â ÀÌ¹Ì ¾î¶² ÇÔ¼öµéÀÌ »ç¿ëµÈ °ÍÀ» º¸¾Ò°í ¿¬»êÀÚÀÇ ¼½¼Ç¿¡¼­ ´Ù¸¥ ÇÔ¼öµéÀ» ³ª¿­ÇÏ¿´´Ù. ÀÌÁ¦ ¿ì¸®´Â À̰͵éÀÌ ¹«¾ùÀ» °øÅëÀ¸·Î °¡Áö°í ÀÖ´ÂÁö ±×¸®°í ¿ì¸®ÀÇ ÇÁ·Î±×·¥¿¡¼­ ¾î¶»°Ô ±×°ÍµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö »ìÆì º¼ °ÍÀÌ´Ù.

    ÇÔ¼öÀÇ ±âº»Àû ±¸Á¶´Â ´ÙÀ½°ú °°´Ù:

    aValue = someFunction(anArgument, another, etc...)
    

    ÀÌ°ÍÀº ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á ȹµæµÇ´Â °ªÀ» ÃëÇÏ´Â º¯¼öÀÌ´Ù. ±× ÇÔ¼ö´Â 0 ¶Ç´Â ¸¹Àº ÀμöargumentsµéÀ» ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Ù. ±× ÇÔ¼ö´Â ±×°ÍµéÀ» ³»ºÎ º¯¼ö¿Í °°ÀÌ Ãë±ÞÇÑ´Ù. ÇÔ¼ö´Â ´Ù¸¥ ÇÔ¼ö¸¦ ³»ºÎÀûÀ¸·Î È£ÃâÇÒ ¼ö ÀÖ´Ù. ¿ì¸®ÀÇ ¿©·¯ ¾ð¾î¿¡¼­ ¾à°£ÀÇ ¿¹Á¦¸¦ »ìÆ캸°í ÀÌ°ÍÀÌ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö ¾Ë¾Æº¸ÀÚ:

    BASIC: MID$(str$,n,m)

    ÀÌ°ÍÀº ¹®ÀÚ¿­ str$¿¡¼­ n¹ø°¿¡¼­ ½ÃÀÛÇÏ¿© ´ÙÀ½ÀÇ m°³ÀÇ ¹®ÀÚ¸¦ Ãâ·ÂÇÑ´Ù. ( '$'·Î ³¡³ª´Â À̸§Àº º£ÀÌÁ÷¿¡¼­ ¹®ÀÚ¿­À» ³ªÅ¸³»´Â °ÍÀ̶ó´Â °ÍÀ» »ó±âÇ϶ó)

    time$ = "MORNING EVENING AFTERNOON"
    PRINT "Good";MID$(time$,8,8)
    

    "Good EVENING"À̶ó°í Ãâ·ÂÇÑ´Ù.

    BASIC: ENVIRON$(str$)

    ÀÌ°ÍÀº ÁöÁ¤ÇÑ È¯°æº¯¼ö(Environment Variable)ÀÎ str$¸¦ ¹ÝȯÇÑ´Ù.

    PRINT ENVIRON$("PATH")
    

    ÇöÀç µµ½º¿¡ (º¸Åë autoexec.bat ÆÄÀÏÀ» ÅëÇÏ¿©) ¼³Á¤µÈ PATH(°æ·Î) ¸¦ Ãâ·ÂÇÑ´Ù.

    Tcl: llength L

    ¸®½ºÆ® LÀÇ ±æÀ̸¦ ¹ÝȯÇÑ´Ù.

    set a {"first" "Second" "third"} # 3 element list
    puts [llength $a]  # output is '3'
    

    ÁÖ ÀÇ: ƼŬ¿¡¼­ °ÅÀÇ ¸ðµç °ÍÀº ÇÔ¼öÀÌ´Ù. (ȤÀº ƼŬÀº ±×°ÍÀ» ¸í·É¾î¶ó°í À̸§Áþ±â¸¦ ¼±È£ÇÏ°ÚÁö¸¸). À̰Ͷ§¹®¿¡ ¾à°£ ¾î»öÇÑ ±¸¹®ÀÌ µÇÁö¸¸ ÄÄÇ»ÅÍ°¡ ƼŬ ÇÁ·Î±×·¥À» ¸Å¿ì ½±°Ô Àеµ·Ï ÇÏ¿© ÁØ´Ù. ÀÌ°ÍÀº Áß¿äÇѵ¥ ¿Ö³ÄÇϸé ƼŬÀº µµ±¸Á¦¾î¾ð¾î(Tool Control Language)ÀÇ ¾àÀÚÀÌ¸ç ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®»ç Á¦Ç°ÀÎ VBA(Visual Basic for Applications)¿Í °°ÀÌ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ¸ÅÅ©·Îmacro language ¾ð¾î·Î ³»ÀåµÇµµ·Ï µðÀÚÀεǾú±â ¶§¹®ÀÌ´Ù. ¿©·¯ºÐÀº ½ÇÁ¦·Î °°Àº ¹æ½ÄÀ¸·Î ÆÄÀ̽ãÀ» ³»Àå½Ãų¼ö ÀÖÁö¸¸ ƼŬÀº ³»ÀåÀ» ¿°µÎ¿¡µÇ°í óÀ½ºÎÅÍ ±×¸®°í ´ëºÎºÐÀÌ µðÀÚÀεǾú´Ù´Â Á¡¿¡¼­ Ưº°ÇÏ´Ù.

    Python: pow(x,y)

    x = 2   #  we'll use 2 as our base number
    for y in range(0,11):
       print pow(x,y)    # raise 2 to power y, ie 0-10
    

    ¿©±â¿¡ ¿ì¸®´Â y ÀÇ °ªÀ» 0 ºÎÅÖ 10 ±îÁö »ý¼ºÇÏ°í ³»Àå pow()ÇÔ¼ö¸¦ È£ÃâÇÏ¿© 2°³ÀÇ Àμö x¿Í y¸¦ ³Ñ°ÜÁØ´Ù. È£ÃâÇÒ ¶§ ¸¶´Ù x¿Í yÀÇ ÇöÀç°ªÀº ´ëÄ¡µÇ¾îÁ® È£ÃâµÇ¾îÁö¸ç ±× °á°ú´Â Ãâ·ÂµÈ´Ù.

    ÁÖ ÀÇ: Áö¼öÈ­ ¿¬»êÀÚ, **´Â pow() ÇÔ¼ö¿Í µ¿ÀÏÇÏ´Ù.

    Python: dir(m)

    ÆÄÀ̽㿡 ³»ÀåµÈ ¶Ç ´Ù¸¥ À¯¿ëÇÑ ÇÔ¼ö´Â dir Àε¥ ±×°ÍÀº, ¸ðµâÀÇ À̸§ÀÌ ³Ñ°ÜÁö¸é, ±× ¸ðµâ¿¡¼­ À¯È¿ÇÑ À̸§µéÀÇ ¸ñ·ÏÀ» - ¶§·Î´Â ÇÔ¼ö - µÇµ¹·Á ÁØ´Ù. ³»Àå ÇÔ¼öµé¿¡ ´ëÇÏ¿© ±×°ÍÀ» ½ÃÇèÇØ º¸¶ó:

    print dir(__builtin__)
    

    ÁÖ ÀÇ: ´Ù¸¥ ¾î¶°ÇÑ ¸ðµâ¿¡µµ ±×°ÍÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸·Á¸é ¿©·¯ºÐÀº ±× ¸ðµâÀ» ¸ÕÀú ¼öÀÔÇÒ ÇÊ¿ä°¡ ÀÖÀ¸¸ç ±×·¸Áö ¾ÊÀ¸¸é ÆÄÀ̽ãÀº ±× À̸§À» ÀνÄÇÒ ¼ö ¾ø´Ù°í ºÒÆòÇÒ °ÍÀÌ´Ù.

    ´Ù¸¥ °ÍÀ» ´õ Çغ¸±â Àü¿¡ ¿ì¸®´Â ÆÄÀ̽ãÀÇ ¸ðµâ¿¡ °üÇÏ¿© Á» ´õ »ó¼¼ÇÏ°Ô ³íÀÇÇØ º¸´Â °ÍÀÌ ÁÁ´Ù.

    ¸ðµâÀ» »ç¿ëÇϱâ

    ¿©·¯ºÐÀÌ ¸ðµâÀ» ¼öÀÔimportÇÔÀ¸·Î¼­ »õ·Î¿î ´É·ÂÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ ÆÄÀ̽ãÀº ´ë´ÜÈ÷ È®ÀåÀûÀÎ ¾ð¾îÀÌ´Ù(ƼŬµµ ¸¶Âù°¡ÁöÀÌ´Ù) ¿ì¸®´Â ¸ðµâÀÛ¼º¹ýÀ» °£´ÜÇÏ°Ô ¾Ë¾Æ º¼°ÍÀÌ´Ù. ±×·¯³ª Áö±ÝÀ¸·Î½á´Â ÆÄÀ̽㿡 ±âº»À¸·Î ¼³Ä¡µÇ¾î Àִ ǥÁØ ¸ðµâÁß ¸î°³¸¦ ´Ù·ç¾î º¼ °ÍÀÌ´Ù.

    sys

    ¿ì¸®´Â ÀÌ¹Ì sys ¸ðµâÀ» º» ¹Ù ÀÖ´Ù. ¿ì¸®´Â ±×°ÍÀ» ÆÄÀ̽ãÀ» Á¾·áÇÒ ¶§ »ç¿ëÇÏ¿´´Ù. ±×°ÍÀº ¸¹Àº ´Ù¸¥ À¯¿ëÇÑ ÇÔ¼öµé ¿ª½Ã °¡Áö°í ÀÖ´Ù. ÀÌ·¯ÇÑ °Íµé¿¡ Á¢±ÙÇϱâ À§ÇÏ¿© ¿ì¸®´Â sys ¸ðµâÀ» ¼öÀÔÇØ¾ß ÇÑ´Ù:

    import sys # make functions available
    sys.exit() # prefix with 'sys'
    
    ¿ì¸®°¡ ÇÔ¼öµéÀ» ¸¹ÀÌ »ç¿ëÇÒ °ÍÀ» ¾Ë°í ÀÖÀ¸¸ç ±× ÇÔ¼öµéÀÌ ¿ì¸®°¡ ÀÌ¹Ì ¼öÀÔÇ߰ųª ȤÀº »ý¼ºÇÑ ÇÔ¼ö¿Í °°Àº À̸§À» °¡ÁöÁö ¾Ê¾Æ¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù¸é ¿ì¸®´Â ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù:
    from sys import *  # import all names in sys 
    exit() # can now use without specifying prefix 'sys'
    

    ´Ù¸¥ ¸ðµâ°ú ±× ¸ðµâÀÇ ³»¿ë

    ¿©·¯ºÐÀº ¾î¶°ÇÑ ÆÄÀ̽㠸ðµâµµ ÀÌ·±½ÄÀ¸·Î ¼öÀÔÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ±×°Í¿¡´Â ¿©·¯ºÐ ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ ¸ðµâµµ ÇØ´çµÈ´Ù. ¿ì¸®µéÀº Àá½ÃÈÄ¿¡ ±×·¸°Ô ÇÏ´Â ¹ýÀ» ¾Ë¾Æ º¼ °ÍÀÌ´Ù. ±×·¸Áö¸¸ ¸ÕÀú, ³ª´Â ¿©·¯ºÐ¿¡°Ô ÆÄÀ̽ãÀÇ Ç¥ÁØ ¸ðµâ°ú ±×°ÍµéÀÌ ¹«¾ùÀ» Á¦°øÇÏ´ÂÁö¿¡ °üÇÏ¿© ¾à°£ º¸¿©ÁÖ°íÀÚ ÇÑ´Ù:

    ¸ðµâ À̸§¼³ ¸í
    sys ÆÄÀ̽㠽ýºÅÛ°ú ´ëÈ­¸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù:
  • exit() - Á¾·á!
  • argv - ¸í·É¾î ¶óÀÎ Àμö¿¡ Á¢±ÙÇÑ´Ù
  • path - ½Ã½ºÅÛÀÇ °æ·Î¿¡ Á¢±ÙÇÑ´Ù
  • ps1 - '>>>' ÆÄÀ̽ãÀÇ ÇÁ·ÒÇÁÆ®¸¦ º¯°æÇÑ´Ù!
  • os ¿î¿µÃ¼Á¦¿Í ´ëÈ­¸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù:
  • open - ÆÄÀÏÀ» ¿¬´Ù
  • system - ½Ã½ºÅÛ ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù
  • mkdir - µð·ºÅ丮¸¦ »ý¼ºÇÑ´Ù
  • getcwd - ÇöÀçÀÇ ÀÛ¾÷ µð·ºÅ丮¸¦ ã´Â´Ù
  • string ¹®ÀÚ¿­À» ó¸®ÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù
  • atoi/f/l - ¹®ÀÚ¿­À» integer/float/long ·Î º¯È¯ÇÑ´Ù
  • find - ÇϺι®ÀÚ¿­À» Ž»öÇÑ´Ù
  • split - '´Ü¾î'ÀÇ ºÎºÐÀ» ÀÌ¿ëÇÑ´Ù
  • upper/lower - ´ë¼Ò¹®ÀÚ º¯È¯
  • re ¹®ÀÚ¿­À» À¯´Ð½º ½ºÅ¸ÀÏ·Î ´Ù·çµµ·Ï ÇØ ÁØ´Ù
    Á¤±Ô Ç¥Çö½Ä regular expressions
  • search - ¹®ÀÚ¿­ÀÇ ¾î´À °÷¿£°¡ ÀÖ´Â ÆÐÅÏÀ» Ž»öÇÑ´Ù
  • match - ¿À·ÎÁö óÀ½ºÎÅÍ Ã£´Â´Ù
  • split - ÆÐÅÏÀ¸·Î ºÐ¸®µÈ ÇʵåÀÇ ºÎºÐÀ» ÀÌ¿ëÇÑ´Ù
  • sub,subn - ¹®ÀÚ¿­ ¹Ù²Ù±â
  • math ¸¹Àº ¼öÇÐÀû ÇÔ¼ö¿¡ Á¢±ÙÇϵµ·Ï ÇØÁØ´Ù:
  • sin,cos µîµî - »ï°¢ ÇÔ¼ö
  • log,log10 - ÀÚ¿¬·Î±× ±×¸®°í »ó¿ë·Î±×
  • ceil,floor - »óÇÑ°ª°ú ÇÏÇÑ°ª
  • pi, e - ÀÚ¿¬ »ó¼ö
  • time ½Ã°£(±×¸®°í ³¯Â¥) ÇÔ¼ö
  • time - ÇöÀçÀÇ ½Ã°£À» ȹµæÇÑ´Ù (ÃÊ´ÜÀ§·Î Ç¥ÇöµÈ´Ù)
  • gmtime - ½Ã°£À» ÃÊ´ÜÀ§·Î UTC (GMT) ·Î º¯È¯ÇÑ´Ù.
  • localtime - ´ë½Å¿¡ Áö¿ª ½Ã°£À¸·Î º¯È¯ÇÑ´Ù
  • mktime - Áö¿ª½Ã°£ÀÇ ¹Ý´ë
  • sleep - ÇÁ·Î±×·¥À» n ÃÊ µ¿¾È ¸ØÃá´Ù
  • ÀÌ°ÍÀº ´ÜÁö ºù»êÀÇ ÀÏ°¢ÀÏ »ÓÀÌ´Ù. ¹®ÀÚ±×´ë·Î ÆÄÀ̽㿡´Â ¼ö½Ê°¡ÁöÀÇ ¸ðµâÀÌ Á¦°øµÇ°í ÀÖÀ¸¸ç ¶Ç ¸¹Àº ¸ðµâµéÀ» ¿©·¯ºÐÀº ³»·Á ¹ÞÀ» ¼ö ÀÖ´Ù. (ÈǸ¢ÇÑ ÀÚ¿øÀº Vaults of ParnassusÀÌ´Ù.) ±×°÷¿¡ ÀÖ´Â ¹®¼­µéÀ» »ìÆ캸°í ÀÎÅͳÝ, ±×·¡ÇÈ, µ¥ÀÌŸº£À̽º ±¸Ãà µîµîÀÇ ÇÁ·Î±×·¡¹ÖÀ» Çϴ¹ýÀ» ã¾Æº¸¶ó.

    ²À ¾Ë¾Æ¾ßÇÒ Áß¿äÇÑ °ÍÀº ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ÀÌ·¯ÇÑ ±âº»ÀûÀÎ ÇÔ¼öµéÀ» ³»ÀåÇϰųª ȤÀº Ç¥ÁØÀûÀÎ ¶óÀ̺귯¸®·Î °¡Áö°í ÀÖ´Ù´Â °ÍÀÌ´Ù. ÇÔ¼ö¸¦ ÀÛ¼ºÇϱâ Àü¿¡ Ç×»ó ¹®¼­¸¦ Á¡°ËÇ϶ó - ÀÌ¹Ì °Å±â¿¡ ÀÖÀ»Áöµµ ¸ð¸¥´Ù! ±×°ÍÀ¸·Î ¿ì¸®´Â ±âºÐÁÁ°Ô ¾ÈÀ¸·Î µé¾î°£´Ù....

    ¿ì¸® ÀÚ½ÅÀÇ ÇÔ¼ö¸¦ Á¤ÀÇÇϱâ

    ÁÁ´Ù, ±×·¡¼­ ¿ì¸®°¡ Á¸ÀçÇÏ´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¹ýÀ» ¾È´Ù¸é ¿ì¸®´Â ¾î¶»°Ô »õ·Î¿î ÇÔ¼ö¸¦ ¸¸µé¼ö Àִ°¡? °£´ÜÇÏ°Ô ±×°ÍÀ» ¼±¾ðÇÔdeclaringÀ¸·Î½á ¸¸µé ¼ö ÀÖ´Ù. ´Ù½Ã¸»ÇÏ¸é ¿ì¸®°¡ ÀÛ¼ºÇÑ ¼­¼ú¹®Àº ¿ì¸®°¡ ÇÑ ºí·ÏÀÇ Äڵ带 Á¤ÀÇÇϱ⸦ ¿ì¸®ÀÇ ÇÁ·Î±×·¥ÀÇ ¾îµð¿¡¼­³ª ¿ä±¸ÇÏ¸é »ðÀԵǾî¾ß ÇÑ´Ù°í ÀÎÅÍÇÁ¸®ÅÍ¿¡°Ô ¸»ÇØÁÖ´Â °ÍÀÌ´Ù.

    ±×·¡¼­ ¿ì¸®°¡ Àμö·Î¼­ Á¦°øÇÑ ¾î¶°ÇÑ °ªÀ¸·Îµµ ¿ì¸®¸¦ À§ÇÏ¿© °ö¼ÀÇ¥¸¦ Ãâ·ÂÇÏ¿© ÁÙ ¼ö ÀÖ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ¿© º¸ÀÚ. º£ÀÌÁ÷¿¡¼­ ±×°ÍÀº ´ÙÀ½°ú °°ÀÌ º¸ÀδÙ:

    SUB TIMES (N%)
    FOR I = 1 TO 12
        PRINT I; "x"; N%; "="; I * N%
    NEXT I
    END SUB
    

    ±×¸®°í ¿ì¸®´Â ±×°ÍÀ» ´ÙÀ½°ú °°ÀÌ È£Ãâ callÇÒ ¼ö ÀÖ´Ù:

    PRINT "Here is the 7 times table..."
    TIMES(7)
    

    ÁÖ ÀÇ: ¿ì¸®´Â N% ¶ó°í ºÎ¸£´Â ¸Å°³º¯¼ö¸¦ Á¤ÀÇÇß°í ±×¸®°í Àμöargument 7 À» ³Ñ°ÜÁÖ¾ú´Ù. ±× ÇÔ¼ö ¾È¿¡ ÀÖ´Â Áö¿ª º¯¼ö N% Àº ¿ì¸®°¡ ±×°ÍÀ» È£ÃâÇßÀ» ¶§ °ª 7 À» ÃëÇÏ¿´´Ù ¿ì¸®´Â ÇÔ¼ö Á¤ÀÇ¿¡¼­ ¿ì¸®°¡ ¿øÇÏ´Â ¸¸Å­ ¸Å°³º¯¼ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ±×¸®°í È£ÃâÇÏ´Â ÇÁ·Î±×·¥Àº ¹Ýµå½Ã °¢°¢ÀÇ ¸Å°³º¯¼ö¿¡ °ªµéÀ» Á¦°øÇÏ¿©¾ß¸¸ ÇÑ´Ù. ¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ¿©·¯ºÐ¿¡°Ô ±âº» °ª default valuesÀ» ¸Å°³º¯¼ö¿¡ Á¤ÀÇÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© Á־ ¸¸¾à °ªÀÌ Á¦°øµÇÁö ¾Ê´Â´Ù¸é ±× ÇÔ¼ö´Â ±âº» °ªÀ¸·Î °£ÁÖÇÑ´Ù. ³ªÁß¿¡ ¿ì¸®´Â ÆÄÀ̽㿡¼­ ÀÌ°ÍÀ» º¸°Ô µÉ °ÍÀÌ´Ù.

    ÆÄÀ̽㿡¼­ TIMES ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù:

    def times(n):
        for i in range(1,13):
            print "%d x %d = %d" % (i, n, i*n)
    

    ±×¸®°í ´ÙÀ½°ú °°ÀÌ È£ÃâµÈ´Ù:

    print "Here is the 9 times table..."
    times(9)
    

    ÀÌ·¯ÇÑ ÇÔ¼öµéÀÌ ¾î¶² °ªµµ ¹ÝȯÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ÁÖ¸ñÇ϶ó(±×µéÀº ½ÇÁ¦·Î ¾î¶² ¾ð¾î¿¡¼­´Â ÇÁ·Î½ÃÁ®procedures¶ó°í ºÎ¸£´Â °ÍÀÌ´Ù.) »ç½ÇÀº º£ÀÌÁ÷ ¹öÁ¯ÀÌ ½ÇÁ¦·Î ÇÔ¼öFUNCTIONÅ°¿öµå º¸´Ù´Â ¼­ºê·çƾSUB Å°¿öµå¸¦ »ç¿ëÇÑ´Ù´Â °ÍÀ» ÁÖ¸ñÇ϶ó. ÀÌ°ÍÀº ¼­ºê·çƾsubroutineÀ» ³ªÅ¸³»¸ç ¾î¼Àºí·¯ ÇÁ·Î±×·¡¹Ö ½ÃÀýºÎÅÍ ¾à°£ »ç¿ëµÇ¾îÁø ´Ü¾îÀÌ´Ù. º£ÀÌÁ÷¿¡¼­´Â °ªÀ» ¹ÝȯÇÏÁö ¾Ê´Â ÇÔ¼ö¸¦ ÀǹÌÇÑ´Ù. ¹Ý¸é¿¡ ÆÄÀ̽ãÀº def ¶ó´Â ¿ë¾î¸¦ »ç¿ëÇϴµ¥ ÀÌ°ÍÀº 'define'ÀÇ ¾àĪÀ̸ç ÀÌÈÄ¿¡ µû¶ó¿À´Â °ÍÀº ÇÔ¼ö¶ó°í °£ÁֵǾîÁø´Ù.

    ³»°¡ ¾ð±ÞÇÑ ±âº»°ªÀÇ »ç¿ë¹ýÀ» ±â¾ïÇϴ°¡? ÀÌ°ÍÀ» »ç¿ëÇÏ´Â ÀǹÌÀÖ´Â ¹æ¹ýÁß Çϳª´Â ¿äÀÏÀ» ¹ÝȯÇÏ´Â ÇÔ¼ö°¡ µÉ °ÍÀÌ´Ù. ¿ì¸®°¡ ±×°ÍÀ» Àμö ¾øÀÌ È£ÃâÇÑ´Ù¸é ¿ì¸®´Â ¿À´ÃÀ» ÀǵµÇÏ°í ÀÖ´Â °ÍÀÌ°í, ±×·¸Áö ¾ÊÀ¸¸é ¿ì¸®´Â ³¯Â¥ÀÇ ¼ýÀÚ¸¦ Àμö·Î Á¦°øÇØ¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ:

    # a day value of -1 => today
    def dayOfWeek(DayNum = -1):
        days = ['Monday','Tuesday',
                'Wednesday','Thursday',
                'Friday', 'Saturday', 'Sunday']
    
        # check for the default value
        if DayNum == -1:
            # Use the time module functions to get current time
            # see the table above and the official module documentation
            import time
            theTime = time.localtime(time.time())
            DayNum = theTime[6]
        return days[DayNum]
    

    ÁÖ ÀÇ: ±âº» ¸Å°³º¯¼ö °ªÀÌ °ü·ÃµÉ ¶§¸¸, ¿ì¸®´Â time¸ðµâÀ» »ç¿ëÇÏ¸é µÈ´Ù. ±×·¯¹Ç·Î ¿ì¸®´Â ±×°ÍÀÌ ÇÊ¿äÇÒ ¶§±îÁö ¼öÀÔÀ» ¿¬±âÇÑ´Ù. ¿ì¸®°¡ ±× ÇÔ¼öÀÇ ±âº»°ª »ç¾çÀ» »ç¿ëÇÏÁö ¾Ê¾Æµµ µÈ´Ù¸é ÀÌ°ÍÀ¸·Î ¾à°£ÀÇ ¼öÇà °³¼±À» Á¦°øÇÒ °ÍÀÌ´Ù.

    ÀÌÁ¦ ¿ì¸®´Â ´ÙÀ½À¸·Î ÀÌ°ÍÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù:

    print "Today is: %s" % dayOfWeek()
    # remember that in computer speak we start from 0
    # and in this case we assume the first day is Monday.
    print "The third day is %s" % dayOfWeek(2)
    

    ´Ù½Ã °ö¼ÀÇ¥·Î µ¹¾Æ°¡¼­....

    ¿ì¸®°¡ °ö¼ÀÇ¥ÀÇ °ªµéÀ» ´ÜÁö ¼ýÀÚÀÇ ¹è¿­·Î ¹ÝȯÇÏ´Â ÇÔ¼ö¸¦ Á¤ÀÇÇÏ°í ½ÍÀ» ¶§´Â ¾î¶»°Ô Çϴ°¡? º£ÀÌÁ÷À¸·Î´Â ±×°ÍÀº ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °ÍÀÌ´Ù:

    FUNCTION TIMES% (N%)
        DIM VALUES(12) AS INTEGER
        FOR I = 1 to 12
            VALUES(I) = I*N%
        NEXT I
        RETURN VALUES
    END FUNCTION
    

    ±×¸®°í ÆÄÀ̽㿡¼­¶ó¸é:

    def times(n):
        # create new empty list
        values = []
        for i in range(1,13):
            values.append(i*n)
        return values
    

    ÀÌ°Ç ¾à°£ ¿ìµÐÇÑ °Í °°Àºµ¥, ¿Ö³ÄÇÏ¸é ´ÜÁö ¿äûµÉ ¶§ i*n¸¦ °è»êÇϴ°ÍÀÌ ´õ ½±±â ¶§¹®ÀÌ´Ù. ±×·¯³ª Èñ¸ÁÀûÀ¸·Î ¿©·¯ºÐÀº ±× ¾ÆÀ̵ð¾î¸¦ ÀÌÇØÇÑ´Ù. °ªÀ» ¹ÝȯÇÏ´Â ´õ¿í ½Ç¿ëÀûÀÎ ÇÔ¼ö´Â ¹®ÀÚ¿­¿¡ ÀÖ´Â ´Ü¾îÀÇ ¼ö¸¦ ¼¼¾îº¸´Â °ÍÀÌ µÉ °ÍÀÌ´Ù. ¿©·¯ºÐÀº ±×ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÆÄÀÏ¿¡ ÀÖ´Â ´Ü¾î¸¦ °¢ ¶óÀο¡ ÀÖ´Â °³¼ö¸¦ ¸ðµÎ ´õÇØ °è»êÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×°ÍÀ» À§ÇÑ ÄÚµå´Â ´ÙÀ½°ú °°Àº ±×·±°ÍÀÌ µÉ °ÍÀÌ´Ù:

    def numwords(s):
        list = split(s) # list with each element a word
        return len(list) # return number of elements in list
    
    for line in file:
        total = total + numwords(line) # accumulate totals for each line
    print "File had %d words" % total
    

    ÀÌÁ¦ ¿©·¯ºÐÀÌ ±×°ÍÀ» ½ÃÇè¿¡ º¸¸é, ¿©·¯ºÐÀº ±×°ÍÀÌ ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù´Â ¾Ë°Ô µÉ °ÍÀÌ´Ù. ³»°¡ ÇÑ°ÍÀº ÀϹÝÀûÀÎ µðÀÚÀÎ Å×Å©´ÐÀ¸·Î¼­ ±×°ÍÀº ³»°¡ »ý°¢Çϱ⿡ ±× Äڵ尡 ¾î¶»°Ô º¸¿©¾ß ÇÏ´ÂÁö¸¦ ±×¸° °ÍÀÌÁö¸¸ Àý´ëÀûÀ¸·Î Á¤È®ÇÑ Äڵ带 »ç¿ëÇÏ·Á°í °í¹ÎÇÏÁö ¾Ê°í ´ëÃæ ±×·Áº» °ÍÀÌ´Ù. °¡²û ÀÌ·±°ÍÀ» ÀÏÄþî ÀÇ»çÄÚµå(Pseudo Code)¶ó°í ¾Ë·ÁÁ® ÀÖÀ¸¸ç ¶Ç´Â Á» ´õ Çü½ÄÀûÀÎ ½ºÅ¸ÀÏ·Î ÇÁ·Î±×·¥ ±â¼ú ¾ð¾î(Program Description Language (PDL))À̶ó°í ºÎ¸¥´Ù.

    ¿ì¸®°¡ ÆÄÀÏ°ú ¹®ÀÚ¿­ 󸮸¦ Á» ´õ ÀÚ¼¼È÷ µé¿©´Ù º¸°í³ª¸é, ÀÌ °­ÁÂÀÇ Á¶±Ý ÈÄ¿¡, ¿ì¸®´Â ÀÌ ¿¹Á¦·Î ´Ù½Ã µ¹¾Æ ¿Ã °ÍÀÌ´Ù. ±×¸®°í ½ÇÁ¦·Î ±×°ÍÀ» ½ÇÇàÇØ º¼ °ÍÀÌ´Ù.

    Tcl ÇÔ¼ö

    ¿ì¸®´Â ¶ÇÇÑ Æ¼Å¬¿¡¼­ ÇÔ¼ö¸¦ ¹°·Ð, ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù ±×¸®°í ¿ì¸®´Â proc ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ±×·¸°Ô ÇÒ ¼ö ÀÖ´Ù, ´ÙÀ½°ú °°ÀÌ:

    proc times {m} {
        for {set i 1} {$i <= 12} {incr i} {
            lappend results [expr $i * $m]
    	}
        return $results
    }
    

    ÁÖ¸ñÇÒ °ÍÀº ƼŬÀÇ lappend ¸®½ºÆ® ¸í·É¾î¸¦ »ç¿ëÇÔÀ¸·Î½á ³ª´Â ÀÚµ¿ÀûÀ¸·Î results ¶ó´Â ¸®½ºÆ®¸¦ »ý¼ºÇÏ¿´°í °Å±â¿¡´Ù ¿ä¼ÒµéÀ» Ãß°¡Çϱ⠽ÃÀÛÇÑ´Ù´Â °ÍÀÌ´Ù.

    ÁÖÀÇ ÇؾßÇÒ ´Ü¾î

    ƼŬÀº ÇÔ¼ö¸¦ ´Ù·ç´Â ¹æ¹ý¿¡¼­ ¾à°£ ´Ù¸¥´Ù. »ç½Ç ¿©·¯ºÐÀº ³»°¡ ³»ÀåµÈ ƼŬÀÇ ÇÔ¼öÀÎ ¸í·É¾îcommands¸¦ È£ÃâÇÏ°í ÀÖ¾ú´Ù´Â °ÍÀ» ´«Ä¡Ã«À» Áöµµ ¸ð¸¥´Ù. ±×°ÍÀº ƼŬ¿¡¼­ ¿©·¯ºÐÀÌ Å¸ÀÌÇÁÇÏ´Â ¸ðµç ¸í·É¾îµéÀÌ ½ÇÁ¦·Î´Â ÇÔ¼ö È£ÃâÀ̱⠶§¹®ÀÌ´Ù. ´ëºÎºÐÀÇ ¾ð¾îµéÀº for, while, if/else µîµî°ú °°Àº Å°¿öµåµéÀÇ ÁýÇÕÀ» °¡Áø´Ù. ƼŬÀº ÀÌ·¯ÇÑ ¸ðµç Á¦¾î Å°¿öµåµéÀ» ¸í·É¾î ȤÀº ÇÔ¼öµéÀÌ µÇµµ·Ï ¸¸µç´Ù. ÀÌ°ÍÀº ¿ì¸®°¡ ³»Àå Á¦¾î ±¸Á¶¸¦ ´ÙÀ½°ú °°ÀÌ ¹Ù²Ü¼ö ÀÖµµ·Ï ÇØÁÖ´Â Èï¹Ì·Ó°í, È¥¶õ½º·¯¿ì¸ç ±×¸®°í ´ë´ÜÈ÷ °­·ÂÇÑ È¿°ú¸¦ °¡Áö°í ÀÖ´Ù:

    set i 3
    while {$i < 10} {
        puts $i
        set i [expr $i + 1]
        }
    

    ¿¹»óÇÑ ¹Ù¿Í °°ÀÌ ÀÌ°ÍÀº ¼ýÀÚ¸¦ 3¿¡¼­ºÎÅÍ (10º¸´Ù´Â 1ÀÛÀº) 9±îÁö Ãâ·ÂÇÑ´Ù. ±×·¯³ª ÀÌÁ¦ while ¸í·É¾î¿¡ ´ëÇÑ ¿ì¸® ÀڽŸ¸ÀÇ ¹öÀüÀ» Á¤ÀÇÇØ º¸ÀÚ:

    proc while {x y} {
      puts "My while now"
    }
    
    set i 3
    while {$i < 10} {
        puts $i
        set i [expr $i + 1]
        }
    
    

    ÀÌ°ÍÀº ´ÜÁö "My while now"¶ó´Â ¸Þ½ÃÁö¸¸À» Ãâ·ÂÇÑ´Ù. Ç¥Çö½Ä°ú ¸í·É¾î ¿¬¼Ó¿­Àº ¹«½ÃµÈ´Ù ¿Ö³ÄÇϸé ƼŬÀº ±×°ÍµéÀ» while ÇÔ¼ö·Î º¸³»¾îÁö´Â ¸Å°³º¯¼ö·Î Ãë±ÞÇÏ°í ±×¸®°í while ÇÔ¼ö´Â ±×°ÍµéÀ» ¿¹»óÇÏ°í ÀÖÁö¸¸ ¹«½ÃÇϱ⠶§¹®ÀÌ´Ù! ±×·¡¼­ ¿©·¯ºÐÀº ¿ì¸®°¡ ƼŬ¿¡¼­ ÇÁ·Î½ÃÀú¸¦ ¾î¶»°Ô Á¤ÀÇ ÇÏ´ÂÁö º¼¼ö ÀÖ´Ù ±×¸®°í ±×°ÍÀ» ³²¿ëÇÏ¿© ¾î¶»°Ô ¿©·¯ºÐÀÌ ´ë´ÜÈ÷ È¥¶õ½º·± ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´ÂÁö¸¦ º¼ ¼ö ÀÖ´Ù. - ¿©·¯ºÐÀÌ ÃæºÐÇÑ ÀÌÀ¯°¡ ¾ø´Ù¸é ±×·¸°Ô ÇÏÁö ¸¶¶ó!

    ¿ì¸® ÀڽŸ¸ÀÇ ¸ðµâÀ» ¸¸µé±â

    ÀÚ ÀÌÁ¦ ¿ì¸®´Â ¿ì¸® ÀڽŸ¸ÀÇ ÇÔ¼ö¸¦ ¸¸µé ¼ö ÀÖ°í À̰͵éÀ» ¿ì¸®ÀÇ ÇÁ·Î±×·¥¿¡ ÀÖ´Â ´Ù¸¥ ºÎºÐÀ¸·Î ºÎÅÍ È£ÃâÇÒ ¼ö ÀÖ´Ù. ÀÌÁ¡Àº Âü ÁÁÀº °ÍÀε¥ ¿ì¸®°¡ ŸÀÌÇÎÇÏ´Â ¼ö°í¸¦ ´ú ¼ö ÀÖ°í, ´õ¿í Áß¿äÇÑ °ÍÀº ¿ì¸®ÀÇ ÇÁ·Î±×·¥À» ´õ ½±°Ô ÀÌÇØÇÒ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. ¿ì¸®´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ°í ³­ÈÄ¿¡ ±× ÇÔ¼ö°¡ ¼¼ºÎ»çÇ×µéÀ» °¨Ãß¾î ÁֹǷΠ±×°Í¿¡ °üÇÏ¿© ÀØ¾î ¹ö·Áµµ ÁÁ±â ¶§¹®ÀÌ´Ù. (ÃæºÐÈ÷ ¸í¹éÇÑ ÀÌÀ¯·Î ÇÁ·Î±×·¥ÀÇ º¹ÀâÇÑ ºÎºÐµéÀ» ÇÔ¼ö¾ÈÀ¸·Î ½Î ³Ö´Â ¿ø¸®¸¦ Á¤º¸ÀºÆó information hiding¶ó°í ºÎ¸¥´Ù.) ±×·¯³ª ¾î¶»°Ô ¿ì¸®´Â ÀÌ·¯ÇÑ ÇÔ¼ö¸¦ ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ»±î? ¿ì¸®´Â ¸ðµâÀ» ÀÛ¼ºÇÑ´Ù.

    ÆÄÀ̽㠸ðµâ

    ÆÄÀ̽㿡¼­ ¸ðµâÀº Ưº°ÇÑ °ÍÀÌ ¾Æ´Ï´Ù. ±×°ÍÀº ´ÜÁö ÆÄÀ̽ã ÇÁ·Î±×·¥ÀÇ ¼­¼ú¹®À¸·Î °¡µæ Âù ´Ü¼øÇÑ ÅؽºÆ®ÆÄÀÏÀÏ »ÓÀÌ´Ù. º¸Åë ÀÌ·¯ÇÑ ¼­¼ú¹®Àº ÇÔ¼öÁ¤ÀÇÀÌ´Ù. ±×¸®ÇÏ¿© ¿ì¸®°¡ ´ÙÀ½°ú °°ÀÌ Å¸ÀÌÇÁÇÒ ¶§:

    from sys import *
    

    ¿ì¸®´Â È¿°úÀûÀ¸·Î sys.pyÀÇ ³»¿ëÀ» °ÅÀÇ ÀÚ¸£°í ºÙÀ̱⠱â´É°ú °°ÀÌ, ¿ì¸®ÀÇ ÇÁ·Î±×·¥¿¡ º¹»çÇÑ´Ù. (±×°Í(import)Àº ½ÇÁ¦·Î ±×°Í(copy & paste)°ú °°Àº °ÍÀº ¾Æ´ÏÁö¸¸ °³³äÀº °°´Ù) »ç½Ç ¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î(C++ÀÌ ´ëÇ¥ÀûÀÌ´Ù)¿¡¼­ ¹ø¿ª±â´Â ¹®ÀÚ±×´ë·Î ¸ðµâ ÆÄÀÏÀ» ÇöÀçÀÇ ÇÁ·Î±×·¥¿¡ ¿ä±¸µÈ´ë·Î ´Ü¼øÈ÷ º¹»çÇϱ⸸ ÇÑ´Ù.

    ±×·¡¼­ ¿ä¾àÇÏÀÚ¸é, ¿ì¸®°¡ ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­ ´Ù½Ã ¾²±â¸¦ ¿øÇÏ´Â ÇÔ¼öµéÀ» ´ã°í ÀÖ´Â ÆÄÀ̽ã ÆÄÀÏÀ» ÀÛ¼ºÇÔÀ¸·Î½á ¿ì¸®´Â ¸ðµâÀ» ÀÛ¼ºÇÑ´Ù. ±×¸®°í¼­ ¿ì¸®´Â ´ÜÁö ¿ì¸®ÀÇ ¸ðµâÀ» Ç¥ÁظðµÑÀ» ¼öÀÔÇÑ°Í°ú Á¤È®ÇÏ°Ô ¶È °°Àº ¹æ¹ýÀ¸·Î ¼öÀÔÇϱ⸸ ÇÏ¸é µÈ´Ù. ½±Áö¿ä, ¾È ±×·±°¡¿ä? ±×·¸°Ô ÇØ º¸ÀÚ.

    ¾Æ·¡ÀÇ ÇÔ¼ö¸¦ ÆÄÀÏ¿¡ ³Ö°í¼­ ±× ÆÄÀÏÀ» timestab.py¶ó´Â À̸§À¸·Î ÀúÀåÇ϶ó.

    def print_table(multiplier):
        print "--- Printing the %d times table ---" % multiplier
        for n in range(1,13):
            print "%d x %d = %d" % (n, multiplier, n*multiplier)
    

    ÀÌÁ¦ ÆÄÀ̽ã ÇÁ·ÒÇÁÆ®¿¡¼­ ŸÀÌÇÁÇ϶ó:

    >>> import timestab
    >>> timestab.print_table(12)
    

    ¾ß ºü¸£´Ù! ¿©·¯ºÐÀº ¸ðµâÀ» ÀÛ¼ºÇß°í »ç¿ëÇß´Ù.

    Áß¿äÇÑ ÁÖÀÇ: ¿©·¯ºÐÀÌ ÆÄÀ̽ãÀ» timestab.py°¡ ÀúÀåµÈ °°Àº µð·ºÅ丮¿¡¼­ ½ÃÀÛÇÏÁö ¾Ê¾Ò´Ù¸é ÆÄÀ̽ãÀº ±× ÆÄÀÏÀ» ãÁö ¸øÇÏ°í ¿¡·¯¸¦ º¸°íÇÒ °ÍÀÌ´Ù. ±×·¸´Ù¸é ¿©·¯ºÐÀº PYTHONPATH ¶ó´Â ȯ°æ º¯¼ö¸¦ ÀÛ¼ºÇÏ¿© ±× ¸ðµâÀ» ã±â À§ÇÑ À¯È¿ÇÑ µð·ºÅ丮ÀÇ ¸ñ·ÏÀ» ´ãÀ» ¼ö ÀÖ´Ù. (ÆÄÀ̽㿡 Á¦°øµÇ´Â Ç¥Áظðµâµµ ¿ª½Ã ¸¶Âù°¡Áö´Ù)

    ȯ°æ º¯¼ö¸¦ ¸¸µå´Â °ÍÀº Ç÷§Æû¿¡ µû¶ó 󸮹æ¹ýÀÌ ´Ù¸£¹Ç·Î ³ª´Â ¿©·¯ºÐÀÌ ÀÌ¹Ì »ç¿ë¹ýÀ» ¾Ë°í Àְųª ãÀ» ¼ö ÀÖ´Ù°í °¡Á¤ÇÑ´Ù!

    º£ÀÌÁ÷°ú ƼŬÀÇ ¸ðµâ

    º£ÀÌÁ÷Àº ¾î¶²°¡? ±×°ÍÀº ´õ¿í º¹ÀâÇÏ´Ù.... Å¥º£ÀÌÁ÷°ú ´Ù¸¥ ¿À·£ º¯Á¾µé¿¡´Â ½ÇÁ¦ÀûÀÎ ¸ðµâÀÇ °³³äÀÌ ¾ø´Ù. ¿©·¯ºÐÀº ÀÌÀüÀÇ ÇÁ·ÎÁ§Æ®¿¡¼­ ÇöÀçÀÇ ÇÁ·ÎÁ§Æ®·Î ÅؽºÆ® ÆíÁý±â¸¦ »ç¿ëÇÏ¿© ¼öµ¿À¸·Î ÀÚ¸£°í ºÙ¿©¾ß¸¸ ÇÑ´Ù. ±×·¸Áö¸¸ ºñÁê¾ó º£ÀÌÁ÷¿¡¼­´Â ¸ðµâÀÇ °³³äÀÌ À־ ¿©·¯ºÐÀº ÅëÇÕȯ°æ(Integrated Development Environment (IDE))ÀÇ File|Open Module... ¸Þ´º¸¦ ÅëÇÏ¿© ¸ðµâÀ» ÀåÂøÇÒ ¼ö ÀÖ´Ù. º£ÀÌÁ÷¾È¿¡¼­ ¿©·¯ºÐÀÇ ÇÒ ¼ö ÀÖ´Â °ÍµéÀÇ Á¾·ù¿¡´Â ¾à°£ÀÇ Á¦ÇÑÀÌ ÀÖ´Ù. ±×·¯³ª ¿ì¸®°¡ ÀÌ °­Á¿¡¼­ ºñÁê¾ó º£ÀÌÁ÷À» »ç¿ëÇÏÁö´Â ¾ÊÀ¸¹Ç·Î ³ª´Â ´õ ÀÌ»ó ¾ÈÀ¸·Î µé¾î°¡Áö´Â ¾Ê°Ú´Ù. (ÁÖÀÇ : ºñÁê¾ó º£ÀÌÁ÷À» Àß¶ó³½ ¹öÁ¯ÀÌ Àִµ¥ ±×°ÍÀº CCE(COM Controls Edition)À̶ó°í ¾Ë·ÁÁ® ÀÖÀ¸¸ç ¿©·¯ºÐÀÌ ½ÃÇèÇØ º¸°í ½Í´Ù¸é, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® À¥»çÀÌÆ®¿¡¼­ ¹«·á·Î ³»·Á¹ÞÀ» ¼ö ÀÖ´Ù. ¶ÇÇÑ À©µµ¿ì 98, 2000 °ú IE5 ¸ðµÎ´Â VBScript¶ó°í ºÎ¸£´Â VBÀÇ Ãà¾à ¹öÁ¯À» °¡Áö°í ÀÖ´Ù. ¿©·¯ºÐÀº .vbs·Î ³¡³ª´Â ÆÄÀÏ¿¡¼­ ±×°ÍÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.)

    ¸¶Áö¸·À¸·Î TclÀº, ¾ðÁ¦³ª¿Í °°ÀÌ(!), ¸ðµâÀ» Àç»ç¿ëÇÑ´Ù´Â °Í¿¡ °üÇؼ­´Â ¾à°£ ÀýÃæÀûÀÎ , ±×·¯³ª ±×·³¿¡µµ ºÒ±¸ÇÏ°í Èï¹ÌÀÖ´Â, ±æÀ» äÅÃÇÏ°í ÀÖ´Ù. (¶Ç´Â ±×°ÍÀº ±×°ÍµéÀ» ¶óÀ̺귯¸®(libraries)¶ó°í ºÎ¸£±â¸¦ ´õ ÁÁ¾ÆÇÑ´Ù)

    °¡Àå ´Ü¼øÇÑ ¼öÁØ¿¡¼­ ¿©·¯ºÐÀº ƼŬ ÇÔ¼öÀÇ ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ¸¶Âù°¡Áö·Î ¿ì¸®´Â ÆÄÀ̽㿡¼­ ±×·¸°Ô ÇÒ ¼ö ÀÖÀ¸¸ç ±×·¯¸é, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­, ±× ÆÄÀÏÀ» ã¾Æ ²¨³¾source ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ¹®ÀÚ ±×´ë·Î ±× ÀÎÅÍÇÁ¸®ÅÍ¿¡°Ô ¿©·¯ºÐÀÇ ÆÄÀÏÀ» Àеµ·Ï ÇÏ¿© ÁÖ¸ç ±× ÇÁ·Î±×·¥µéÀº »ç¿ë°¡´ÉÇÏ°Ô µÈ´Ù. ±×·¯³ª ´õ Èï¹ÌÀÖ´Â ¼±ÅûçÇ×ÀÌ ÀÖ´Ù:

    ¿©·¯ºÐÀº ¿©·¯ºÐÀÇÆÄÀÏÀ» Àü¼úÇÑ ¹Ù¿Í °°ÀÌ ÀÛ¼ºÇÒ ¼ö ÀÖÀ¸¸ç ÆÄÀÏµé ¸ðµÎ¸¦ µð·ºÅ丮/Æú´õ¿¡ ³õ°í¼­ ±×¸®°í´Â mk_index ¸í·É¾î¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀ¸·Î ±× Æú´õ¿¡ ÀÖ´Â ÇÔ¼ö¿Í ÆÄÀϵéÀÇ ¸ðµç À妽º¸¦ ¸¸µç´Ù. ±×¸®°í³ª¼­ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ ¿©·¯ºÐÀº ´Ü¼øÈ÷ ÇÊ¿äÇÑ ÇÔ¼ö¸¦ È£ÃâÇÏ°í ƼŬ ÀÎÅÍÇÁ¸®ÅÍ´Â ±× ÇÔ¼ö°¡ »ç¿ë°¡´ÉÇÏÁö ¾Ê´Ù´Â °ÍÀ» ¾Ë°Ô µÉ °ÍÀÌ°í ÀÚµ¿ÀûÀ¸·Î À妽ºÆÄÀÏÀ» ã¾Æº¼ °ÍÀÌ´Ù. ±×¸®°í´Â ±×°ÍÀº ¶óÀ̺귯¸®ºÎÅÍ ÀûÀýÇÑ ¼Ò½º ÆÄÀÏÀ» ã¾Æ ²¨³»¾î¼­ ±× ÇÔ¼ö¸¦ ½ÇÇàÇÒ °ÍÀÌ´Ù.

    ã¾ÆÁö±â¸¸ ÇÏ¸é ±× ÇÔ¼ö´Â »ç¿ë°¡´ÉÇÑ »óÅ·ΠÀ־ ±×¿Í °ü·ÃµÈ ½ÇÇà ºÎ´ãÀÌ ¾ø´Ù. À¯ÀÏÇÑ ³­Á¦´Â ÇÁ·Î±×·¡¸Ó°¡ °°Àº À̸§À» °¡Áø ÇÑ°³ ÀÌ»óÀÇ ÇÔ¼ö¸¦ °¡Áö´Â °ÍÀ» ÇÇÇؾ߸¸ ÇÑ´Ù´Â °ÍÀÌ´Ù. ƼŬÀÇ ÀÌ·¯ÇÑ »ç¾çÀº ÀÚµ¿·Îµù(autoloading)À̶ó°í ¾Ë·ÁÁ® ÀÖ´Ù.

    ´ÙÀ½À¸·Î ¿ì¸®´Â ÆÄÀϵé°ú ÅؽºÆ® 󸮹ýÀ» »ìÆ캸°í ±×¸®°í ³ª¼­ ¾à¼ÓÇÑ´ë·Î ÆÄÀÏ¿¡¼­ ´Ü¾î¸¦ ¼¼´Â ÀÛ¾÷À» ´Ù½Ã ¹æ¹®ÇÒ °ÍÀÌ´Ù. »ç½Ç ¿ì¸®´Â ¿ì¸®ÀÇ ÆíÀǸ¦ À§ÇÏ¿© °è¼ÓÇÏ¿© ÅؽºÆ® ó¸®ÇÔ¼öÀÇ ¸ðµâÀ» ¸¸µé°í ÀÖ´Â °ÍÀÌ´Ù.

     
    ±â¾ïÇØ¾ß ÇÒ °Í
  • ÇÔ¼ö´Â ¸ðµâÀÇ ÇÑ ÇüÅÂÀÌ´Ù
  • ÇÔ¼ö´Â °ªÀ» ¹ÝȯÇÏÁö¸¸, ÇÁ·Î½ÃÀú´Â ±×·¸Áö ¾Ê´Ù
  • ÆÄÀ̽ãÀÇ ¸ðµâÀº ÀϹÝÀûÀ¸·Î ÇϳªÀÇ ÆÄÀÏ¿¡ ÇÔ¼öÁ¤ÀÇ·Î ±¸¼ºµÈ´Ù.
  • ÆÄÀ̽㿡¼­´Â def Å°¿öµå·Î »õ·Î¿î ÇÔ¼ö¸¦ ÀÛ¼ºÇ϶ó
  • º£ÀÌÁ÷¿¡¼­´Â SUB ȤÀº FUNC¸¦ »ç¿ëÇÏ°í ±×¸®°í ƼŬ¿¡¼­´Â procÀ» »ç¿ëÇ϶ó
  •  
    Previous  Next  Contents 


    ÀÌ ÆäÀÌÁö¿¡ ´ëÇÏ¿© Áú¹®À̳ª Á¦¾È»çÇ×ÀÌ ÀÖÀ¸¸é ´ÙÀ½ ÁÖ¼Ò·Î ³ª¿¡°Ô ÀüÀÚ¸ÞÀÏÀ» º¸³»¶ó: agauld@crosswinds.net