Skip to main content

Korean-based Python syntax translator | 한국어 파이썬 번역기

Project description

README by Claude (나보다 더 잘만드네)

🇰🇷 KPTH (Korean Python)

Python Version License: MIT Version

KPTH는 파이썬 문법을 한국어로 번역해주는 교육용 프로그래밍 언어입니다. 한국어로 프로그래밍을 배우고 싶은 분들을 위해 만들어졌습니다.

⚠️ 주의: 이 라이브러리는 교육 목적으로 제작되었으며, 실제 프로젝트에서 사용하기에는 제한이 있을 수 있습니다.

📋 목차

🚀 설치

pip으로 설치

pip install kptha

소스코드에서 설치

git clone https://github.com/yhg4908/kpth.git
cd kpth
pip install -e .

📖 사용법

KPTH는 .kpy 확장자를 사용합니다. 한국어로 프로그램을 작성한 후 ㅋㅍ 명령어로 실행할 수 있습니다.

기본 실행

ㅋㅍ 파일명.kpy

옵션

ㅋㅍ --help           # 도움말 출력
ㅋㅍ --version        # 버전 정보 출력
ㅋㅍ --debug 파일.kpy  # 디버그 모드로 실행

🌟 기본 예제

Hello World

hello.kpy

출력("안녕, 세계!")

실행

$ ㅋㅍ hello.kpy
안녕, 세계!

변수와 연산

calculator.kpy

이름 = 입력("이름을 입력하세요: ")
나이 = 정수(입력("나이를 입력하세요: "))

출력(이름 + "님은 " + 문자열(나이) + "살입니다.")

만약 나이 >= 20:
    출력("성인입니다.")
아니면:
    출력("미성년자입니다.")

반복문과 조건문

loop.kpy

# 구구단 출력
각각 i 안에 범위(1, 10):
    각각 j 안에 범위(1, 10):
        출력(문자열(i) + " × " + 문자열(j) + " = " + 문자열(i * j))
    출력()  # 빈 줄

함수 정의

function.kpy

정의 인사말(이름):
    반환 "안녕하세요, " + 이름 + "님!"

정의 계산기(a, b, 연산):
    만약 연산 == "더하기":
        반환 a + b
    아니고만약 연산 == "빼기":  
        반환 a - b
    아니고만약 연산 == "곱하기":
        반환 a * b
    아니고만약 연산 == "나누기":
        만약 b != 0:
            반환 a / b
        아니면:
            반환 "0으로 나눌 수 없습니다"
    아니면:
        반환 "알 수 없는 연산입니다"

# 함수 사용
결과 = 인사말("김철수")
출력(결과)

계산결과 = 계산기(10, 5, "더하기")
출력("10 + 5 =", 계산결과)

📚 번역된 문법

기본 키워드

한국어 Python 설명
출력 print 화면에 출력
입력 input 사용자 입력 받기
만약 if 조건문
아니고만약 elif 조건문 확장
아니면 else 조건문 기본값
동안 while 반복문
각각 for 반복문
안에 in 포함 연산자
정의 def 함수 정의
반환 return 함수 반환값
클래스 class 클래스 정의
시도 try 예외 처리
예외 except 예외 처리
중단 break 반복문 중단
계속 continue 반복문 계속

데이터 타입

한국어 Python 설명
정수 int 정수 타입
실수 float 실수 타입
문자열 str 문자열 타입
불리언 bool 참/거짓 타입
리스트 list 리스트 타입
튜플 tuple 튜플 타입
사전 dict 딕셔너리 타입
집합 set 집합 타입

내장 함수

한국어 Python 설명
길이 len 길이 반환
범위 range 범위 생성
최대값 max 최대값 반환
최소값 min 최소값 반환
합계 sum 합계 계산
정렬 sorted 정렬된 리스트 반환
역순 reversed 역순 반환
열거 enumerate 인덱스와 함께 반환
압축 zip 여러 시퀀스 압축

🎯 고급 예제

클래스와 객체

class_example.kpy

클래스 학생:
    정의 초기화(자기, 이름, 나이, 학년):
        자기.이름 = 이름
        자기.나이 = 나이
        자기.학년 = 학년
        자기.점수들 = []
    
    정의 점수추가(자기, 점수):
        자기.점수들.추가(점수)
    
    정의 평균계산(자기):
        만약 길이(자기.점수들) > 0:
            반환 합계(자기.점수들) / 길이(자기.점수들)
        아니면:
            반환 0
    
    정의 정보출력(자기):
        출력("이름:", 자기.이름)
        출력("나이:", 자기.나이)
        출력("학년:", 자기.학년)
        출력("평균 점수:", 자기.평균계산())

