๋ฐ˜์‘ํ˜•

๐ŸŽˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ(virtual environment)

Python์˜ ๊ฐ€์ƒ ํ™˜๊ฒฝ(virtual environment)์€ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ํŒจํ‚ค์ง€์™€ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๋„์˜ Python ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ Python ํŒจํ‚ค์ง€ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์–ด, ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์™€์˜ ์˜์กด์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

** ๊ฐ€์ƒ ํ™˜๊ฒฝ์˜ ํ•„์š”์„ฑ

Python ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ฐ™๋”๋ผ๋„ ๋ฒ„์ „์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ™์€ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์—์„œ ์ด ๋‘ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

** ์š”์•ฝ

  • ๊ฐ€์ƒ ํ™˜๊ฒฝ ํ™œ์„ฑํ™”: conda activate myenv
  • ์ฝ”๋“œ ์‹คํ–‰: python my\_script.py ๋˜๋Š” python (์ธํ„ฐํ”„๋ฆฌํ„ฐ ์‚ฌ์šฉ)
  • ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋น„ํ™œ์„ฑํ™”: conda deactivate

 

1. ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑํ•˜๊ธฐ

 

โœ… ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑ

์ƒˆ๋กœ์šด ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด conda create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

conda create --name myenv

์œ„ ๋ช…๋ น์–ด๋Š” myenv๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•œ๋‹ค. ํ™˜๊ฒฝ ์ด๋ฆ„์€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โœ… ํŠน์ • Python ๋ฒ„์ „์„ ์ง€์ •ํ•˜์—ฌ ํ™˜๊ฒฝ ์ƒ์„ฑ

ํŠน์ • Python ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฒ„์ „์„ ๋ช…์‹œํ•˜์—ฌ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

conda create --name myenv python=3.8

์œ„ ๋ช…๋ น์–ด๋Š” Python 3.8 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” myenv ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•œ๋‹ค.

 

โœ… Python 3.10** ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ฐ€์ƒ ํ™˜๊ฒฝ myenv01์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด

conda create -n myenv python=3.10

โญ --name ์˜ต์…˜์€ ํ™˜๊ฒฝ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๋Œ€์‹œ(--)๊ฐ€ ์žˆ๋Š” ๊ธด ํ˜•ํƒœ์˜ ์˜ต์…˜์ด๋ฉฐ,

๋‹จ์ถ•ํ˜• ์˜ต์…˜์œผ๋กœ๋Š” -n(๋Œ€์‹œ ํ•˜๋‚˜)๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ๊ฐ€์ƒ ํ™˜๊ฒฝ ํ™œ์„ฑํ™”

์ƒ์„ฑํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค.

conda activate myenv

ํ„ฐ๋ฏธ๋„์— (myenv)์™€ ๊ฐ™์ด ํ‘œ์‹œ๋˜๋ฉฐ, myenv ๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

3. ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌ

๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ conda install ๋ช…๋ น์–ด๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

conda install requests

์œ„ ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ myenv ํ™˜๊ฒฝ์—๋งŒ requests ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

โœ… conda์™€ pip์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ

Conda ํ™˜๊ฒฝ์—์„œ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, pip๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. Conda์™€ pip๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ pip install์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

pip install some_package

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•ด๋‹น ํŒจํ‚ค์ง€๋Š” myenv ํ™˜๊ฒฝ ๋‚ด์—๋งŒ ์„ค์น˜๋˜๋ฉฐ, ์‹œ์Šคํ…œ ์ „์—ญ ํ™˜๊ฒฝ์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.

4. ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋น„ํ™œ์„ฑํ™”

๊ฐ€์ƒ ํ™˜๊ฒฝ ์‚ฌ์šฉ์„ ๋งˆ์ณค์œผ๋ฉด, conda deactivate ๋ช…๋ น์–ด๋กœ ํ™˜๊ฒฝ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‹œ์Šคํ…œ ๊ธฐ๋ณธ ํ™˜๊ฒฝ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

conda deactivate

5. ๊ฐ€์ƒ ํ™˜๊ฒฝ ๊ด€๋ฆฌ

โœ… ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋ชฉ๋ก ํ™•์ธ

ํ˜„์žฌ ์ƒ์„ฑ๋œ ๋ชจ๋“  ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™•์ธํ•˜๋ ค๋ฉด conda env list ๋˜๋Š” conda info --envs ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

conda env list

โœ… ๊ฐ€์ƒ ํ™˜๊ฒฝ ์‚ญ์ œ

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์€ conda remove --name myenv --all ๋ช…๋ น์–ด๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

conda remove --name myenv --all

๐ŸŽˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ์˜ ์žฅ์ 

  • ํ”„๋กœ์ ํŠธ ๋…๋ฆฝ์„ฑ: ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ํ•„์š”ํ•œ ํŒจํ‚ค์ง€์™€ Python ๋ฒ„์ „์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด, ์ถฉ๋Œ ์—†์ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฒ„์ „ ์ œ์–ด: ํŠน์ • ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ Python ๋ฐ ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ๊ณ ์ •ํ•˜์—ฌ ์ž‘์—… ์žฌํ˜„์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์‹œ์Šคํ…œ ๋ณดํ˜ธ: ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ Python ํ™˜๊ฒฝ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์‹œ์Šคํ…œ ์ „๋ฐ˜์˜ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

