λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Language/Python

[Python]파이썬 λͺ¨λ“ˆ: import와 from의 ν™œμš©

by YJ Dev 2024. 4. 22.
728x90
λ°˜μ‘ν˜•
SMALL

이번 ν¬μŠ€νŒ…μ—μ„œλŠ” pythonμ—μ„œ λͺ¨λ“ˆκ³Ό import에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. python μ—μ„œ λͺ¨λ“ˆμ€ μ½”λ“œλ₯Ό κ΅¬μ„±ν•˜λŠ” 블둝이며, μž¬μ‚¬μš© κ°€λŠ₯ν•œ ν•¨μˆ˜, 클래슀, λ³€μˆ˜ 등을 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆμ„ 효율적으둜 ν™œμš©ν•˜μ—¬ μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±κ³Ό μœ μ§€λ³΄μˆ˜μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“ˆ


1. λͺ¨λ“ˆ λΆˆλŸ¬μ˜€κΈ°πŸ“

파이썬 λͺ¨λ“ˆμ΄λž€ ν•œ λ§ˆλ””λ‘œ 파이썬 파일(.py)μž…λ‹ˆλ‹€. μ–Έμ œλ“ μ§€ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ³€μˆ˜λ‚˜ ν•¨μˆ˜ λ˜λŠ” 클래슀λ₯Ό λͺ¨μ•„ 놓은 νŒŒμΌμ„ λͺ¨λ“ˆμ΄λΌκ³  ν•©λ‹ˆλ‹€.
νŒŒμ΄μ¬μ—μ„œλŠ” λͺ¨λ“ˆμ„ λΆˆλŸ¬μ˜€λŠ” 데에 λ„€ 가지 μ£Όμš”ν•œ 방식
이 μžˆμŠ΅λ‹ˆλ‹€: import, from λͺ¨λ“ˆ import 이름, from λͺ¨λ“ˆ import *, import λͺ¨λ“ˆ as λ³„μΉ­μž…λ‹ˆλ‹€.

  • import 방식: import 문을 μ‚¬μš©ν•˜μ—¬ λͺ¨λ“ˆ 전체λ₯Ό 뢈러올 수 μžˆμŠ΅λ‹ˆλ‹€. 이 방식을 μ‚¬μš©ν•˜λ©΄ λͺ¨λ“ˆ 이름을 μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή λͺ¨λ“ˆμ— μ •μ˜λœ ν•¨μˆ˜, 클래슀 등을 ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, import mathλ₯Ό μ‚¬μš©ν•˜μ—¬ math λͺ¨λ“ˆμ„ 뢈러온 ν›„, math.sqrt()와 같이 λͺ¨λ“ˆ 이름을 μ ‘λ‘μ‚¬λ‘œ μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή λͺ¨λ“ˆμ˜ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.
# import 방식 예제
# λͺ¨λ“ˆ 전체λ₯Ό λΆˆλŸ¬μ™€μ„œ λͺ¨λ“ˆ 이름을 μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή λͺ¨λ“ˆμ˜ κΈ°λŠ₯을 ν˜ΈμΆœν•˜λŠ” 방식
import math

# math λͺ¨λ“ˆμ˜ sqrt ν•¨μˆ˜ μ‚¬μš© 예제
result = math.sqrt(16)
print("Square root of 16:", result)
  • from λͺ¨λ“ˆ import 이름 방식: from ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λ“ˆμ—μ„œ νŠΉμ •ν•œ ν•¨μˆ˜, 클래슀 등을 κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 방식을 μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή λͺ¨λ“ˆμ˜ 이름을 μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ 직접 ν•¨μˆ˜λ‚˜ 클래슀λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, from math import sqrtλ₯Ό μ‚¬μš©ν•˜μ—¬ math λͺ¨λ“ˆμ—μ„œ sqrt ν•¨μˆ˜λ₯Ό κ°€μ Έμ˜¨ ν›„, λ°”λ‘œ sqrt()와 같이 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.