# 객체 생성 및 사용
학생1 = 학생("김철수", 16, 1)
학생1.점수추가(85)
학생1.점수추가(92)
학생1.점수추가(78)
학생1.정보출력()

예외 처리

exception_example.kpy

정의 안전한나누기(a, b):
    시도:
        결과 = a / b
        반환 결과
    예외 영으로나눔오류:
        출력("오류: 0으로 나눌 수 없습니다!")
        반환 없음
    예외 타입오류:
        출력("오류: 숫자가 아닌 값이 입력되었습니다!")
        반환 없음

# 사용 예시
결과1 = 안전한나누기(10, 2)
출력("10 / 2 =", 결과1)

결과2 = 안전한나누기(10, 0)
출력("10 / 0 =", 결과2)

파일 처리

file_example.kpy

# 파일 쓰기
함께 열기("data.txt", "w", encoding="utf-8") 로서 파일:
    파일.write("안녕하세요\n")
    파일.write("KPTH로 작성된 파일입니다\n")

# 파일 읽기
시도:
    함께 열기("data.txt", "r", encoding="utf-8") 로서 파일:
        내용 = 파일.read()
        출력("파일 내용:")
        출력(내용)
예외 파일없음오류:
    출력("파일을 찾을 수 없습니다!")

🔍 디버그 모드

디버그 모드를 사용하면 번역된 Python 코드와 상세한 오류 정보를 확인할 수 있습니다.

ㅋㅍ --debug example.kpy

디버그 모드에서는 다음 정보가 표시됩니다:

  • 번역된 Python 코드 (줄 번호 포함)
  • 상세한 오류 메시지와 스택 트레이스
  • 실행 과정에서의 추가 정보

🤝 기여하기

KPTH 프로젝트에 기여하고 싶으시다면:

  1. 이 저장소를 포크하세요
  2. 기능 브랜치를 생성하세요 (git checkout -b feature/새기능)
  3. 변경사항을 커밋하세요 (git commit -am '새 기능 추가')
  4. 브랜치에 푸시하세요 (git push origin feature/새기능)
  5. Pull Request를 생성하세요

개발 환경 설정

git clone https://github.com/yhg4908/kpth.git
cd kpth
pip install -e .

테스트 실행

# 간단한 테스트
echo '출력("테스트")' > test.kpy
ㅋㅍ test.kpy

📝 라이센스

이 프로젝트는 MIT 라이센스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

🔗 링크

📞 문의

  • 이메일: yhg4908@naver.com
  • GitHub Issues: 버그 리포트나 기능 요청은 GitHub Issues를 이용해주세요

📖 완전한 번역 사전

파이썬 예약어 (Keywords)

논리값 / None

한국어 Python 설명
거짓 False 거짓 값
True 참 값
없음 None None 값

논리 연산

한국어 Python 설명
그리고 and 논리 AND
또는 or 논리 OR
아니다 not 논리 NOT

조건/반복

한국어 Python 설명
만약 if 조건문
아니고만약 elif 조건문 확장
아니면 else 조건문 기본값
동안 while while 반복문
각각 for for 반복문
안에 in 포함 연산자
중단 break 반복문 중단
계속 continue 반복문 계속

예외 처리

한국어 Python 설명
시도 try 예외 처리 시작
예외 except 예외 처리
결국 finally 최종 실행 블록
발생 raise 예외 발생

함수/클래스/람다

한국어 Python 설명
정의 def 함수 정의
클래스 class 클래스 정의
람다 lambda 람다 함수
반환 return 함수 반환
넘어가기 pass pass 문

비동기 처리

한국어 Python 설명
비동기 async 비동기 함수
기다림 await 비동기 대기

패턴 매칭

한국어 Python 설명
매칭 match 패턴 매칭
경우 case 매칭 케이스

기타 키워드

한국어 Python 설명
삭제 del 객체 삭제
전역 global 전역 변수
비전역 nonlocal 비지역 변수
로서 as as 키워드
is is 연산자
에서 from from 임포트
불러오기 import import 문
단언 assert assert 문
함께 with with 문
생성 yield yield 문

파이썬 내장 함수 (Built-in Functions)