Miniconda๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ ๊ด€๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ๊ฐ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์ผ๊ด€๋œ ์ž‘์—… ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

๐ŸŽˆ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (External Libraries)

Python์˜ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ ํŠน์ • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŒจํ‚ค์ง€๋กœ, ๊ธฐ๋ณธ ์„ค์น˜๋œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„, ์›น ์Šคํฌ๋ž˜ํ•‘, HTTP ์š”์ฒญ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์— ์œ ์šฉํ•˜๋ฉฐ, pip ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ์„ค์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.์„ค์น˜ ํ›„, import ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

1. pandas

๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

pandas๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์กฐ์ž‘์— ์œ ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํ…Œ์ด๋ธ” ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ์— ํŽธ๋ฆฌํ•˜๋‹ค. ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„(DataFrame)์ด๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์„ค์น˜ ๋ช…๋ น์–ด: pip install pandas
import pandas as pd

# ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ
data = {'Name': ['Karina', 'Winter', 'Ningning', 'Giselle'], 'Age': [24, 23, 21, 23]}
df = pd.DataFrame(data)
print(df)

# ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ํŠน์ • ์—ด ์ถœ๋ ฅ
print(df['Name'])  # Output: Name ์—ด์˜ ๊ฐ’

# ๊ธฐ์ดˆ ํ†ต๊ณ„ ์ •๋ณด ์ถœ๋ ฅ
print(df.describe())  # ๋ฐ์ดํ„ฐ์˜ ํ†ต๊ณ„ ์š”์•ฝ ์ •๋ณด

# DataFrame์„ Excel ํŒŒ์ผ๋กœ ์ €์žฅ
df.to_excel('aespa_data.xlsx', index=False)
  • to_excel() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DataFrame์„ Excel ํŒŒ์ผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.( openpyxl ๋˜๋Š” xlsxwriter ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜)
  • ์„ค์น˜ ๋ช…๋ น์–ด: pip install openpyxl
  •  index=False: ์ด ์˜ต์…˜์€ DataFrame์˜ ์ธ๋ฑ์Šค๋ฅผ ํŒŒ์ผ์— ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋„๋ก ์„ค์ •ํ•œ๋‹ค. ๋งŒ์•ฝ ์ธ๋ฑ์Šค๋ฅผ ํฌํ•จํ•˜๋ ค๋ฉด index=True๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜, ์˜ต์…˜์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.

โญ ํ„ฐ๋ฏธ๋„ ์ถœ๋ ฅ ๊ฒฐ๊ณผ

2. requests

HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. 

HTTP ์š”์ฒญ์„ ์‰ฝ๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์›น API๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ์›น ํŽ˜์ด์ง€์˜ HTML์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

  • ์„ค์น˜ ๋ช…๋ น์–ด: pip install requests

โœ… GET ์š”์ฒญ 

import requests

response = requests.get("https://api.github.com")
print(response.status_code)   # ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ ์ถœ๋ ฅ
print(response.json())        # JSON ํ˜•์‹์˜ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ

 

 

  • requests.get()๋Š” GET ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์„œ๋“œ.
  • https://api.github.com์€ GitHub์˜ API ์—”๋“œํฌ์ธํŠธ๋กœ, ๊ธฐ๋ณธ์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • response.status_code: HTTP ์ƒํƒœ ์ฝ”๋“œ ์ถœ๋ ฅ. 200์€ ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
  • response.json(): JSON ํ˜•์‹์œผ๋กœ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

โœ… POST ์š”์ฒญ 

import requests

data = {'key': 'value'}
response = requests.post("https://httpbin.org/post", data=data)
print(response.json())        # JSON ํ˜•์‹์˜ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ

 

 

  • requests.post(): POST ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋กœ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉํ•จ.
  • data=data: ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ์ฝ”๋“œ์—์„œ๋Š” {'key': 'value'}๋ผ๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ์ „์†ก.
  • https://httpbin.org/post: httpbin.org๋Š” ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค๋กœ, ์š”์ฒญ์„ ๊ทธ๋Œ€๋กœ ๋˜๋Œ๋ ค์ค€๋‹ค.
  • response.json(): JSON ํ˜•์‹์œผ๋กœ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

3. tqdm

๋ฐ˜๋ณต ์ž‘์—…์˜ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.

  • ์„ค์น˜ ๋ช…๋ น์–ด: pip install tqdm

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, 10๋ฒˆ์˜ ๋ฐ˜๋ณต ์ž‘์—…์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ๊ฐ ์ž‘์—… ์‚ฌ์ด์— 0.1์ดˆ์”ฉ ์ง€์—ฐ๋˜๋ฉฐ ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ”๊ฐ€ ์กฐ๊ธˆ์”ฉ ์ฑ„์›Œ์ง€๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

from tqdm import tqdm
import time