# from λͺ¨λ“ˆ import 이름 방식 예제
# λͺ¨λ“ˆμ—μ„œ νŠΉμ •ν•œ ν•¨μˆ˜λ‚˜ λ³€μˆ˜ 등을 κ°€μ Έμ™€μ„œ λ°”λ‘œ μ‚¬μš©ν•˜λŠ” 방식
from math import sqrt

# sqrt ν•¨μˆ˜λ₯Ό λ°”λ‘œ μ‚¬μš©ν•˜λŠ” 예제
result = sqrt(25)
print("Square root of 25:", result)
  • from λͺ¨λ“ˆ import * 방식: from ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λ“ˆ λ‚΄μ˜ λͺ¨λ“  것을 κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 방식은 ν•΄λ‹Ή λͺ¨λ“ˆμ— μ •μ˜λœ λͺ¨λ“  ν•¨μˆ˜, 클래슀, λ³€μˆ˜ 등을 ν˜„μž¬μ˜ 이름 κ³΅κ°„μœΌλ‘œ κ°€μ Έμ˜΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ 같은 이름을 μ‚¬μš©ν•  경우 좩돌이 λ°œμƒν•  수 μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • * : *κΈ°ν˜ΈλŠ” μ»΄ν“¨ν„°μ—μ„œ 'λͺ¨λ“  것'을 μ˜λ―Έν•©λ‹ˆλ‹€.
    • from λͺ¨λ“ˆ import *λ°©μ‹μ˜ 주의점
      • λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ 같은 이름을 μ‚¬μš©ν•  경우 좩돌이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 두 개의 λͺ¨λ“ˆμ—μ„œ 각각 foo() ν•¨μˆ˜κ°€ μ •μ˜λ˜μ–΄ 있고, 이λ₯Ό λͺ¨λ‘ from λͺ¨λ“ˆ import * λ°©μ‹μœΌλ‘œ κ°€μ Έμ˜¨λ‹€λ©΄, 좩돌이 λ°œμƒν•˜μ—¬ μ˜ˆμƒμΉ˜ λͺ»ν•œ λ™μž‘μ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      • μ½”λ“œμ˜ 가독성이 λ–¨μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆ λ‚΄μ˜ λͺ¨λ“  것을 ν˜„μž¬μ˜ 이름 κ³΅κ°„μœΌλ‘œ κ°€μ Έμ˜€λ©΄, μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³  μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ–΄λ €μ›Œμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
# from λͺ¨λ“ˆ import * 방식 예제
# λͺ¨λ“ˆ λ‚΄μ˜ λͺ¨λ“  ν•¨μˆ˜, 클래슀, λ³€μˆ˜ 등을 ν˜„μž¬μ˜ 이름 κ³΅κ°„μœΌλ‘œ κ°€μ Έμ™€μ„œ μ‚¬μš©ν•˜λŠ” 방식
from math import *

# math λͺ¨λ“ˆμ˜ λͺ¨λ“  ν•¨μˆ˜λ₯Ό ν˜„μž¬μ˜ 이름 κ³΅κ°„μœΌλ‘œ κ°€μ Έμ™€μ„œ μ‚¬μš©ν•˜λŠ” 예제
result1 = sqrt(36)
result2 = pow(2, 3)
print("Square root of 36:", result1)
print("2 to the power of 3:", result2)
  • import λͺ¨λ“ˆ as 별칭 방식: import 문을 μ‚¬μš©ν•˜μ—¬ λͺ¨λ“ˆμ„ 뢈러올 λ•Œ, ν•΄λ‹Ή λͺ¨λ“ˆμ˜ 이름을 λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ λͺ¨λ“ˆ 이름이 λ„ˆλ¬΄ κΈΈκ±°λ‚˜ μΆ©λŒμ„ ν”Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, import numpy as np와 같이 μ‚¬μš©ν•˜μ—¬ numpy λͺ¨λ“ˆμ„ npλΌλŠ” 짧은 μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
# import λͺ¨λ“ˆ as 별칭 방식 예제
# λͺ¨λ“ˆ 이름을 λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ μ§€μ •ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 방식
import math as m

# math λͺ¨λ“ˆμ„ mμ΄λΌλŠ” μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 예제
result = m.sqrt(49)
print("Square root of 49 using 'm':", result)