기본 내장 함수

한국어 Python 설명
절댓값 abs 절댓값 계산
모두참 all 모든 요소가 참인지 확인
하나참 any 하나라도 참인지 확인
아스키 ascii ASCII 문자열 반환
이진수 bin 이진수 변환
불리언 bool 불리언 타입
중단점 breakpoint 디버거 중단점
바이트배열 bytearray 바이트 배열
바이트 bytes 바이트 객체
호출가능 callable 호출 가능 여부 확인
문자 chr 유니코드 문자 반환
클래스메서드 classmethod 클래스 메서드
컴파일 compile 코드 컴파일
복소수 complex 복소수 타입
삭제속성 delattr 속성 삭제
사전 dict 딕셔너리 타입
디렉터리 dir 객체 속성 목록
몫나머지 divmod 몫과 나머지
열거 enumerate 인덱스와 값 쌍
평가 eval 표현식 평가
실행 exec 코드 실행
필터 filter 조건 필터링
실수 float 실수 타입
형식 format 문자열 포맷
고정집합 frozenset 불변 집합
속성얻기 getattr 속성 가져오기
전역변수 globals 전역 변수 딕셔너리
존재여부 hasattr 속성 존재 여부
해시 hash 해시 값
도움말 help 도움말 출력
16진수 hex 16진수 변환
객체ID id 객체 ID
입력 input 사용자 입력
정수 int 정수 타입
인스턴스여부 isinstance 인스턴스 여부 확인
서브클래스여부 issubclass 서브클래스 여부 확인
반복자 iter 반복자 생성
길이 len 길이 반환
리스트 list 리스트 타입
지역변수 locals 지역 변수 딕셔너리
map 맵 함수
최대값 max 최대값
메모리뷰 memoryview 메모리 뷰
최소값 min 최소값
다음값 next 다음 값
객체 object 기본 객체
8진수 oct 8진수 변환
열기 open 파일 열기
유니코드값 ord 유니코드 값
거듭제곱 pow 거듭제곱
출력 print 화면 출력
속성 property 프로퍼티
범위 range 범위 생성
표현식 repr 표현식 문자열
역순 reversed 역순 반복자
반올림 round 반올림
집합 set 집합 타입
설정속성 setattr 속성 설정
슬라이스 slice 슬라이스 객체
정렬 sorted 정렬된 리스트
정적메서드 staticmethod 정적 메서드
문자열 str 문자열 타입
합계 sum 합계
슈퍼클래스 super 상위 클래스
튜플 tuple 튜플 타입
타입 type 타입 확인
변수들 vars 변수 딕셔너리
압축 zip 여러 시퀀스 압축
모듈가져오기 __import__ 동적 임포트

추가 내장 함수들

한국어 Python 설명
적용 apply 함수 적용
버퍼 buffer 버퍼 객체
바이트순서 byteorder 바이트 순서
코드 code 코드 객체
공변 coerce 타입 강제 변환
내부함수 intern 문자열 내부화
긴정수 long 긴 정수
원시입력 raw_input 원시 입력
문자열감소 reduce 축약 함수
다시로드 reload 모듈 재로드
유니코드 unicode 유니코드 문자열
실행파일 execfile 파일 실행
파일 file 파일 객체

연산자 키워드

한국어 Python 설명
이고 and 논리 AND
이거나 or 논리 OR
가아니다 not 논리 NOT
같다 == 같음 비교
다르다 != 다름 비교
크다 > 큼 비교
작다 < 작음 비교
크거나같다 >= 크거나 같음
작거나같다 <= 작거나 같음

타입 관련

한국어 Python 설명
정수타입 int 정수 타입
실수타입 float 실수 타입
문자열타입 str 문자열 타입
불타입 bool 불리언 타입
리스트타입 list 리스트 타입
튜플타입 tuple 튜플 타입
사전타입 dict 딕셔너리 타입
집합타입 set 집합 타입
바이트타입 bytes 바이트 타입
없음타입 type(None) None 타입

특수 메서드 확장

