์ฝ”๋“œ - ํŒจ์บ  ์ˆ˜์—… ์ฝ”๋“œ ์ฐธ๊ณ  (ํŒจ์บ  ์ˆ˜์—… ์ •๋ฆฌ)

 

 

<์ด์ „ ๊ธ€>

https://silvercoding.tistory.com/40

 

[python ๊ธฐ์ดˆ] 8. ํด๋ž˜์Šค , ์ƒ์† , ๋‹ค์ค‘์ƒ์†

์ฝ”๋“œ - ํŒจ์บ  ์ˆ˜์—… ์ฝ”๋“œ ์ฐธ๊ณ  (ํŒจ์บ  ์ˆ˜์—… ์ •๋ฆฌ) <์ด์ „ ๊ธ€> https://silvercoding.tistory.com/39 https://silvercoding.tistory.com/38 https://silvercoding.tistory.com/37 https://silvercoding.tistory.com/36..

silvercoding.tistory.com

 

* ํด๋” - ํŒจํ‚ค์ง€, ํŒŒ์ผ - ๋ชจ๋“ˆ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 

* ์ƒ๋Œ€ ๊ฒฝ๋กœ - . : ๋ถ€๋ชจ ๋””๋ ‰ํ† ๋ฆฌ / .. : ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ 

 

 

 

์šฐ์„  ์˜ค๋Š˜ ์‹ค์Šต์„ ์œ„ํ•ด์„œ 

pkg ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ์•ˆ์— ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค. 

 

(1) __init__.py 

* ์šฉ๋„ : ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง€์ž„์„ ์„ ์–ธ 

* Python 3.x : ํŒŒ์ผ์ด ์—†์–ด๋„ ํŒจํ‚ค์ง€๋ฅผ ์ธ์‹ ํ•˜์ง€๋งŒ , ํ•˜์œ„ ํ˜ธํ™˜์„ ์œ„ํ•ด ์ƒ์„ฑํ•ด ๋†“๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. 

 

 

(2) fibonacci.py 

class Fibonacci:
    def __init__(self, title='fibonacci'):
        self.title = title 

    def fib(n):  # ํ”ผ๋ณด๋‚˜์น˜ ์ถœ๋ ฅ
        a, b = 0, 1 
        while a < n:
            print(a, end=' ')
            a, b = b, a + b 
        print()

    def fib2(n): # ํ”ผ๋ณด๋‚˜์น˜ ๋ฆฌ์ŠคํŠธ ๋ฆฌํ„ด 
        result = []
        a, b = 0, 1 
        while a < n:
            result.append(a)
            a, b = b, a + b 

        return result

fib๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ์ถœ๋ ฅ, fib2๋Š” ๋ฆฌ์ŠคํŠธ๋กœ ์ถœ๋ ฅํ•ด ์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค. 

 

 

(3) calculations.py

def add(l, r):
    return l + r

def mul(l, r):
    return l * r

def div(l, r):
    return l / r

๋”ํ•˜๊ธฐ, ๊ณฑํ•˜๊ธฐ, ๋‚˜๋ˆ„๊ธฐ ๋‹จ์ˆœ ๊ณ„์‚ฐ ํ•จ์ˆ˜๋‹ค. 

 

 

(4) prints.py

def prt1():
    print("I'm NiceGirl!")


def prt2():
    print("I'm GoodGirl!")


# ๋‹จ์œ„ ์‹คํ–‰ (๋…๋ฆฝ์ ์œผ๋กœ ํŒŒ์ผ ์‹คํ–‰) : ํ•จ์ˆ˜๊ฐ€ ์ž˜ ๋งŒ๋“ค์–ด ์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ด ํŒŒ์ผ์—์„œ๋งŒ ์‹คํ–‰ํ•˜๋„๋ก ์„ค์ • 
if __name__ == "main":
    prt1()
    prt2()

๋‹จ์ˆœ ์ถœ๋ ฅ๋ฌธ์ด๊ณ , ๋‹จ์œ„์‹คํ–‰์œผ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ์ด ๋ชจ๋“ˆ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ , ํ˜„์žฌ ํŒŒ์ผ์—์„œ๋งŒ ์‹คํ–‰์ด ๋˜๋„๋ก ํ•˜๋Š” if๋ฌธ์€ ์„ ์–ธํ•œ๋‹ค. 

 

 

 

 

- ์˜ˆ์ œ 1 : ํด๋ž˜์Šค 

from pkg.fibonacci import Fibonacci

์œ„์™€ ๊ฐ™์ด ํด๋ž˜์Šค๋ฅผ importํ•ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 

Fibonacci.fib(300)

 0 1 1 2 3 5 8 13 21 34 55 89 144 233 

์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๊ฐ€ ์•„๋‹Œ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์˜€์œผ๋ฏ€๋กœ ํด๋ž˜์Šค ์ž์ฒด๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

print("ex1 : ", Fibonacci.fib2(400))
print('ex1 : ', Fibonacci().title)  # ์ธ์Šคํ„ด์Šคํ™” ์‹œ์ผœ์•ผ ํ•จ.

 ex1 :  [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] 
 ex1 :  fibonacci 

title์€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šคํ™” ์‹œ์ผœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. 

 

 

- ์˜ˆ์ œ 2 : ํด๋ž˜์Šค 2 

from pkg.fibonacci import *

๋ชจ๋“ˆ์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๋ฏ€๋กœ ๊ถŒ์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค. 

Fibonacci.fib(500)
print("ex2 : ", Fibonacci.fib2(600))
print('ex2 : ', Fibonacci().title)  # ์ธ์Šคํ„ด์Šคํ™” ์‹œ์ผœ์•ผ ํ•จ.

 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 
 ex2 :  [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] 
 ex2 :  fibonacci 

 

 

- ์˜ˆ์ œ 3 : ํด๋ž˜์Šค - ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• 

from pkg.fibonacci import Fibonacci as fb

์ด์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งŽ์ด ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. 

fb.fib(1000)
print("ex3 : ", fb.fib2(1600))
print('ex3 : ', fb().title)

 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 
 ex3 :  [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]     
 ex3 :  fibonacci 

 

 

- ์˜ˆ์ œ 4 : ํ•จ์ˆ˜ 

import pkg.calculations as c
print("ex4 : ", c.add(10, 100))
print("ex4 : ", c.mul(10, 100))

 ex4 :  110 
 ex4 :  1000 

 

 

 

- ์˜ˆ์ œ 5 : ํ•จ์ˆ˜ - ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• (ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ์Šต๊ด€์ด๋‹ค. ) 

from pkg.calculations import div as d
print('ex5 : ', int(d(100, 10)))

 ex5 :  10 

์ด๋ ‡๊ฒŒ ํ•„์š”ํ•œ ํ•จ์ˆ˜๋งŒ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

- ์˜ˆ์ œ 6 

import pkg.prints as p
import builtins  # ํŒŒ์ด์ฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋“ค
p.prt1()
p.prt2()
print()
print(dir(builtins))

 I'm NiceGirl! 
 I'm GoodGirl! 

 ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip'] 

builtins์—๋Š” ํŒŒ์ด์ฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋“ค์ธ๋ฐ, prints.py์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ __name__์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

+ Recent posts