μ΄λ ‡κ²Œ λ„€ 가지 λ°©μ‹μœΌλ‘œ λͺ¨λ“ˆμ„ λΆˆλŸ¬μ™€μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•˜λŠ” 상황과 개발 μŠ€νƒ€μΌμ— 맞게 μ μ ˆν•œ 방식을 μ„ νƒν•˜μ—¬ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


2. __name__πŸ§™‍♂️

νŒŒμ΄μ¬μ—μ„œλŠ” `__name__`μ΄λΌλŠ” νŠΉλ³„ν•œ λ³€μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 λ³€μˆ˜λŠ” ν˜„μž¬ λͺ¨λ“ˆμ΄ 직접 μ‹€ν–‰λ˜λŠ”μ§€, λ‹€λ₯Έ λͺ¨λ“ˆμ— μ˜ν•΄ λΆˆλŸ¬μ™€μ Έμ„œ μ‚¬μš©λ˜λŠ”μ§€λ₯Ό ꡬ뢄할 λ•Œ μœ μš©ν•˜κ²Œ ν™œμš©λ©λ‹ˆλ‹€. 주둜 λͺ¨λ“ˆμ΄ 직접 싀행될 λ•Œ μˆ˜ν–‰ν•  μž‘μ—…μ„ μ •μ˜ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

# __name__ λ³€μˆ˜ ν™œμš© 예제

# λͺ¨λ“ˆμ΄ 직접 싀행될 λ•Œμ˜ 예제
if __name__ == "__main__":
    print("이 λͺ¨λ“ˆμ΄ 직접 μ‹€ν–‰λ©λ‹ˆλ‹€.")
else:
    print("이 λͺ¨λ“ˆμ΄ λ‹€λ₯Έ λͺ¨λ“ˆμ— μ˜ν•΄ λΆˆλŸ¬μ™€μ‘ŒμŠ΅λ‹ˆλ‹€.")

이 μ½”λ“œλŠ” ν˜„μž¬ λͺ¨λ“ˆμ΄ 직접 싀행될 λ•Œμ™€ λ‹€λ₯Έ λͺ¨λ“ˆμ— μ˜ν•΄ λΆˆλŸ¬μ™€μ§ˆ λ•Œλ₯Ό κ΅¬λΆ„ν•˜μ—¬ μ‹€ν–‰ν•©λ‹ˆλ‹€. __name__ λ³€μˆ˜κ°€ "__main__"일 λ•ŒλŠ” ν˜„μž¬ λͺ¨λ“ˆμ΄ 직접 μ‹€ν–‰λ˜μ—ˆμŒμ„ μ˜λ―Έν•˜λ©°, μ΄λ•Œ 싀행될 μ½”λ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. λ§Œμ•½ λ‹€λ₯Έ λͺ¨λ“ˆμ— μ˜ν•΄ λΆˆλŸ¬μ™€μ§ˆ λ•ŒλŠ” __name__ λ³€μˆ˜κ°€ ν˜„μž¬ λͺ¨λ“ˆμ˜ μ΄λ¦„μœΌλ‘œ μ„€μ •λ˜λ―€λ‘œ, 이 κ²½μš°μ— 싀행될 μ½”λ“œλ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

# __name__ λ³€μˆ˜λ₯Ό ν™œμš©ν•œ 예제

# λͺ¨λ“ˆ λ‚΄μ˜ ν•¨μˆ˜ μ •μ˜
def greet(name):
    """
    주어진 이름에 λŒ€ν•΄ 인사말을 좜λ ₯ν•˜λŠ” ν•¨μˆ˜
    """
    print("Hello, {}!".format(name))

# λͺ¨λ“ˆμ΄ 직접 싀행될 λ•Œμ˜ λ™μž‘
if __name__ == "__main__":
    # λͺ¨λ“ˆμ΄ 직접 싀행될 λ•Œ μ‚¬μš©μžλ‘œλΆ€ν„° 이름을 μž…λ ₯λ°›μ•„ greet ν•¨μˆ˜ 호좜
    user_name = input("이름을 μž…λ ₯ν•˜μ„Έμš”: ")
    greet(user_name)