한국어 Python 설명
초기화 __init__ 객체 초기화
문자열화 __str__ 문자열 표현
표현 __repr__ 개발자용 표현
길이 __len__ 길이 메서드
호출 __call__ 호출 가능 객체
반복자 __iter__ 반복자 메서드
다음 __next__ 다음 값
포함 __contains__ 포함 여부
덧셈 __add__ 덧셈 연산자
뺄셈 __sub__ 뺄셈 연산자
곱셈 __mul__ 곱셈 연산자
나눗셈 __truediv__ 나눗셈 연산자
정수나눗셈 __floordiv__ 정수 나눗셈
나머지 __mod__ 나머지 연산자
거듭제곱 __pow__ 거듭제곱 연산자
같음 __eq__ 같음 비교
다름 __ne__ 다름 비교
작음 __lt__ 작음 비교
작거나같음 __le__ 작거나 같음
__gt__ 큼 비교
크거나같음 __ge__ 크거나 같음
인덱싱 __getitem__ 인덱스 접근
인덱스설정 __setitem__ 인덱스 설정
인덱스삭제 __delitem__ 인덱스 삭제
속성접근 __getattr__ 속성 접근
속성설정 __setattr__ 속성 설정
속성삭제 __delattr__ 속성 삭제
진입 __enter__ 컨텍스트 진입
종료 __exit__ 컨텍스트 종료
해시 __hash__ 해시 값
불리언화 __bool__ 불리언 변환
바이트화 __bytes__ 바이트 변환
형식화 __format__ 포맷 문자열
크기힌트 __sizeof__ 메모리 크기
복사 __copy__ 복사
깊은복사 __deepcopy__ 깊은 복사
상태얻기 __getstate__ 상태 가져오기
상태설정 __setstate__ 상태 설정
감소 __reduce__ 객체 축약
감소확장 __reduce_ex__ 확장 축약

새로운 문법 요소들

한국어 Python 설명
모두생성 yield from yield from 구문
왈러스 := 왈러스 연산자
타입힌트 : 타입 힌트
반환타입 -> 반환 타입 힌트
포맷문자열 f f-string
원시문자열 r raw string
바이트문자열 b byte string
유니코드문자열 u unicode string

패턴 매칭 확장

한국어 Python 설명
와일드카드 _ 와일드카드 패턴
또는패턴 | OR 패턴
가드조건 if 가드 조건

컨텍스트 매니저

한국어 Python 설명
문맥관리자 contextlib 컨텍스트 관리자
임시억제 suppress 예외 억제
리다이렉트출력 redirect_stdout 출력 리다이렉트
리다이렉트오류 redirect_stderr 오류 리다이렉트

데코레이터 관련

한국어 Python 설명
데코레이터 @ 데코레이터
속성장식 property 프로퍼티 데코레이터
정적장식 staticmethod 정적 메서드 데코레이터
클래스장식 classmethod 클래스 메서드 데코레이터
캐시장식 cache 캐시 데코레이터
LRU캐시 lru_cache LRU 캐시

타입 힌트 모듈 (typing)

한국어 Python 설명
타입힌트모듈 typing 타입 힌트 모듈
리스트형 List 리스트 타입 힌트
튜플형 Tuple 튜플 타입 힌트
사전형 Dict 딕셔너리 타입 힌트
집합형 Set 집합 타입 힌트
고정집합형 FrozenSet 고정집합 타입 힌트
옵션형 Optional 옵션 타입
유니온형 Union 유니온 타입
콜러블형 Callable 호출 가능 타입
모든형 Any 모든 타입
타입변수 TypeVar 타입 변수
제네릭 Generic 제네릭 타입
리터럴 Literal 리터럴 타입
파이널 Final 최종 타입
노반환 NoReturn 반환 없음
클래스변수 ClassVar 클래스 변수
자기참조 Self 자기 참조

파이썬 내장 예외

