본문으로 바로가기
제품데스크톱 도구TASTECAD도면 확인TASTEFILES파일 관리TASTEFTP파일 전송TASTESSH원격 작업공간TASTEZIP압축과 해제개발 도구TASTECODERust 통합 개발 환경TASTESTUDIO통합 개발·테스트 환경TASTEETL데이터 통합(ETL)서버TASTEREMOTE원격 데스크톱 서버TASTEGEO공간정보 서버TASTEMAIL메일 작업공간시작하기다운로드문서구매모든 제품
마켓플레이스
소식
개발소식오늘의 개발 소식개발 문서프로그래밍 언어RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron알고리즘알고리즘 기초알고리즘 핵심알고리즘 심화실무 알고리즘
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스커뮤니티 안내
협업기술 전수홈페이지 구축데스크톱 앱 구축릴리스·결제 파이프라인판매 파트너문의
서비스원격 데스크톱설치 패키지 커스텀
TASTEDEV
제품

데스크톱 도구

TASTECAD복잡한 도면을 가볍게 열다TASTEFILES필요한 파일만, 가장 빠르게TASTEFTP파일이 오가는 가장 단정한 길TASTESSH서버와 나 사이, 더 단단한 연결TASTEZIP더 빠르게 묶고, 더 안전하게 풀다

개발 도구

TASTECODERust 앱을 편집 · 빌드 · 디버깅 · 테스트까지 한 창에서TASTESTUDIO편집부터 원격 테스트와 승인 기반 AI 수정까지TASTEETL값을 보며 데이터를 옮깁니다

서버

TASTEREMOTE우리 회사 서버로 운영하는 원격 데스크톱TASTEGEOGeoServer 호환 공간정보 서버를 Rust로 다시 세웁니다TASTEMAIL메일의 주도권을 다시 내 손에

시작하기

다운로드모든 제품 최신 판문서제품 사용법구매구독 · 영구 라이선스모든 제품모든 제품 한눈에
모든 제품
마켓플레이스소식
개발

소식

오늘의 개발 소식언어 · 프레임워크 · GitHub · AI 공식 발표개발 문서언어 · 프레임워크 · 알고리즘 안내서

프로그래밍 언어

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

프레임워크

프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular
서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express
앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron

알고리즘

알고리즘 기초복잡도 분석 · 정렬 · 탐색 · 기본 자료구조 · 트리와 힙알고리즘 핵심그래프 탐색 · 최단 경로와 최소 신장 트리 · 동적 계획법 · 탐욕 알고리즘 · 분할 정복 · 백트래킹알고리즘 심화문자열 알고리즘 · 수학과 정수론 · 비트 연산 · 구간 트리 · 유니온 파인드실무 알고리즘코딩 면접 풀이 전략 · LRU 캐시 · 레이트 리미터 · 일관된 해시
개발 문서 전체 보기
커뮤니티
프로젝트빌더와 작업 발견개발 로그결정과 시행착오프롬프트재사용 가능한 지시AI 도구 이슈Claude · Codex · Gemini 문제와 우회법쇼케이스완성된 결과커뮤니티 안내공개하고 함께 만드는 방식
협업
기술 전수Rust·egui 네이티브 앱 만들기홈페이지 구축10개 언어, 계정, 문서·다운로드데스크톱 앱 구축Rust·egui, WebView 없이릴리스·결제 파이프라인서명 · MSI·deb·rpm·AppImage · 해시판매 파트너소개하고 결제액의 30% 받기문의구축 · 제휴 · 투자 문의
서비스
원격 데스크톱브라우저로 내 컴퓨터에 접속설치 패키지 커스텀필요한 기능만, 설정은 미리
구매
KO
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
로그인
로그인
TASTEDEV

작은 도구부터, 더 좋은 개발까지.

support@tastedev.netTASTEDEV 후원하기
제품제품군구매문서다운로드마켓플레이스고객 지원
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스
정책개인정보처리방침이용약관구독 약관환불 정책커뮤니티 운영 정책
계정로그인가입하기
방문자
오늘
012345678901234567890123456789012345678901234567890123456789
어제
012345678901234567890123456789012345678901234567890123456789
누적 조회
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
상호
지엑스소프트
대표자
최영구
사업자등록번호
853-44-00368
주소
인천광역시 미추홀구 경인로 351 9층 V24
전화
+82-10-4404-1523
이메일
whitecalvin@tastedev.net
개인정보 보호책임자
최영구

© 2026 TASTEDEV제품 정보는 현재 검증된 개발 소스를 기준으로 합니다.출시·고도화 중

Python 문서
Python
시작하기기본 문법타입과 데이터모듈과 패키지오류 처리와 테스트핵심 개념
토론

Python 안내서 · 2/6

기본 문법

이 장에서는 Python 코드를 읽고 쓰는 데 필요한 기본 문법을 다룹니다. 변수와 들여쓰기, 함수 정의와 인자 전달 방식, 조건문과 반복문, 그리고 문자열을 만드는 가장 편한 방법인 f-문자열을 차례로 살펴봅니다.

변수와 이름

Python 변수는 선언 키워드 없이 값을 대입하는 순간 만들어집니다. 변수는 값에 붙인 이름표일 뿐이며, 변수 자체에는 타입이 없고 값에 타입이 있습니다. 그래서 같은 이름에 다른 타입의 값을 다시 대입할 수도 있습니다.

