

¿£Áö´Ï¾î µ¹Á¾
dolljong
|
ÇÁ·Î±×·¡¹Ö Tips
ÇÁ·Î±×·¡¹Ö¿¡ °üÇÑ TipÀ» °øÀ¯ÇÏ´Â °÷ÀÔ´Ï´Ù.

 |
[python](¿£Áö´Ï¾î¸¦ À§ÇÑ) ÆÄÀ̽㠽ÃÀÛÇϱâ[8]¸ðµâ
|
À̼®Á¾
|
2022-09-04 21:41:02, Á¶È¸ : 659, Ãßõ : 67 |
- Download #1 : engpython8.png (13.2 KB), Download : 17


(¿£Áö´Ï¾î¸¦ À§ÇÑ) ÆÄÀ̽㠽ÃÀÛÇϱâ[8]
³»¿ë : ¸ðµâ, ÆÐŰÁö
ÂüÁ¶ : https://wikidocs.net/29 (¸ðµâ), https://wikidocs.net/1418 (ÆÐŰÁö)
0.½ÃÀÛÇϸç
ÆÄÀ̽ãÀº
»ç¶÷µéÀÌ ¸¸µé¾î¼ °øÀ¯ÇÑ ¸ðµâ°ú ÆÐŰÁöµéÀÌ °·ÂÇÑ ÈûÀ» ¹ßÈÖÇÑ´Ù. ÆÄÀ̽ãÀ» ¡®glue language¡¯¶ó°í ºÎ¸£´Â ÀÌÀ¯´Â Ǯó·³ ¼·Î ´Ù¸¥ ¾ð¾î¸¦
ºÙ¿©ÁÙ ¼ö Àֱ⠶§¹®À̶ó°í ÇÑ´Ù. C·Î ¸¸µé¾îÁø ¶óÀ̺귯¸®¸¦ python¿¡ ºÙ¿©¼ ¾µ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
1. ¸ðµâ(Module)°ú ÆÐŰÁö(Package)
µÑÀÇ
Â÷ÀÌ´Â °£´ÜÇÏ´Ù. moduleÀº .pyÆÄÀÏÀÌ´Ù. package´Â .pyµéÀ» ¸ð¾Æ³õÀº µð·ºÅ丮¶ó°í »ý°¢ÇÏ¸é µÈ´Ù.
¸ðµâ
: .pyÆÄÀÏ. ¿¹: rc_work.py ö±ÙÄÜÅ©¸®Æ®¿¡ °ü°èµÈ ÇÔ¼öµéÀÌ Á¤ÀÇÇÑ ÆÄÀÏ.
¡æ ¸ðµâ¸í : rc_work
ÆÐŰÁö
: directoryÀ̸§ÀÌ´Ù. ¿¹: bridge_workÀ̶ó´Â µð·ºÅ丮¿¡ rc_work.py, steel_work.pyÀÌ ÀÖÀ» ¶§
¡æ ÆÐŰÁö¸í: bridge_work
ÆÄÀÏ´ÜÀ§ÀÇ
¸ðµâºÎÅÍ ¾Ë¾Æº¸ÀÚ.
2. ¸ðµâ(module)
ÀÏ´Ü
ÆÄÀ̽ãÀÌ Á¦°øÇϰųª ³²ÀÌ ¸¸µé¾î ³õÀº ¸ðµâÀ» ³»°¡ ºÒ·¯´Ù ¾²´Â ¹ýºÎÅÍ ¹è¿öº¸ÀÚ. ÀÎÅÍÇÁ¸®ÅÍ »óÅ¿¡¼ »çÀΰªÀ» ±¸Çغ¸ÀÚ. sin(3.14)¸¦ ±¸Çغ¸ÀÚ.
sinÀÌ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù°í ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
>>> sin(3.14)
Traceback (most recent call
last):
[wheel-0.37.0-py3.9.egg-info
File "", line 1, in
NameError: name 'sin' is not
defined
whichcraft.py
|
sinµµ
Áö¿ø¾ÈµÇ´Â ¾ð¾î°¡ ÀÖ³ª? ±×·¸´Ù (±âº»ÀûÀ¸·Î) Áö¿ø ¾ÈµÈ´Ù. sinÀ» ¾²±â À§Çؼ´Â math¶ó´Â ¸ðµâÀ» ºÒ·¯¿Í¾ß ÇÑ´Ù.
math¶ó´Â
¸ðµâÀ» ºÒ·¯¿À´Â ¹æ¹ýÀº ¾Æ·¡¿Í °°´Ù. ÀÎÅÍÇÁ¸®ÅÍ »óÅ¿¡¼ Å×½ºÆ®Çغ¸ÀÚ.
¾Æ¹«
Àϵµ ¾È ¹ú¾îÁ³Áö¸¸ math ¸ðµâÀÌ importµÈ °ÍÀÌ´Ù. ÀÌÁ¦ math¸ðµâ¿¡ Æ÷ÇÔµÈ ÇÔ¼öµéÀ» ¾µ ¼ö ÀÖ´Ù. ±×·³ sinÇÔ¼ö¸¦ ½áº¸ÀÚ.
>>> import math
>>>
sin(3.14)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'sin' is not defined
|
¿©ÀüÈ÷
¿¡·¯°¡ ¹ß»ýÇÑ´Ù. error³»¿ëÀ» Àо´Ï not defined¶ó´Â ¹®±¸°¡ º¸ÀδÙ. Á¤ÀÇ µÇÀÖÁö ¾Ê´Ù´Â °ÍÀÌ´Ù.
import·Î
ºÒ·¯¿Â ¸ðµâ¿¡ ¼ÓÇÑ ÇÔ¼ö¸¦ ¾²·Á¸é ¸ðµâ¸í.ÇÔ¼ö¸í ÀÌ·¸°Ô ½áÁà¾ß ÇÑ´Ù.
>>> math.sin(3.14)
0.0015926529164868282
|
math¸ðµâ
¾È¿¡´Â sin°ú °°Àº ÇÔ¼ö¸¸ ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó »ó¼öµµ Á¤ÀÇ µÇ¾îÀÖ´Ù. Á¤¹ÐÇÑ ¥ð°ªÀ» ¾²±â À§ÇØ math.pi¸¦ ¾²¸é µÈ´Ù. »ó¼ö¸í¿¡´Â ()°¡ ¾ø°í
ÇÔ¼ö¸¦ ºÒ·¯¿Ã ¶§´Â ()¸¦ ºÙÀδٴ °ÍÀ» ±â¾ïÇÏÀÚ. pi °ª°ú ÀÚ¿¬»ó¼ö e°ªÀ» ±¸Çغ¸ÀÚ.
>>> math.pi
3.141592653589793
>>>
math.e
2.718281828459045
|
-
¸ðµâ¿¡ Æ÷ÇÔµÈ ÇÔ¼ö ¾Ë¾Æº¸±â(dir)
dir(¸ðµâ¸í)
¸ðµâ ¾È¿¡ ¾î¶² ÇÔ¼öµéÀÌ µé¾î ÀÖÀ»±î? ¾Ë¾Æ º¼ ¼ö ÀÖÀ¸¸é ÁÁÁö ¾ÊÀ»±î?
dirÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. sin, log, degrees, radians ÇÔ¼ö µîÀÌ º¸ÀδÙ. e³ª pi°°ÀÌ ÇÔ¼ö°¡ ¾Æ´Ñ »ó¼öµµ ÀÖ´Ù´Â °É ¾Ë
¼ö ÀÖ´Ù. degrees´Â radianÀ» degree·Î ¹Ù²ãÁÖ´Â ÇÔ¼ö°í radians´Â degree¸¦ radianÀ¸·Î ¹Ù²ãÁÖ´Â ÇÔ¼ö´Ù. ¿£Áö´Ï¾îµéÀº
ÀÌ ÇÔ¼öµéÀ» ¸¹ÀÌ ¾µ °ÍÀÌ´Ù.
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
|
-
¸ðµâ¿¡ Æ÷ÇÔµÈ ÇÔ¼ö »ç¿ë¹ý ¾Ë¾Æº¸±â(help)
help(ÇÔ¼ö¸í)
À§ÀÇ math¸ðµâÀÇ ÇÔ¼öÁß¿¡ distÇÔ¼ö°¡ ÀÖ´Ù. ¾Æ¸¶µµ ÁÂÇ¥ µÎ°³¸¦ ÁÖ¸é
±× µÎ ÁÂÇ¥»çÀÌÀÇ °Å¸®¸¦ ±¸ÇØÁÙ °Í °°´Ù. »ç¿ë¹ýÀ» ¾Ë¾Æº¸±â À§Çؼ help(math.dist)¸¦ Ãĺ¸ÀÚ. µÎ Á¡Àº sequenceÇüÅÂ(list)
¶Ç´Â iterables¿©¾ß ÇÑ´Ù´Â µµ¿ò¸»À» º¼ ¼ö ÀÖ´Ù. °è»êÀÌ ¾î¶»°Ô µÇ´ÂÁöµµ ¼³¸íµÇ¾îÀÖ´Ù.
>>> help(math.dist)
Help on built-in function dist in module math:
dist(p, q, /)
Return the Euclidean distance between two points p and q.
The points should be specified as sequences (or iterables) of
coordinates. Both inputs must have the same dimension.
Roughly equivalent to:
sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
|
math¸ðµâÀÇ distÇÔ¼ö¸¦ Å×½ºÆ®Çغ¸ÀÚ. p [0,0,0]¿Í qÀÇ
[1,1,1]°Å¸®´Â 1.732À¸·Î °è»êµÆ´Ù.
>>> math.dist([0,0,0],[1,1,1])
1.7320508075688772
|
Built in module
math¸ðµâó·³
º°µµÀÇ ¼³Ä¡ ¾øÀÌ importÇØ¼ ¾µ ¼ö ÀÖ´Â ¸ðµâÀ» built in moduleÀ̶ó°í ºÎ¸¥´Ù. built in module¿¡´Â ¾î¶² °ÍµéÀÌ ÀÖÀ»±î?
built in moduleÀÇ ¸ñ·ÏÀ» º¸·Á¸é sys¸ðµâÀ» importÇÑ ÈÄ sys.builtin_module_names¶ó°í ÀÔ·ÂÇØº¸ÀÚ. ¸ñ·ÏÀÌ
³ª¿Â´Ù. math¿Í sys, timeµîÀ» º¼ ¼ö ÀÖ´Ù. ¸ðµâµéÀ» ´Ù ±â¾ïÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÄÚµùÇÏ´Ù°¡ ÇÊ¿äÇÑ ÇÔ¼ö³ª ±â´ÉÀ» ±¸±Û¸µÀ¸·Î ã¾Æº¸¸é µÈ´Ù.
-
built in module ¸ñ·Ï º¸±â
sys.builtin_module_names
>>>
import sys
>>> sys.builtin_module_names
('_abc', '_ast', <Áß°£»ý·«> , 'math', <Áß°£»ý·«> 'sys', 'time', <»ý·«>)
|
Module ºÒ·¯¿À´Â ¹æ¹ý
¸ðµâÀ»
ºÒ·¯¿À´Â ¹æ¹ýÀº ¸î°¡Áö ÀÖ´Ù. ¾Æ·¡ÀÇ ¿¹¸¦ º¸ÀÚ.
import
math
from
math import sin, cos, tan
from
math import *
ù¹øÂ°
¹æ¹ýÀº Áö±Ý±îÁö ¾Ë¾Æº» °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀÌ´Ù. ÀÌ·¸°Ô ºÒ·¯ ¿À¸é ¸ðµâ¡®m.ÇÔ¼ö¸í()°ú °°Àº ¹æ¹ýÀ¸·Î ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
math.sin(1.0)ÀÌ·¸°Ô ¸»ÀÌ´Ù.
µÎ¹øÂ°
¹æ¹ýÀº from Ű¿öµå¸¦ ½á¼ module³»¿¡¼ ºÒ·¯¿À°í ½ÍÀº ÇÔ¼ö³ª »ó¼öÀ̸§¸¸ ½áÁÖ´Â °ÍÀÌ´Ù. fromÀ» ÀÌ¿ëÇØ¼ importÇÏ¸é ¸ðµâ¸í
¾øÀÌ sin(1.0)°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¼¼¹øÂ°
¹æ¹ý(from math import *)Àº math¸ðµâ ³»ÀÇ ¸ðµç ÇÔ¼ö(»ó¼ö)¸¦ importÇÏ´Â °ÍÀÌ´Ù. µÎ¹øÂ° ¹æ¹ý°ú ¸¶Âù°¡Áö·Î ¸ðµâ¸í ÁöÁ¤
¾øÀÌ sin(1.0)À» Á÷Á¢ ¾µ¼ö ÀÖ´Ù.
>>> from math import sin,cos,tan
>>>
tan(1.0)
1.5574077246549023
>>>
math.tan(1.0)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'math' is not defined
|
ˤ˂
¿¹¸¦ º¸¸é fromÀ» ÀÌ¿ëÇØ¼ »ï°¢ÇÔ¼ö ¼¼°³¸¦ importÇß´Ù. sin(1.0)´Â Á¦´ë·Î ÀÛµ¿Çϴµ¥ math.sin(1.0)Àº Á¦´ë·Î ÀÛµ¿ÇÏÁö
¾Ê´Â´Ù. ¸ðµâ¸í ¾øÀÌ ¾µ ¼ö ÀÖ´Â µÎ¹øÂ°¿Í ¼¼¹øÂ° ¹æ¹ýÀÌ ÆíÇÒ°Í °°Àºµ¥ ´ëºÎºÐ ¸ðµâ¸íÀ» ¾Õ¿¡´Ù ½áÁִ ù¹øÂ° ¹æ¹ýÀ» ¾´´Ù. ¸ðµâ¸íÀ»
¸íÈ®ÇÏ°Ô ÇÏ·Á´Â °ÍÀÌ´Ù.
[8-1]¿¡ °è¼Ó
|
|
|
 |
|
 |
ÆÐŰÁö´Â [8-1]¿¡¼ °è¼ÓµË´Ï´Ù. |
2022-09-04 21:47:48 |
±¸Á¶¼³°èÀÇ ¹Ì·¡¸¦ ÁغñÇÏ´Â ¸ðÀÓ [±¸Á¶¼³°è¹Ì·¡Æ÷·³]
|
|