한국어 Python 설명
예외 Exception 기본 예외
기본예외 BaseException 최상위 예외
시스템종료 SystemExit 시스템 종료
키보드인터럽트 KeyboardInterrupt 키보드 인터럽트
제너레이터종료 GeneratorExit 제너레이터 종료
중단예외 StopIteration 반복 중단
비동기중단예외 StopAsyncIteration 비동기 반복 중단
산술오류 ArithmeticError 산술 연산 오류
오버플로우오류 OverflowError 오버플로우
영으로나눔오류 ZeroDivisionError 0으로 나눔
부동소수점오류 FloatingPointError 부동소수점 오류
속성오류 AttributeError 속성 오류
버퍼오류 BufferError 버퍼 오류
EOF오류 EOFError 파일 끝 오류
입출력오류 IOError 입출력 오류
OS오류 OSError 운영체제 오류
파일존재오류 FileExistsError 파일 존재
파일없음오류 FileNotFoundError 파일 없음
디렉터리없음오류 NotADirectoryError 디렉터리 아님
디렉터리아님오류 IsADirectoryError 디렉터리임
권한오류 PermissionError 권한 오류
프로세스찾을수없음오류 ProcessLookupError 프로세스 찾을 수 없음
시간초과오류 TimeoutError 시간 초과
참조오류 ReferenceError 참조 오류
메모리오류 MemoryError 메모리 오류
인덱스오류 IndexError 인덱스 오류
키오류 KeyError 키 오류
값오류 ValueError 값 오류
타입오류 TypeError 타입 오류
이름오류 NameError 이름 오류
언바운드로컬오류 UnboundLocalError 지역 변수 오류
모듈없음오류 ModuleNotFoundError 모듈 없음
임포트오류 ImportError 임포트 오류
중단오류 InterruptedError 중단 오류
런타임오류 RuntimeError 런타임 오류
재귀오류 RecursionError 재귀 오류
구현안됨오류 NotImplementedError 구현 안됨
문법오류 SyntaxError 문법 오류
들여쓰기오류 IndentationError 들여쓰기 오류
탭오류 TabError 탭 오류
유니코드오류 UnicodeError 유니코드 오류
유니코드인코딩오류 UnicodeEncodeError 유니코드 인코딩 오류
유니코드디코딩오류 UnicodeDecodeError 유니코드 디코딩 오류
유니코드번역오류 UnicodeTranslateError 유니코드 번역 오류

경고 (Warnings)

한국어 Python 설명
경고 Warning 기본 경고
사용자경고 UserWarning 사용자 경고
폐기경고 DeprecationWarning 폐기 예정 경고
대기중경고 PendingDeprecationWarning 폐기 대기 경고
문법경고 SyntaxWarning 문법 경고
런타임경고 RuntimeWarning 런타임 경고
미래기능경고 FutureWarning 미래 기능 경고
임포트경고 ImportWarning 임포트 경고
유니코드경고 UnicodeWarning 유니코드 경고
바이트경고 BytesWarning 바이트 경고
자원경고 ResourceWarning 자원 경고

유용한 모듈들

한국어 Python 설명
운영체제 os 운영체제 인터페이스
시스템 sys 시스템별 매개변수
시간 time 시간 관련 함수
날짜시간 datetime 날짜와 시간
수학 math 수학 함수
랜덤 random 난수 생성
정규식 re 정규 표현식
JSON json JSON 인코더/디코더
경로 pathlib 객체지향 파일시스템 경로
콜렉션 collections 특수 컨테이너
반복도구 itertools 반복자 도구
함수도구 functools 함수 도구
스레딩 threading 스레드 기반 병렬성
멀티프로세싱 multiprocessing 프로세스 기반 병렬성
비동기IO asyncio 비동기 I/O
HTTP요청 requests HTTP 라이브러리
URL해석 urllib URL 처리 모듈
CSV csv CSV 파일 읽기/쓰기
피클 pickle 파이썬 객체 직렬화
복사 copy 얕은/깊은 복사
약한참조 weakref 약한 참조
가비지수집 gc 가비지 컬렉터
디스 dis 바이트코드 디스어셈블러
추적 traceback 스택 추적 출력
로깅 logging 로깅 시설
압축 zipfile ZIP 아카이브
타르 tarfile TAR 아카이브
임시파일 tempfile 임시 파일과 디렉터리
셸명령 subprocess 하위 프로세스 관리
플랫폼 platform 플랫폼 정보

🇰🇷 한국어로 프로그래밍하세요! 📝✨

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kptha-1.0.0.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kptha-1.0.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file kptha-1.0.0.tar.gz.

File metadata

  • Download URL: kptha-1.0.0.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for kptha-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1857bb948233d4532a4a07ae786d8d96a08b1c7a68fc8cb0b5ff7172ca36d907
MD5 a974d199713548542ac47eaf64c39174
BLAKE2b-256 d85cd6906ec8d38e3fd0943507e487ffd7281d78d5c5a41034b492f8c2d23572

See more details on using hashes here.

File details

Details for the file kptha-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: kptha-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for kptha-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c2124904ffb51410c5d80c5d75162c4a643d69a66565cbc79eb6c85737d65b3
MD5 7a855663ede4dc796c4069e81d184f7d
BLAKE2b-256 d4cd4f0c09c656031797dace447f380416a496a0f481af699eddc0027650830f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page