이 μ˜ˆμ œλŠ” __name__λ³€μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ λͺ¨λ“ˆμ΄ 직접 싀행될 λ•Œμ™€ λ‹€λ₯Έ λͺ¨λ“ˆμ— μ˜ν•΄ λΆˆλŸ¬μ™€μ§ˆ λ•Œλ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€. λͺ¨λ“ˆμ΄ 직접 싀행될 λ•ŒλŠ” input() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžλ‘œλΆ€ν„° 이름을 μž…λ ₯λ°›κ³ , greet() ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ ν•΄λ‹Ή 이름에 λŒ€ν•œ 인사말을 좜λ ₯ν•©λ‹ˆλ‹€. λ§Œμ•½ λ‹€λ₯Έ λͺ¨λ“ˆμ— μ˜ν•΄ λΆˆλŸ¬μ™€μ§ˆ λ•ŒλŠ” input() ν•¨μˆ˜κ°€ ν˜ΈμΆœλ˜μ§€ μ•ŠμœΌλ―€λ‘œ ν•΄λ‹Ή μ½”λ“œλŠ” μ‹€ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


3. ν‘œμ€€λͺ¨λ“ˆπŸŒ

νŒŒμ΄μ¬μ€ 기본적으둜 λ‹€μ–‘ν•œ ν‘œμ€€ 라이브러리λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν‘œμ€€ λͺ¨λ“ˆμ„ ν™œμš©ν•˜μ—¬ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ‡ 가지 μœ μš©ν•œ ν‘œμ€€ λͺ¨λ“ˆμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ³ , μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. math λͺ¨λ“ˆ

  • math λͺ¨λ“ˆμ€ μˆ˜ν•™μ μΈ 연산을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ λ‹€μ–‘ν•œ ν•¨μˆ˜μ™€ μƒμˆ˜λ₯Ό μ œκ³΅ν•˜λŠ” 파이썬의 λ‚΄μž₯ λͺ¨λ“ˆμž…λ‹ˆλ‹€. 주둜 μˆ˜ν•™μ μΈ 계산이 ν•„μš”ν•œ κ²½μš°μ— μ‚¬μš©λ©λ‹ˆλ‹€.
    • μ£Όμš” ν•¨μˆ˜:
      • sqrt(x): 주어진 숫자 x의 μ œκ³±κ·Όμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • sin(x): 주어진 각도 x(λΌλ””μ•ˆ)의 사인 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • cos(x): 주어진 각도 x(λΌλ””μ•ˆ)의 코사인 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • tan(x): 주어진 각도 x(λΌλ””μ•ˆ)의 νƒ„μ  νŠΈ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • log(x, base): 주어진 숫자 x의 둜그 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. baseλ₯Ό μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή λ°‘μ˜ 둜그 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. baseλ₯Ό μƒλž΅ν•˜λ©΄ μžμ—°λ‘œκ·Έ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • exp(x): 주어진 숫자 x의 μ§€μˆ˜ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • math.floor(x): 주어진 숫자 xλ₯Ό λ‚΄λ¦Όν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€. 내림은 ν•΄λ‹Ή μˆ«μžλ³΄λ‹€ μž‘κ±°λ‚˜ 같은 κ°€μž₯ 큰 μ •μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 즉, μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ²„λ¦½λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, math.floor(3.7)은 3을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • math.ceil(x): 주어진 숫자 xλ₯Ό μ˜¬λ¦Όν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€. μ˜¬λ¦Όμ€ ν•΄λ‹Ή μˆ«μžλ³΄λ‹€ ν¬κ±°λ‚˜ 같은 κ°€μž₯ μž‘μ€ μ •μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 즉, μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό μ˜¬λ¦½λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, math.ceil(3.1)은 4λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • round(): 주어진 숫자λ₯Ό κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜ λ˜λŠ” μ§€μ •λœ 자릿수둜 λ°˜μ˜¬λ¦Όν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
        round(number, ndigits=None) ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό 같은 λ™μž‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€:
        • number: λ°˜μ˜¬λ¦Όν•  μˆ«μžμž…λ‹ˆλ‹€.
        • ndigits (선택적): λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜ 자릿수λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 기본값은 None으둜, 이 κ²½μš°μ—λŠ” κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όλ©λ‹ˆλ‹€.
          • ndigitsκ°€ None이면, numberλ₯Ό κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
          • ndigitsκ°€ μ§€μ •λœ 경우, numberλ₯Ό μ†Œμˆ˜μ  μ•„λž˜ ndigits μžλ¦Ώμˆ˜κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜μ—¬ λ°˜ν™˜ν•©λ‹ˆλ‹€.
          • 예λ₯Ό λ“€μ–΄, round(3.14159)λŠ” 3.14159λ₯Ό κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όν•˜μ—¬ 3을 λ°˜ν™˜ν•©λ‹ˆλ‹€. λ˜ν•œ, round(3.14159, 2)λŠ” 3.14159λ₯Ό μ†Œμˆ˜μ  μ•„λž˜ 2μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜μ—¬ 3.14λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” 주둜 숫자λ₯Ό μ†Œμˆ˜μ  μ΄ν•˜μ˜ μ •ν™•ν•œ 자릿수둜 μ œν•œν•˜κ±°λ‚˜, 반올림된 값을 μ–»κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.
    • μ£Όμš” μƒμˆ˜:
      • pi: μ›μ£Όμœ¨(pi) 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
      • e: μžμ—°λ‘œκ·Έμ˜ λ°‘(e) 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