# tqdm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต ์ž‘์—…์— ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ” ์ ์šฉ
for i in tqdm(range(10)):
    time.sleep(0.1)  # ์ž‘์—…์„ ์ง€์—ฐ์‹œ์ผœ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ
  • for i in tqdm(range(10)): range(10)์€ 0๋ถ€ํ„ฐ 9๊นŒ์ง€ 10๋ฒˆ ๋ฐ˜๋ณต๋˜๋Š” ๋ฃจํ”„๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, tqdm์„ ํ†ตํ•ด ๊ฐ ๋ฐ˜๋ณต์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค.
  • time.sleep(0.1): ๊ฐ ๋ฐ˜๋ณต ์‚ฌ์ด์— 0.1์ดˆ์˜ ์ง€์—ฐ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด ์ง€์—ฐ์ด ์—†์œผ๋ฉด ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ”๊ฐ€ ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€, ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.

4. numpy

๋ฐฐ์—ด ๋ฐ ํ–‰๋ ฌ ์—ฐ์‚ฐ์— ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ๊ณผํ•™ ๊ณ„์‚ฐ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

  • ์„ค์น˜ ๋ช…๋ น์–ด: pip install numpy
import numpy as np

# ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐ ์—ฐ์‚ฐ
array = np.array([1, 2, 3, 4])
print(array * 2)  # Output: [2 4 6 8]

# 2์ฐจ์› ๋ฐฐ์—ด ์ƒ์„ฑ
matrix = np.array([[1, 2], [3, 4]])
print(matrix)

5. matplotlib

๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ๊ทธ๋ž˜ํ”„์™€ ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.

  • ์„ค์น˜ ๋ช…๋ น์–ด: pip install matplotlib
import matplotlib.pyplot as plt

# ๊ฐ„๋‹จํ•œ ๋ผ์ธ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Simple Line Plot')
plt.show()
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

๐ŸŽˆ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Standard Libraries)

Python์€ ๋‹ค์–‘ํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ถ”๊ฐ€ ์„ค์น˜ ์—†์ด๋„ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํŒŒ์ผ ์ž…์ถœ๋ ฅ, ๋„คํŠธ์›Œํ‚น, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ๊ด€๋ฆฌ ๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, import ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Python์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ณต์žกํ•œ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

01. math: ์ˆ˜ํ•™ ๊ด€๋ จ ํ•จ์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ์ œ๊ณต.

import math

# ์ œ๊ณฑ๊ทผ ๊ณ„์‚ฐ
print(math.sqrt(16))  # Output: 4.0

# ์›์ฃผ์œจ (pi) ์ƒ์ˆ˜ ์‚ฌ์šฉ
print(math.pi)  # Output: 3.141592653589793

# ์‚ผ๊ฐ ํ•จ์ˆ˜ ๊ณ„์‚ฐ
angle = math.radians(90)  # ๊ฐ๋„๋ฅผ ๋ผ๋””์•ˆ์œผ๋กœ ๋ณ€ํ™˜
print(math.sin(angle))  # Output: 1.0

 

02. datetime: ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆ.

import datetime

# ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ถœ๋ ฅ
now = datetime.datetime.now()
print(now)  # ์˜ˆ: 2024-11-02 22:12:01.519150

# ํŠน์ • ๋‚ ์งœ ์ƒ์„ฑ
birthday = datetime.datetime(2000, 1, 1)
print(birthday)  # Output: 2000-01-01 00:00:00

# ๋‚ ์งœ ์ฐจ์ด ๊ณ„์‚ฐ
today = datetime.date.today()
new_year = datetime.date(today.year + 1, 1, 1)
days_until_new_year = (new_year - today).days
print(f"New Year๊นŒ์ง€ ๋‚จ์€ ์ผ์ˆ˜: {days_until_new_year}์ผ")

03. random: ๋‚œ์ˆ˜ ์ƒ์„ฑ ๋ฐ ๋ฌด์ž‘์œ„ ์„ ํƒ ๊ธฐ๋Šฅ ์ œ๊ณต.

import random

# 1์—์„œ 10 ์‚ฌ์ด์˜ ์ž„์˜์˜ ์ •์ˆ˜ ์ƒ์„ฑ
print(random.randint(1, 10))  # Output: 1์—์„œ 10 ์‚ฌ์ด์˜ ๋ฌด์ž‘์œ„ ์ •์ˆ˜

# 0๊ณผ 1 ์‚ฌ์ด์˜ ์ž„์˜์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์„ฑ
print(random.random())  # Output: 0.0 <= N < 1.0

# ๋ฆฌ์ŠคํŠธ์—์„œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜ ์„ ํƒ
choices = ["apple", "banana", "cherry"]
print(random.choice(choices))  # Output: choices ์ค‘ ํ•˜๋‚˜

# ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ž๊ธฐ
deck = [1, 2, 3, 4, 5]
random.shuffle(deck)
print(deck)  # Output: ์˜ˆ: [3, 1, 5, 2, 4]

# 1์—์„œ 100 ์‚ฌ์ด์˜ ์ž„์˜์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์„ฑ
print(random.uniform(1, 100))  # Output: 1.0 <= N <= 100.0
  • random.randint(a, b): a์™€ b ์‚ฌ์ด์˜ ์ •์ˆ˜ ๋‚œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜.
  • random.random(): 0๊ณผ 1 ์‚ฌ์ด์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜.
  • random.choice(seq): ์‹œํ€€์Šค์—์„œ ๋ฌด์ž‘์œ„ ์š”์†Œ๋ฅผ ์„ ํƒ.
  • random.shuffle(seq): ์‹œํ€€์Šค์˜ ์š”์†Œ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ž์Œ.
  • random.uniform(a, b): a์™€ b ์‚ฌ์ด์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜.

