.python-version 은 파이썬 버전 작성 파일, pyproject.toml 는 프로젝트의 이름, 버전, 필요한 라이브러리 리스트 총괄 관리하는 핵심 파일
uv.lock 에 yarn.lock 처럼 정확한 라이브러리 버전 정보가 기록된다.
name = input("이름을 입력하세요")
amounts = [100, 200, 300]
amounts = (100, 200)
customers = {
name: "나짱",
}
container = {1, 2, 3}
합집합: | 또는 'union'
교집합: & 또는 'intersection'
차집합: - 또는 'difference'
대칭 차집합: ^ 또는 'symmetric_difference'
str = 'like this'
# 문자열 앞에 f 붙이기
print(f'do it {str}')
dd = list(range(8))
print(dd)
dd.extend([4])
print(dd)
# 이렇게 하면 안됨. print(dd.extend([4])) => None 으로 출력됨
# 무슨 자료형인지 확인
print(type(x),type(y), type(z))
# a를 b로 나눈 몫
a // b
# a를 b로 나눈 나머지
a % b
# a의 b제곱
a ** b
# 아래와 같이 한화를 가독성 있게 표현 가능
money = 10_000_000_000
# "i'm" (o)
# 'I'M' (X)
# 'i\'m' (O)'
# 줄바꿈 \n
# 여러줄은 '''''', """"""
# """\""" 이렇게 하면 줄바꿈 생략 가능
# 긴글일때에는 따옴표를 3개 작성한다. ''', """
review = """\
안녕하세요
오늘 짜장면은 정말 맛있었습니다.\
"""
# 곱하기 연산
star = "*"
result = star * 10
# 리스트 요소 변경
nums = list(range(8))
nums[2:4] = [20, 30]
nums[4:] = [50,60,70,80]
# 딕셔너리는 인덱싱, 슬라이싱 불가
del 딕셔너리[key] 사용하여 key 삭제 가능
in 연산자 사용해 해당 key가 있는지 확인 가능
fruits = ['apple', 'orange']
for idx, fruit in enumerate(fruits):
print(idx, fruit)
def get_average_score(*args):
length = len(args)
return sum(args) / length
avg_score = get_average_score(70,70,70)
print(int(avg_score))
evens = list(filter(lambda x: x % 2 == 0, numbers))
import os
current_path = os.getcwd()
files = os.listdir()
os.mkdir("test")
# 오류 없이 파일 만들기
if not os.path.exists("test"):
print("exist")
print(current_path)
print(files)
import os
def make_folder(forder_name):
if not os.path.exists(forder_name):
os.mkdir("test2")
make_folder("test2")
# mode: w(writeㅡ생성), r(readㅡ읽기), a(appendㅡ추가)
"""
with open(경로, mode="", encoding="") as 별칭:
실행할 코드
"""
with open("./test2/mytest.txt", mode="w", encoding="utf-8") as f:
f.write("hihi")
with open("./mytest.txt", mode="w", encoding="utf-8") as f:
f.write("hihihihihih")
try:
실행코드
except Exception as e:
오류가 나왔을 경우 실행할 코드
finally:
오류 여부와 상관없이 마지막에 실행할 코드
from datetime import datetime, timedelta
now = datetime.now()
#대소문자 구분해야함
print(now.strftime(format="%Y년-%m월-%d일 %H시 %M분 %S초"))
print(f"1일 후: {now + timedelta(days=1)}")
print(f"1시간 후: {now + timedelta(hours=1)}")
print(f"1분 후: {now + timedelta(minutes=1)}")
#날짜 차이 구하기
from datetime import datetime
start_date = datetime(2026, 6, 20)
end_date = datetime(2026, 6, 23)
diff = end_date - start_date
print(diff)
print(diff.total_seconds()/60/60)
class User:
pass
user1 = User()
user2 = User()
class User:
# __init__은 객체 생성 시 자동 실행
def __init__(self, name, email, department):
self.name = name
self.email = email
self.department = department
def send_email(self):
print(f"{self.department}의 {self.name}님에게 {self.email}로 이메일을 보냈습니다.")
def print_profile(self):
print("이름", self.name)
print("이메일:", self.email)
print("부서:", self.department)
__str__ : print를 실행했을 때 화면에 보여줄 내용을 정의하는 메소드
__repr__ : 객체를 개발자가 확인하기 좋은 형태로 표현하는 메소드
__len__ : len을 실행했을 때 어떤 값을 반환할지 정의하는 메소드
__eq__ : ==연산자로 두 객체를 비교할 때 어떤 기준으로 같은지 판단할지 정의
@property : info()가 아니라 info로 사용한다. 값처럼 보이지만 내부에서는 함수가 실행된다.
@classmethod : 객체를 만드는 책임을 클래스에게 맡긴다. 새로운 객체를 만드는 방법을 정의한다.
@staticmethod : 해당 클래스와 의미적으로 관련된 기능을 묶기 위함