import math

# 제곱근 계산
sqrt_result = math.sqrt(16)  # 16의 μ œκ³±κ·Όμ„ 계산
print("Square root of 16:", sqrt_result)

# μ‚Όκ°ν•¨μˆ˜ 계산
sin_result = math.sin(math.pi / 2)  # sin(π/2)λ₯Ό 계산
print("sin(π/2):", sin_result)

# 둜그 및 μ§€μˆ˜ ν•¨μˆ˜ 계산
log_result = math.log(10, 10)  # 밑이 10인 10의 둜그λ₯Ό 계산
exp_result = math.exp(2)  # e의 2μŠΉμ„ 계산
print("Logarithm of 10 to the base 10:", log_result)
print("e raised to the power of 2:", exp_result)

# μƒμˆ˜
print("Value of pi:", math.pi)  # μ›μ£Όμœ¨(pi) κ°’ 좜λ ₯
print("Value of e:", math.e)      # μžμ—°λ‘œκ·Έμ˜ λ°‘(e) κ°’ 좜λ ₯

2. random λͺ¨λ“ˆ

  • random λͺ¨λ“ˆμ€ λ‚œμˆ˜ 생성과 κ΄€λ ¨λœ ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•©λ‹ˆλ‹€. 이λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚œμˆ˜λ₯Ό μƒμ„±ν•˜κ±°λ‚˜ λ¬΄μž‘μœ„λ‘œ μ‹œν€€μŠ€λ₯Ό μ„žλŠ”λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όμš” ν•¨μˆ˜ :
    • random(): 0 이상 1 미만의 λ‚œμˆ˜λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    • randint(a, b): a 이상 b μ΄ν•˜μ˜ μ •μˆ˜ λ‚œμˆ˜λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    • choice(seq): μ‹œν€€μŠ€μ—μ„œ μž„μ˜μ˜ μš”μ†Œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
    • shuffle(seq): μ‹œν€€μŠ€λ₯Ό λ¬΄μž‘μœ„λ‘œ μ„žμŠ΅λ‹ˆλ‹€.
import random

# random() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 0 이상 1 미만의 λ‚œμˆ˜ 생성
random_number = random.random()
print("Random number between 0 and 1:", random_number)

# randint(a, b) ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 1 이상 10 μ΄ν•˜μ˜ μ •μˆ˜ λ‚œμˆ˜ 생성
random_integer = random.randint(1, 10)
print("Random integer between 1 and 10:", random_integer)