์ด์™€ ๊ฐ™์ด random ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋ฌด์ž‘์œ„ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

04. glob: ํŒŒ์ผ ๊ฒฝ๋กœ ํŒจํ„ด ๋งค์นญ์„ ํ†ตํ•ด ํŠน์ • ํŒŒ์ผ ๋ชฉ๋ก์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๋ชจ๋“ˆ.

import glob

files = glob.glob('./*.py')  # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋“  .py ํŒŒ์ผ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ
print(files) # ํ„ฐ๋ฏธ๋„์— ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  .py ํŒŒ์ผ์ด ๋ฆฌ์ŠคํŠธ๋กœ ์ถœ๋ ฅ๋จ

 

05. json: JSON ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ JSON ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ. Python์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ JSON ํŒŒ์ผ๋กœ ์ €์žฅ

import json

aespa = {'karina': 24, 'winter': 23, 'ningning': 21, 'giselle': 23}

with open("./aespa.json", "wt") as f:
    json.dump(aespa, f)

 

  1. ํŒŒ์ผ ์—ด๊ธฐ: open("./aespa.json", "wt")๋กœ aespa.json ํŒŒ์ผ์„ ์“ฐ๊ธฐ ๋ชจ๋“œ๋กœ ์—ฝ๋‹ˆ๋‹ค.
  2. ํŒŒ์ผ ๊ฐ์ฒด ์ฐธ์กฐ: f ๋˜๋Š” aespa_file ๋ณ€์ˆ˜์— ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  3. JSON ๋ฐ์ดํ„ฐ ์ €์žฅ: json.dump(aespa, f)๋ฅผ ํ†ตํ•ด aespa ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ JSON ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

    * wt ๋ชจ๋“œ : wt๋Š” ํŒŒ์ผ์„ ์—ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“œ. wt๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JSON ํ˜•์‹์˜ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    w:์“ฐ๊ธฐ ๋ชจ๋“œ(write)๋กœ, ๊ธฐ์กด ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ๋‚ด์šฉ์„ ๋ฎ์–ด์“ฐ๊ณ , ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    t:ํ…์ŠคํŠธ ๋ชจ๋“œ(text). ์ด ๋ชจ๋“œ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ณดํ†ต w๋งŒ ์จ๋„ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค. 

    * f ํŒŒ์ผ ๊ฐ์ฒด : f๋Š” ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ, open() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ˜ํ™˜๋œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.๊ด€๋ก€์ ์œผ๋กœ ํŒŒ์ผ ์ž‘์—…์—์„œ๋Š” f๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ƒํ™ฉ์— ๋งž๋Š” ๋ณ€์ˆ˜๋ช…(aespa_file ๋“ฑ)์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋ช…ํ™•ํ•  ์ˆ˜ ์žˆ๋‹ค.

    * : with ๊ตฌ๋ฌธ ๋•๋ถ„์— ๋ธ”๋ก์ด ๋๋‚˜๋ฉด ํŒŒ์ผ์ด ์ž๋™์œผ๋กœ ๋‹ซํžŒ๋‹ค.

06. os: ๋ชจ๋“ˆ์€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—…, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ ‘๊ทผ ๋“ฑ ์šด์˜์ฒด์ œ์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต .

import os

# ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ
print(os.getcwd())  # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ ์ถœ๋ ฅ

# ์ƒˆ๋กœ์šด ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
os.mkdir("test_directory")

# ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
print(os.path.exists("test_directory"))  # Output: True

# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ ‘๊ทผ
home_directory = os.environ.get("HOME")
print(home_directory)

 

07. sys: Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต. ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ๋“ฑ์˜ ๊ธฐ๋Šฅ๋„ ํฌํ•จ

import sys

# Python ๋ฒ„์ „ ํ™•์ธ
print(sys.version)

# ๋ช…๋ น์ค„ ์ธ์ž ํ™•์ธ
print(sys.argv)  # ์˜ˆ: ['script_name.py', 'arg1', 'arg2']

# ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ
try:
    sys.exit("ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.")  # ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ์™€ ํ•จ๊ป˜ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
except SystemExit as e:
    print(e)

 

 

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

๐ŸŽˆ ๋‚ด์žฅํ•จ์ˆ˜

ํŒŒ์ด์ฌ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜๋“ค์ด ์žˆ์–ด ๋ณ„๋„์˜ ์„ค์น˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด์žฅ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ/์ถœ๋ ฅ, ์ˆ˜ํ•™ ๊ณ„์‚ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

 

- abs(): ์ˆซ์ž์˜ ์ ˆ๋Œ€๊ฐ’์„ ๋ฐ˜ํ•˜๋Š” ํ•จ์ˆ˜.

    print(abs(-5)) # ์ถœ๋ ฅ: 5

 