count = 3
name = "Python"
pi = 3.14159
is_ready = True

# 여러 변수에 한 번에 대입하고, 값을 맞바꿉니다
x, y = 1, 2
x, y = y, x

# 관례: 변수와 함수는 snake_case, 상수는 대문자
MAX_RETRIES = 5

이름 규칙은 PEP 8 스타일 가이드를 따르는 것이 일반적입니다. 변수와 함수는 snake_case, 클래스는 PascalCase, 상수는 UPPER_CASE를 씁니다.

들여쓰기가 곧 블록

Python은 중괄호 대신 들여쓰기로 코드 블록을 구분합니다. if, for, def, class 같은 문장은 콜론(:)으로 끝나고, 그 아래 같은 깊이로 들여 쓴 줄들이 하나의 블록이 됩니다. 들여쓰기는 공백 네 칸이 표준이며, 탭과 공백을 섞으면 오류가 나므로 편집기가 공백을 쓰도록 설정합니다. 주석은 #으로 시작하고, 함수나 클래스 바로 아래에 큰따옴표 세 개로 감싼 문자열을 두면 문서 문자열(docstring)이 되어 help()와 편집기 도움말에 표시됩니다.

함수

함수는 def로 정의하고 return으로 값을 돌려줍니다. return이 없으면 None을 돌려줍니다. 매개변수에 기본값을 줄 수 있고, 호출할 때 이름을 붙여(키워드 인자) 순서와 상관없이 값을 넘길 수 있습니다.

def greet(name: str, greeting: str = "Hello") -> str:
    return f"{greeting}, {name}!"


greet("Mina")                      # 'Hello, Mina!'
greet("Mina", greeting="Hi")       # 'Hi, Mina!'
greet(greeting="Hey", name="Joon") # 'Hey, Joon!'

인자 개수가 정해지지 않았을 때는 *args와 **kwargs를 씁니다. *args는 남는 위치 인자를 튜플로, **kwargs는 남는 키워드 인자를 딕셔너리로 받습니다. 매개변수 목록에 *만 따로 두면 그 뒤의 매개변수는 반드시 이름을 붙여 넘겨야 합니다.

def log(message, *args, level="INFO", **kwargs):
    print(level, message, args, kwargs)


log("start", 1, 2, user="kim")
# INFO start (1, 2) {'user': 'kim'}


def connect(host, *, timeout=10):
    ...


connect("db.local", timeout=5)  # timeout 은 키워드로만 넘길 수 있습니다

주의할 점이 하나 있습니다. 기본값은 함수를 정의할 때 한 번만 계산됩니다. 그래서 def add(item, items=[])처럼 리스트 같은 바뀌는 값을 기본값으로 쓰면 호출마다 같은 리스트가 공유됩니다. 이럴 때는 기본값을 None으로 두고 함수 안에서 새 리스트를 만듭니다.

조건문과 반복문

조건문은 if, elif, else를 씁니다. 논리 연산자는 기호가 아니라 and, or, not이라는 단어입니다. 반복문은 for와 while 두 가지이며, for는 리스트·문자열·딕셔너리처럼 순회할 수 있는 모든 것을 차례로 돕니다.

score = 82
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
else:
    grade = "C"

for i in range(3):          # 0, 1, 2
    print(i)

fruits = ["apple", "banana"]
for index, fruit in enumerate(fruits):
    print(index, fruit)

n = 10
while n > 0:
    n -= 3
    if n == 4:
        continue
    print(n)

break는 반복을 즉시 끝내고, continue는 다음 회차로 넘어갑니다. 한 줄 조건식은 "짝수" if n % 2 == 0 else "홀수"처럼 씁니다. 여러 경우를 값의 모양에 따라 나눌 때는 match 문도 쓸 수 있습니다.

f-문자열

문자열 앞에 f를 붙이면 중괄호 안에 변수나 식을 바로 넣을 수 있습니다. 콜론 뒤에 서식을 지정해 소수점 자리, 폭, 천 단위 구분 기호 등을 정할 수 있고, =를 붙이면 디버깅용으로 식과 값을 함께 출력합니다.

name = "Mina"
price = 12345.678

print(f"{name}님, 합계는 {price:,.2f}원입니다")  # 12,345.68
print(f"{name:>10}|")    # 오른쪽 정렬, 폭 10
print(f"{len(name) * 2}") # 식도 넣을 수 있습니다
print(f"{price=}")        # price=12345.678

정리

  • 변수는 대입으로 만들어지고, 타입은 변수가 아니라 값에 있습니다.
  • 블록은 콜론과 공백 네 칸 들여쓰기로 구분합니다.
  • 함수는 기본값, 키워드 인자, *args, **kwargs로 유연하게 인자를 받으며, 바뀌는 값은 기본값으로 쓰지 않습니다.
  • 조건과 반복은 if/elif/else, for, while로 쓰고, 문자열은 f-문자열로 만듭니다.
이 장에 대해 질문이 있나요?
이전 장시작하기다음 장타입과 데이터

댓글 0개

인기 댓글순최신순

로그인 · 로그인하면 댓글을 남길 수 있습니다.