# choice(seq) ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¦¬μŠ€νŠΈμ—μ„œ μž„μ˜μ˜ μš”μ†Œ 선택
my_list = ['apple', 'banana', 'orange', 'grape']
random_element = random.choice(my_list)
print("Random element from list:", random_element)

# shuffle(seq) ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 리슀트λ₯Ό λ¬΄μž‘μœ„λ‘œ μ„žκΈ°
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print("Shuffled list:", my_list)

3. datetime λͺ¨λ“ˆ

  • datetime λͺ¨λ“ˆμ€ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‹€λ£¨λŠ” ν΄λž˜μŠ€λ“€μ„ μ œκ³΅ν•©λ‹ˆλ‹€. λ‚ μ§œ 및 μ‹œκ°„μ˜ ν¬λ§·νŒ…, μ—°μ‚°, νŒŒμ‹± λ“± λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ£Όμš” 클래슀:
    • datetime: λ‚ μ§œμ™€ μ‹œκ°„μ„ ν¬ν•¨ν•˜λŠ” 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    • date: λ‚ μ§œ μ •λ³΄λ§Œμ„ λ‹΄λŠ” 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    • time: μ‹œκ°„ μ •λ³΄λ§Œμ„ λ‹΄λŠ” 객체λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
import datetime

# ν˜„μž¬ μ‹œκ°„μ„ κ΅¬ν•˜κ³  좜λ ₯ν•˜κΈ°
print("===ν˜„μž¬ μ‹œκ°„ 좜λ ₯===")
now = datetime.datetime.now()
print(now.year, "λ…„")
print(now.month, "μ›”")
print(now.day, "일")
print(now.hour, "μ‹œ")
print(now.minute, "λΆ„")
print(now.second, "초")

# μ‹œκ°„ 좜λ ₯ 방법
print("===ν¬λ§·νŒ… 된 κ²°κ³Ό 좜λ ₯===")
# strftime() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν¬λ§·νŒ…
output_a = now.strftime("%Y.%m.%d.%H:%M:%S")
# format() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν¬λ§·νŒ…
output_b = "{}λ…„{}μ›”{}일{}μ‹œ{}λΆ„{}초".format(now.year,\ now.month,\ now.day,\ now.hour,\ now.minute,\ now.second)
# format() ν•¨μˆ˜μ™€ *λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•œκ΅­μ–΄ 문자 포함 ν¬λ§·νŒ…
output_c = now.strftime("Y{}m{}d{}H{}M{}S{}").format(*"λ…„μ›”μΌμ‹œλΆ„μ΄ˆ")

# ν¬λ§·νŒ…λœ κ²°κ³Ό 좜λ ₯
print(output_a)
print(output_b)
print(output_c)


이 μ˜ˆμ œμ—μ„œλŠ”
datetime λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ μ‹œκ°„μ„ κ°€μ Έμ˜€κ³ , 각각의 μ‹œκ°„ μš”μ†Œλ₯Ό 좜λ ₯ν•œ ν›„ ν¬λ§·νŒ…ν•˜μ—¬ 좜λ ₯ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. strftime() ν•¨μˆ˜(μ‹œκ°„μ„ ν˜•μ‹μ— λ§žμΆ°μ„œ 좜λ ₯ν•  수 있음)λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν¬λ§·νŒ…ν•˜κ±°λ‚˜, format() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν¬λ§·νŒ…ν•˜λŠ” 방법을 μ‚¬μš©ν•©λ‹ˆλ‹€. λ˜ν•œ, format() ν•¨μˆ˜μ™€ *λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ ν•œκ΅­μ–΄ 문자λ₯Ό ν¬ν•¨ν•œ ν¬λ§·νŒ…λ„ λ³΄μ—¬μ€λ‹ˆλ‹€. (λ¬Έμžμ—΄, 리슀트 λ“± μ•žμ— *λ₯Ό 뢙이면 μš”μ†Œ ν•˜λ‚˜ν•˜λ‚˜κ°€ λ§€κ°œλ³€μˆ˜λ‘œ 지정됨) 이 외에도 datetime λͺ¨λ“ˆμ€ λ‹€μ–‘ν•œ μ‹œκ°„ 처리 κΈ°λŠ₯을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. deltime() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • μ‹œκ°„ 이전 λ˜λŠ” 이후λ₯Ό ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.