- all(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ) ์•ˆ์˜ ๋ชจ๋“  ๊ฐ’์ด ์ฐธ์ด๋ฉด True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

    print(all([True, 1, "hello"])) # ์ถœ๋ ฅ: True

 

- any(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด ์•ˆ์˜ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

    print(any([False, 0, None, "text"])) # ์ถœ๋ ฅ: True

 

- chr(): ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(chr(65))  # ์ถœ๋ ฅ: 'A'

 

- ord(): ๋ฌธ์ž์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(ord('A'))  # ์ถœ๋ ฅ: 65

 

- divmod(): ๋‘ ์ˆ˜๋ฅผ ๋‚˜๋ˆˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ํŠœํ”Œ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(divmod(10, 3))  # ์ถœ๋ ฅ: (3, 1)

 

- enumerate(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฆฌ์ŠคํŠธ ๋“ฑ)์—์„œ ์ธ๋ฑ์Šค์™€ ๊ฐ’์„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  fruits = ['apple', 'banana']
  for index, fruit in enumerate(fruits):
      print(index, fruit)
  # ์ถœ๋ ฅ:
  # 0 apple
  # 1 banana

 

- eval(): ๋ฌธ์ž์—ด ํ˜•ํƒœ์˜ ํ‘œํ˜„์‹์„ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜.

  print(eval("3 + 5"))  # ์ถœ๋ ฅ: 8

 

- filter(): ํ•จ์ˆ˜์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ํ•จ์ˆ˜.

  numbers = [1, 2, 3, 4, 5]
  even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
  print(even_numbers)  # ์ถœ๋ ฅ: [2, 4]

 

- hex(): ์ •์ˆ˜๋ฅผ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(hex(255))  # ์ถœ๋ ฅ: '0xff'

 

- id(): ๊ฐ์ฒด์˜ ๊ณ ์œ ํ•œ ID ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  a = 3
  print(id(a))  # ์ถœ๋ ฅ: ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’ (์˜ˆ: 140722945015568)

 

- int(): ๋ฌธ์ž์—ด์ด๋‚˜ ์‹ค์ˆ˜๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(int("10"))  # ์ถœ๋ ฅ: 10
  print(int(3.14))  # ์ถœ๋ ฅ: 3

 

- isinstance(): ์ธ์Šคํ„ด์Šค๊ฐ€ ํŠน์ • ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜.

  print(isinstance(5, int))  # ์ถœ๋ ฅ: True

 

- len(): ๊ฐ์ฒด(๋ฌธ์ž์—ด, ๋ฆฌ์ŠคํŠธ ๋“ฑ)์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(len("hello"))  # ์ถœ๋ ฅ: 5

 

- list(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(list("hello"))  # ์ถœ๋ ฅ: ['h', 'e', 'l', 'l', 'o']

 

- map(): ๋ฆฌ์ŠคํŠธ ๋“ฑ์˜ ๊ฐ ์š”์†Œ์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [1, 2, 3]
  print(list(map(str, numbers)))  # ์ถœ๋ ฅ: ['1', '2', '3']

 

- max(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์ตœ๋Œ“๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [10, 20, 30]
  print(max(numbers))  # ์ถœ๋ ฅ: 30

 

- min(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [10, 20, 30]
  print(min(numbers))  # ์ถœ๋ ฅ: 10

 

- pow(): x์˜ y ์ œ๊ณฑ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(pow(2, 3))  # ์ถœ๋ ฅ: 8

 

- range(): ์ •์ˆ˜ ๋ฒ”์œ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜.

  print(list(range(5)))  # ์ถœ๋ ฅ: [0, 1, 2, 3, 4]

 

- round(): ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ํ•จ์ˆ˜.

  print(round(3.14159, 2))  # ์ถœ๋ ฅ: 3.14

 

- sorted(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [5, 2, 9, 1]
  print(sorted(numbers))  # ์ถœ๋ ฅ: [1, 2, 5, 9]

 

- str(): ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  num = 100
  print(str(num))  # ์ถœ๋ ฅ: '100'

 

- sum(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [1, 2, 3, 4, 5]
  print(sum(numbers))  # ์ถœ๋ ฅ: 15

 

- tuple(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ํŠœํ”Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(tuple("hello"))  # ์ถœ๋ ฅ: ('h', 'e', 'l', 'l', 'o')

 

- zip(): ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ์„ ์ง์ง€์–ด์ฃผ๋Š” ํ•จ์ˆ˜.

  names = ["Alice", "Bob"]
  scores = [90, 85]
  print(list(zip(names, scores)))  # ์ถœ๋ ฅ: [('Alice', 90), ('Bob', 85)]
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

์˜ˆ์™ธ ์ฒ˜๋ฆฌ (Exception Handling)

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ์ฝ”๋“œ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

try, except, finally ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ์ฝ”๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. ๊ธฐ๋ณธ์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ

try:
    # ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฝ”๋“œ
except ExceptionType:
    # ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
else:
    # ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
finally:
    # ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ

 

  • try: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜, ์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋“ฑ์˜ ์ž‘์—…์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.
  • except: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ ์œ ํ˜•์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ except ๋ธ”๋ก์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • else: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. else๋Š” ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ, try ๋ธ”๋ก์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋œ๋‹ค.
  • finally: ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ํŒŒ์ผ์„ ์—ด์—ˆ๋‹ค๋ฉด ๋‹ซ๋Š” ์ž‘์—…์„ ์—ฌ๊ธฐ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

# ์˜ˆ์ œ ์ฝ”๋“œ 

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ˆซ์ž๋ฅผ 100์œผ๋กœ ๋‚˜๋ˆ„๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ,์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ValueError์™€ ZeroDivisionError ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ

try:
    num = int(input("์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "))
    result = 100 / num
except ValueError:
    print("์œ ํšจํ•œ ์ˆซ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
except ZeroDivisionError:
    print("0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
else:
    print(f"๊ฒฐ๊ณผ: {result}")
finally:
    print("ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
  • try ๋ธ”๋ก์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, 100์„ ๊ทธ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰.
  • except ValueError ๋ธ”๋ก์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋ฉฐ, "์œ ํšจํ•œ ์ˆซ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.
  • except ZeroDivisionError ๋ธ”๋ก์€ ์‚ฌ์šฉ์ž๊ฐ€ 0์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋ฉฐ, "0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.
  • else ๋ธ”๋ก์€ ์˜ˆ์™ธ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋ฉฐ, ๋‚˜๋ˆ—์…ˆ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ.
  • finally ๋ธ”๋ก์€ ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋ฉฐ, "ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.

์ด์™€ ๊ฐ™์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์€ ์˜ค๋ฅ˜ ์ƒํ™ฉ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

1. ๋ชจ๋“ˆ (Modules)

๋ชจ๋“ˆ์€ Python ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ๋กœ, ๋‹ค๋ฅธ Python ํŒŒ์ผ์—์„œ ์ด๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“ˆ์€ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ์ฝ”๋“œ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค. ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด import ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

# example_module.py ํŒŒ์ผ

def greet(name):  
print(f"Hello, {name}!")

๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ:

import example_module
example_module.greet("Cheolsu")  # Output: Hello, Cheolsu!

 

2. ํŒจํ‚ค์ง€ (Packages)

ํŒจํ‚ค์ง€๋Š” ๋ชจ๋“ˆ๋“ค์„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํŒจํ‚ค์ง€์˜ ๊ฐ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” __init__.py ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด Python์ด ์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํŒจํ‚ค์ง€๋กœ ์ธ์‹ํ•˜๊ฒŒ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์ฝ”๋“œ ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

my_package/
โ”œโ”€โ”€ __init__.py
โ”œโ”€โ”€ module1.py
โ””โ”€โ”€ module2.py

 

๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์˜ˆ์‹œ:

from my_package import module1
module1.some_function()

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•
d = Dog("Buddy")
d.bark()  # Output: Buddy says woof!

1. ํด๋ž˜์Šค์˜ ์ •์˜

ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ด๋‹ค. ํด๋ž˜์Šค๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ‹€๋กœ ํ™œ์šฉ๋œ๋‹ค. Python์—์„œ ํด๋ž˜์Šค๋Š” class ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, {self.name}!")

Person ํด๋ž˜์Šค๋Š” ์ด๋ฆ„๊ณผ ๋‚˜์ด๋ฅผ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง€๋ฉฐ, greet ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ธ์‚ฌ๋ง์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

* self๋Š” Python์—์„œ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ์ž์‹ ์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ํŠน๋ณ„ํ•œ ๋ณ€์ˆ˜๋‹ค. ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ self๋ฅผ ์ ์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ ์†์„ฑ์ด๋‚˜ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. JavaScript์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ this๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋Š”๋ฐ, Python์—์„œ๋Š” self๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

p = Person("Cheolsu", 20)
p.greet()  # Output: Hello, Cheolsu!

2. __init__ ๋ฉ”์„œ๋“œ (Initializer)

__init__ ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ํŠน๋ณ„ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋ฉฐ, ์†์„ฑ์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ self๋Š” ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, Python ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ์—์„œ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

class Animal:
    def __init__(self, species, sound):
        self.species = species
        self.sound = sound

    def make_sound(self):
        print(f"{self.species} makes {self.sound}")
a = Animal("Cat", "meow")
a.make_sound()  # Output: Cat makes meow

3. ํด๋ž˜์Šค ์†์„ฑ๊ณผ ์ธ์Šคํ„ด์Šค ์†์„ฑ

ํด๋ž˜์Šค ์†์„ฑ์€ ํด๋ž˜์Šค ์ž์ฒด์— ์†ํ•˜๋Š” ๋ฐ˜๋ฉด, ์ธ์Šคํ„ด์Šค ์†์„ฑ์€ ํŠน์ • ์ธ์Šคํ„ด์Šค์— ์†ํ•œ๋‹ค. ํด๋ž˜์Šค ์†์„ฑ์€ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๊ณต์œ ๋˜๋ฉฐ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ํด๋ž˜์Šค๋ช…์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

class Car:
    wheels = 4  # ํด๋ž˜์Šค ์†์„ฑ

    def __init__(self, color):
        self.color = color  # ์ธ์Šคํ„ด์Šค ์†์„ฑ
print(Car.wheels)  # Output: 4
car1 = Car("Red")
print(car1.color)  # Output: Red

4. ๋ฉ”์„œ๋“œ(Method)

ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์ •์˜๋œ ํ•จ์ˆ˜๋Š” ๋ฉ”์„œ๋“œ๋ผ ๋ถˆ๋ฆฌ๋ฉฐ, ๊ฐ์ฒด์˜ ๋™์ž‘์„ ์ •์˜ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋ฉฐ, ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name} says woof!")

5. ์ƒ์†(Inheritance)

์ƒ์†์€ ๊ธฐ์กด ํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ƒ์†์„ ํ†ตํ•ด ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค.

class Animal:
    def __init__(self, species):
        self.species = species

    def speak(self):
        return "Sound"

class Dog(Animal):
    def speak(self):
        return "Bark"
d = Dog("Dog")
print(d.speak())  # Output: Bark

6. super() ํ•จ์ˆ˜

ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ super() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

class Bird(Animal):
    def __init__(self, species, can_fly):
        super().__init__(species)
        self.can_fly = can_fly        

7. ๋งค์ง ๋ฉ”์„œ๋“œ (Magic Method)

๋งค์ง ๋ฉ”์„œ๋“œ๋Š” ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋กœ, ๋‘ ์–ธ๋”์Šค์ฝ”์–ด(__)๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚˜๋Š” ๋ฉ”์„œ๋“œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, __str__์€ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, __len__์€ ๊ฐ์ฒด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

class Book:
    def __init__(self, title, pages):
        self.title = title
        self.pages = pages

    def __str__(self):
        return f"{self.title} ({self.pages} pages)"
b = Book("Python Basics", 250)
print(b)  # Output: Python Basics (250 pages)

8. ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ

ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” @classmethod ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ์ •์˜ํ•˜๋ฉฐ, ํด๋ž˜์Šค ์ž์ฒด์— ๋Œ€ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฐ˜๋ฉด, ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

class MyClass:
    @classmethod
    def class_method(cls):
        print("Class method called")

9. ์ •์  ๋ฉ”์„œ๋“œ (Static Method)

์ •์  ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ์ธ์Šคํ„ด์Šค๋‚˜ ํด๋ž˜์Šค์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. @staticmethod ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ •์˜ํ•˜๋ฉฐ, ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

class Math:
    @staticmethod
    def add(a, b):
        return a + b
print(Math.add(3, 5))  # Output: 8

10. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์ง•: ์บก์Šํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ

  • ์บก์Šํ™”๋Š” ๊ฐ์ฒด์˜ ์„ธ๋ถ€ ๊ตฌํ˜„์„ ๊ฐ์ถ”๊ณ , ์™ธ๋ถ€์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ณต์žกํ•œ ๋กœ์ง์„ ์•Œ ํ•„์š” ์—†์ด ํ•„์š”ํ•œ ์ •๋ณด์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒ์†์€ ๊ธฐ์กด ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›์•„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค.
  • ๋‹คํ˜•์„ฑ์€ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํŠน์ง•์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๊ฐ€ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด๋„ ๊ฐ ํด๋ž˜์Šค์˜ ๋™์ž‘์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

ํ•จ์ˆ˜ (Functions)

1. ํ•จ์ˆ˜ ์ •์˜ (Defining a Function)

ํ•จ์ˆ˜๋Š” ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. def ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉฐ, ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ๊ด„ํ˜ธ ์•ˆ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ๋˜์—ˆ์„ ๋•Œ์—๋งŒ ์‹คํ–‰๋œ๋‹ค.

def greet(name):
    print(f"์•ˆ๋…•ํ•˜์„ธ์š”, {name}๋‹˜!")

greet("์ฒ ์ˆ˜")  # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜์„ธ์š”, ์ฒ ์ˆ˜๋‹˜!

2. ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ž (Parameters and Arguments)

ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์™ธ๋ถ€์—์„œ ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์„ ์ธ์ž๋ผ๊ณ  ํ•œ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.

def add(a, b):
    return a + b

result = add(3, 4)
print(result)  # ์ถœ๋ ฅ: 7

3. ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ (Default Parameters)

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํ•ด๋‹น ์ธ์ž๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋œ๋‹ค.

๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ๋’ค์— ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค.

def greet(name="์นœ๊ตฌ"):
    print(f"์•ˆ๋…•ํ•˜์„ธ์š”, {name}๋‹˜!")

greet()  # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜์„ธ์š”, ์นœ๊ตฌ๋‹˜!
greet("์˜ํฌ")  # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ํฌ๋‹˜!

1. ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ •์˜ ๋ฐ ๊ทœ์น™

๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋จผ์ € ์ž‘์„ฑ๋˜๊ณ , ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋’ค์— ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ์•ž์— ์œ„์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

def add(a, b=3):
    return a + b
    
# a ๊ฐ’๋งŒ ์ „๋‹ฌํ•˜๋ฉด b๋Š” ๊ธฐ๋ณธ๊ฐ’ 3์„ ์‚ฌ์šฉ
print(add(2))  # ์ถœ๋ ฅ: 5

์ด ํ•จ์ˆ˜๋Š” a๋Š” ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ณ , b๋Š” ๊ธฐ๋ณธ๊ฐ’ 3์„ ๊ฐ€์ง„๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ b ๊ฐ’์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

์ž˜๋ชป๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์‹œ:: ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ์•ž์— ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค.

def add(a=1, b):
    return a + b

print(add(b=3))  
# ์˜ค๋ฅ˜ ๋ฐœ์ƒ: ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ b๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ a ๋’ค์— ์œ„์น˜ํ•ด ์žˆ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ.
# ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ b๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ a ์•ž์— ์œ„์น˜ํ•ด์•ผ ํ•จ.

# ์ˆ˜์ •๋œ ํ•จ์ˆ˜
def add(b, a=1):
    return a + b

print(add(b=3))  # ์ถœ๋ ฅ: 4

 

4. ๋ฐ˜ํ™˜๊ฐ’ (Return Value)

ํ•จ์ˆ˜๋Š” return ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. return์„ ๋งŒ๋‚˜๋ฉด ํ•จ์ˆ˜๋Š” ์‹คํ–‰์„ ์ข…๋ฃŒํ•˜๊ณ , ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฐ˜ํ™˜๋œ ๊ฐ’์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ณ„์‚ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

def multiply(a, b):
    return a * b

result = multiply(5, 6)
print(result)  # ์ถœ๋ ฅ: 30

5. ๊ฐ€๋ณ€ ์ธ์ž (Variable-length Arguments)

 

๊ฐ€๋ณ€ ์ธ์ž๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์„์ง€ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

*args๋Š” ์œ„์น˜ ๊ธฐ๋ฐ˜์˜ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ, **kwargs๋Š” ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜์˜ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

*args

  • *args๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์œ„์น˜ ์ธ์ž๋ฅผ ํ•˜๋‚˜์˜ ํŠœํ”Œ๋กœ ๋ฐ›๋Š”๋‹ค.
  • ์ธ์ž ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
def sum_all(*args):
    return sum(args)

result = sum_all(1, 2, 3, 4, 5)
print(result)  # ์ถœ๋ ฅ: 15

 

**kwargs

  • **kwargs๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚ค์›Œ๋“œ ์ธ์ž๋ฅผ ํ•˜๋‚˜์˜ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ฐ›๋Š”๋‹ค.
  • kwargs.items()๋Š” ๋”•์…”๋„ˆ๋ฆฌ์˜ ํ‚ค์™€ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="์˜ํฌ", age=30)  
# ์ถœ๋ ฅ:
# name: ์˜ํฌ
# age: 30

 

+) JavaScript์—์„œ๋„ ์œ ์‚ฌํ•˜๊ฒŒ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž(...)๋Š” Python์˜ *args์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ, ๊ฐ์ฒด๋กœ ๋ฐ›์€ ์ธ์ž๋Š” kwargs์™€ ๋น„์Šทํ•˜๋‹ค.

// JavaScript์—์„œ ๊ฐ€๋ณ€ ์ธ์ž
function sumAll(...args) {
    return args.reduce((acc, cur) => acc + cur, 0);
}

console.log(sumAll(1, 2, 3, 4, 5));  // ์ถœ๋ ฅ: 15

// JavaScript์—์„œ ๊ฐ์ฒด ํ‚ค-๊ฐ’ ๋ฐ›๊ธฐ
function printInfo(obj) {
    for (let key in obj) {
        console.log(`${key}: ${obj[key]}`);
    }
}

printInfo({ name: "์˜ํฌ", age: 30 });
// ์ถœ๋ ฅ:// name: ์˜ํฌ// age: 30

6. ๋žŒ๋‹ค ํ•จ์ˆ˜ (Lambda Functions)

๋žŒ๋‹ค ํ•จ์ˆ˜๋Š” ์ต๋ช… ํ•จ์ˆ˜๋กœ, ์ด๋ฆ„ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜์ด๋‹ค. ์ฃผ๋กœ ์ผํšŒ์„ฑ ํ•จ์ˆ˜๋‚˜ ์ฝ”๋“œ๊ฐ€ ์งง์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. lambda ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์„ ๊ฐ„๋‹จํžˆ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ๋žŒ๋‹ค ํ•จ์ˆ˜ ์˜ˆ์‹œ
square = lambda x: x ** 2
print(square(5))  # ์ถœ๋ ฅ: 25

# ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ
def square_fn(x):
    return x ** 2

print(square_fn(5))  # ์ถœ๋ ฅ: 25
  • lambda x : x๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜. ํ•จ์ˆ˜์˜ ์ธ์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • x ** 2 : **๋Š” ์ œ๊ณฑ ์—ฐ์‚ฐ์ž๋กœ, x์˜ ์ œ๊ณฑ์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ x๊ฐ€ 5๋ผ๋ฉด x ** 2๋Š” 5 ** 2๊ฐ€ ๋˜์–ด 25๊ฐ€ ๋œ๋‹ค.
  • x ** 3์€ x์˜ ์„ธ์ œ๊ณฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, x๋ฅผ 3๋ฒˆ ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. x**3์€ 125(5์˜ ์„ธ์ œ๊ณฑ)๊ฐ€ ๋œ๋‹ค.
๋ฐ˜์‘ํ˜•

+ Recent posts