import datetime

# ν˜„μž¬ μ‹œκ°„ 정보 κ°€μ Έμ˜€κΈ°
current_time = datetime.datetime.now()

# timedeltaλ₯Ό μ‚¬μš©ν•˜μ—¬ 3μ‹œκ°„ ν›„μ˜ μ‹œκ°„ κ³„μ‚°ν•˜κΈ°
time_delta = datetime.timedelta(hours=3)
future_time = current_time + time_delta

# κ²°κ³Ό 좜λ ₯
print("ν˜„μž¬ μ‹œκ°„:", current_time)
print("3μ‹œκ°„ ν›„μ˜ μ‹œκ°„:", future_time)


datetime λͺ¨λ“ˆμ˜ timedelta 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ μ‹œκ°„μ—μ„œ 3μ‹œκ°„ ν›„μ˜ μ‹œκ°„μ„ κ³„μ‚°ν•©λ‹ˆλ‹€. timedelta 객체λ₯Ό 생성할 λ•Œ hours λ§€κ°œλ³€μˆ˜μ— 3을 μ „λ‹¬ν•˜μ—¬ 3μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” timedeltaλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. μ΄ν›„μ—λŠ” + μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ μ‹œκ°„μ— timedeltaλ₯Ό 더해 3μ‹œκ°„ ν›„μ˜ μ‹œκ°„μ„ κ³„μ‚°ν•©λ‹ˆλ‹€. κ²°κ³Όλ₯Ό 좜λ ₯ν•˜μ—¬ ν™•μΈν•©λ‹ˆλ‹€.

4. time λͺ¨λ“ˆ

  • time λͺ¨λ“ˆμ€ μ‹œκ°„κ³Ό κ΄€λ ¨λœ ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•©λ‹ˆλ‹€. 주둜 μ‹œκ°„ μΈ‘μ •μ΄λ‚˜ μ‹œμŠ€ν…œ μ‹œκ°„ κ΄€λ ¨ μž‘μ—…μ— μ‚¬μš©λ©λ‹ˆλ‹€.
  • μ£Όμš” ν•¨μˆ˜:
    • time(): ν˜„μž¬ μ‹œκ°„μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
    • sleep(seconds): 주어진 μ‹œκ°„(초) λ™μ•ˆ ν”„λ‘œκ·Έλž¨ 싀행을 μΌμ‹œ μ€‘μ§€ν•©λ‹ˆλ‹€.
import time

# ν˜„μž¬ μ‹œκ°„μ„ 좜λ ₯
current_time = time.time()
print("Current timestamp:", current_time)

# 3초 λ™μ•ˆ λŒ€κΈ°
print("Waiting for 3 seconds...")
time.sleep(3)
print("Done!")


이 μ½”λ“œλŠ” time λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ μ‹œκ°„μ„ 좜λ ₯ν•˜κ³ , κ·Έ 후에 3초 λ™μ•ˆ λŒ€κΈ°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. 이 μ½”λ“œλŠ” ν˜„μž¬ μ‹œκ°„μ„ νƒ€μž„μŠ€νƒ¬ν”„λ‘œ ν™•μΈν•˜κ³ , 3초 λ™μ•ˆ λŒ€κΈ°ν•˜λŠ” κ°„λ‹¨ν•œ ν”„λ‘œκ·Έλž¨μž…λ‹ˆλ‹€. 주둜 μ‹œκ°„ μ§€μ—°μ΄λ‚˜ 간격을 μ‘°μ ˆν•˜κ±°λ‚˜ ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 속도λ₯Ό μ‘°μ •ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.


4. λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ‹€κ°€ λͺ¨λ₯Ό λ•ŒπŸ™‹‍♀️

파이썬 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ‹€κ°€ λͺ¨λ₯΄λŠ” 뢀뢄이 생겼을 λ•Œ, μ•„λž˜μ™€ 같은 λ°©λ²•μœΌλ‘œ ν™•μΈν•˜λ©΄ λ©λ‹ˆλ‹€.파이썬의 곡식 λ¬Έμ„œλŠ” 파이썬 언어와 λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ μƒμ„Έν•œ 정보λ₯Ό μ œκ³΅ν•˜λŠ” 핡심 μ°Έκ³  μžλ£Œμž…λ‹ˆλ‹€. 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜λ©΄ λͺ¨λ“ˆμ΄λ‚˜ ν•¨μˆ˜μ˜ μ‚¬μš©λ²•, λ§€κ°œλ³€μˆ˜, λ°˜ν™˜κ°’, 예제 μ½”λ“œ 등을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

파이썬 곡식 λ¬Έμ„œλŠ” 온라인으둜 제곡되며, μ£Όμš” λ‚΄μš©μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  1. 곡식 Python μ‚¬μ΄νŠΈ (python.org): 파이썬의 곡식 ν™ˆνŽ˜μ΄μ§€μΈ python.orgμ—λŠ” 파이썬 μ–Έμ–΄μ˜ μ΅œμ‹  버전과 κ΄€λ ¨λœ λ¬Έμ„œ 및 μžλ£Œκ°€ μ œκ³΅λ©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” 파이썬 μ–Έμ–΄ 자체의 문법, λ‚΄μž₯ ν•¨μˆ˜, ν‘œμ€€ 라이브러리 등에 λŒ€ν•œ 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. 파이썬 λ¬Έμ„œ (docs.python.org): 파이썬 λ¬Έμ„œ μ‚¬μ΄νŠΈμ—λŠ” 파이썬의 곡식 λ¬Έμ„œκ°€ 온라인으둜 μ œκ³΅λ©λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” μ–Έμ–΄ 레퍼런슀, ν‘œμ€€ 라이브러리, 파이썬 νŒ¨ν‚€μ§€ 인덱슀(PyPI) 등에 λŒ€ν•œ 정보가 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“ˆμ΄λ‚˜ ν•¨μˆ˜λ₯Ό κ²€μƒ‰ν•˜κ³  ν•΄λ‹Ή λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ—¬ μ‚¬μš©λ²•κ³Ό 예제 μ½”λ“œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 도움말 ν•¨μˆ˜ (help()): 파이썬 μΈν„°ν”„λ¦¬ν„°μ—μ„œλŠ” λ‚΄μž₯ ν•¨μˆ˜μΈ help()λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λ“ˆμ΄λ‚˜ ν•¨μˆ˜μ— λŒ€ν•œ κ°„λ‹¨ν•œ 도움말을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, help(math)와 같이 μ‚¬μš©ν•˜λ©΄ math λͺ¨λ“ˆμ— λŒ€ν•œ 도움말을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  4. 인터넷 검색: λ•Œλ‘œλŠ” 파이썬 곡식 λ¬Έμ„œ μ΄μ™Έμ˜ μ™ΈλΆ€ μžλ£Œλ‚˜ λΈ”λ‘œκ·Έ, Q&A μ‚¬μ΄νŠΈμ—μ„œλ„ μœ μš©ν•œ 정보λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ κ°œλ°œμžλ“€μ΄ μž‘μ„±ν•œ 예제 μ½”λ“œλ‚˜ μ„€λͺ…을 μ°Έκ³ ν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

νŒŒμ΄μ¬μ„ μ‚¬μš©ν•˜λ‹€κ°€ λͺ¨λ₯΄λŠ” 뢀뢄이 생기면 μœ„μ™€ 같은 방법을 톡해 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜κ³ , ν•„μš”ν•œ 정보λ₯Ό μ°Ύμ•„λ³΄λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ •ν™•ν•˜κ³  μ‹ λ’°ν•  수 μžˆλŠ” 정보λ₯Ό 얻을 수 있고, 더 λ‚˜μ€ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


5. 핡심 λ‚΄μš©πŸ‘€

import from __name__
ν‘œμ€€λͺ¨λ“ˆ
ν‘œμ€€λͺ¨λ“ˆ
728x90
λ°˜μ‘ν˜•