한글 프로그래밍 언어 '나무'를 실행할 수 있는 패키지입니다.
Project description
한글 프로그래밍 언어 "나무"
"나무"는 코딩 입문자가 쉽게 사용할 수 있는 한글 프로그래밍 언어입니다.
도움말
시작하기
인터프리터 실행하기
- 당연하게도(?) 나무를 실행하기 위해 파이썬을 설치합니다.
- 터미널이나 Shell 창에
pip install namu를 입력합니다. - 파이썬 파일에
import namu namu.interpreter()
을 입력하고 실행시키면...! - 콘솔창에서 나무 인터프리터가 실행됩니다!!
문법
1. 코드 작성
나무는 파이썬처럼 하나의 줄에 한 문장을 입력합니다.
줄 구분
나무는 CRLF와 LF, ;(세미콜론)으로 줄을 구분합니다.
한 줄에는 하나의 문장만이 들어가지만 (), {}, [] 등의 괄호쌍 내부에서는 줄구분을 하지 않습니다.
따라서 배열 등은 여러 줄에 걸쳐 사용할 수 있습니다.
확장자
나무는 .namu와 .나무를 사용하지만 현재는 아무 확장자로 해도 작동됩니다.
나중에 특정 확장자만 쓸 수 있게 할 계획이 있습니다.
주석
#(샵) 문자 뒤에 있는 코드는 주석으로 처리되어 실행되지 않습니다.
(단, 인터프리터에서 사용하시면 에러가 납니다.)
2. 값
현재 나무에서는 5가지의 값들을 지원합니다.
수
- 정수:
1,12,2021 - 실수:
0.1,3.14,10.22
문자열
- 따옴표나 쌍따옴표로 둘러싸여 있는 값은 문자열로 해석됩니다.
'안녕, 세상!',"한글 프로그래밍 언어 나무"
논리형
- 아직 논리형은 구현이 안되있고
1과0이 대신하고 있습니다. 참과거짓내장 변수가 있는데,참은1,거짓은0을 반환합니다.- 조건문 등에서 사용할 수 있습니다.
없음
- 내장 변수
없음은 JS에서undefined와null, 파이썬에서None의 역할을 합니다. - 내장 변수
없음은 0을 반환합니다.
배열
- 여러개의 값들을 하나로 묶은 값입니다. 대괄호쌍 안에 쉼표로 구별해 입력합니다.
[1, "이", [3.1, "배열", 참]]
- 배열 안의 값은 대괄호를 이용해 접근할 수 있습니다.
[1, "2", "삼"][1]은 배열의 2번째 원소인"2"입니다.- 첫번째 원소의 인덱스는
0입니다. - 현재 배열의 원소의 내용을 바꾸는 기능(
배열[인덱스] = 값)은 아직 구현되지 않았습니다.
객체
- 아직 구현되지 않았습니다.
3. 연산자
산술 연산자
- 숫자는
+ - * / ^로 사칙연산을 할 수 있습니다(^는 거듭제곱입니다.).28+42,10/2*10,2+2*2
- 또 숫자는
+ -로 양수와 음수를 나타낼 수 있습니다.+29,-3
- 문자열은
+로 문자열을 합치고,*로 문자열을 반복할 수 있습니다."안녕, " + "세상!","그" * 4 + " 뭐더라"
- 배열은
+로 항목을 추가하고,-로 항목을 뺄 수 있으며,*로 배열에 배열을 합칠 수 있습니다.-
배열 = [1, "이", "three"] 배열 + "2+2" #[1, "이", "three", "2+2"] 배열 - 2 #[1, "이", "2+2"] 배열 * [5, "六"] #[1, "이", "2+2", 5, "六"] 콘솔에_보여주기(배열) #[1, "이", "2+2", 5, "六"]
-
비교 연산자
- 값이 같은지는
==로, 값이 다른지는!=로 확인합니다.10 * 10 == 100,"가나다" != "라마바"
- 숫자는
< > <= >=로 비교할 수 있습니다.1 < 2,39 > 29
논리 연산자
- AND 연산자
&는 왼쪽과 오른쪽 모두가 참(1)인 경우에만 1(참)로 처리합니다.참 & 참,10 == 10 & 38 < 73
- OR 연산자
|은 왼쪽과 오른쪽 중 하나라도 참(1)이면 1(참)로 처리합니다.29>=29 | 87>3,"ㄷㄷ" == "ㄷㄷ" | 28 == 39
- NOT 연산자
!는 1(참)이나 0(거짓)을 반대로 뒤집습니다.!거짓,!27 > 72
괄호
- 괄호를 사용하면 계산 순서를 바꿀 수 있습니다.
2 + 2 * 2는6,(2 + 2) * 2는8-1 < 2 < 1는0(거짓),-1 < (2 < 1)는1(참)
4. 변수
변수 선언
- 변수 선언은
=을 이용합니다.변수명 = 값형식으로 선언하며, 값을 갱신할 때에도 같은 문법을 사용합니다. - 변수 이름은 한글, 알파벳, 숫자,
_(언더바),$(달러)를 사용할 수 있습니다. 숫자는 변수의 첫 글자에 올 수 없으며, 변수명으로 내장 함수나 내장 변수의 이름을 사용할 수 없습니다.
변수 불러오기
- 변수는
변수명으로 불러옵니다.
예시
올해 = 2021
콘솔에_보여주기(올해) #2021
내장 변수
-
내장 변수는 나무에서 기본으로 지원하는 변수로, 수정이 불가능합니다.
-
내장 변수 목록은 다음과 같습니다.
이름 값 참1거짓0없음0원주율π(3.14159...)
4. 제어문
조건문
- 나무에서 조건문을 쓸 때에는
만약키워드를 사용합니다. - 조건문 형식은 다음과 같습니다.
만약 조건1 라면/이라면 #조건1이 1(참)일 때 실행될 내용 아니면서 조건2 라면/이라면 #조건1이 0(거짓)이면서 조건2가 1(참)일 때 실행될 내용 아니면 #조건1과 조건2 모두 0(거짓)이면 실행될 내용 끝
아니면서와아니면은 생략 가능하며,라면과이라면둘 다 사용 가능합니다.
반복문
- 나무에서 반복문을 쓸 때에는
반복하기키워드를 사용합니다. - 반복은
반복 그만으로 멈춥니다. - 반복문 형식은 다음과 같습니다.
반복하기 #반복할 동안 실행될 내용 만약 조건1 이라면 반복 그만 끝 끝
5. 함수
함수 선언하기
- 나무에서는
함수키워드로 함수를 선언합니다. - 다음은 함수 선언 예시입니다.
함수 함수명(매개변수1, 매개변수2, ...) #함수 내용 리턴 리턴값 끝
매개변수는 생략 가능합니다. 단, 괄호는 꼭 넣어야 합니다.
리턴
- 나무의 함수에서는
리턴 리턴값으로 리턴을 합니다.
함수 불러오기
- 함수는
함수명(매개변수1, 매개변수2, ...)로 불러오며, 매개변수는 생략 가능합니다. 단, 괄호는 꼭 넣어야 하며 괄호를 넣지 않으면<함수 함수명>이 반환됩니다.
익명 함수
- 나무에서 익명 함수를 선언할 때에도 일반 함수를 선언하는 것처럼
함수키워드를 사용합니다. - 다음은 익명 함수 선언 예시입니다.
함수명 = 함수(매개변수1, 매개변수2, ...) #함수 내용 리턴 리턴값
마찬가지로 매개 변수는 생략 가능하지만, 괄호는 꼭 넣어야 합니다.
내장 함수
-
내장 함수는 나무에서 기본으로 지원하는 함수로, 수정이 불가능합니다.
-
다음은 나무의 내장 함수 목록입니다.
이름 설명 콘솔에_보여주기(내용)내용을 콘솔에 보여줍니다.콘솔_지우기()콘솔의 모든 내용을 지웁니다. 숫자인가(값)값이 숫자면1(참), 아니면0(거짓)을 반환합니다.문자열인가(값)값이 문자열이면1(참), 아니면0(거짓)을 반환합니다.배열인가(값)값이 배열이면1(참), 아니면0(거짓)을 반환합니다.함수인가(값)값이 함수면1(참), 아니면0(거짓)을 반환합니다.기다리기(초)초의 값만큼 기다립니다.문자열로(값)값을 문자열로 바꾼 것을 반환합니다.실행하기(파일명)이름이 파일명인 파일을 컴파일하고 실행합니다.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file namu-0.0.4.2.tar.gz.
File metadata
- Download URL: namu-0.0.4.2.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54ff636aca4640701a61fa786c4c523948888e693bcf5be13aec8ea0be3c979e
|
|
| MD5 |
847f8ec9aca3566570df82f0747e9c7e
|
|
| BLAKE2b-256 |
50355af3c5f88a6a5b652e0c664c80490577b2df88d25e7b36873800b42fa8bd
|
File details
Details for the file namu-0.0.4.2-py3-none-any.whl.
File metadata
- Download URL: namu-0.0.4.2-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0abc7ddb906f6ba64840f4d2c8e948d25a8e4763469b8122f8fb41e1ca881d5f
|
|
| MD5 |
7d392bdba96b23dc6f3a263753d24f12
|
|
| BLAKE2b-256 |
8b1b2199cb027caef9c95c96f4d9c01f702825f7478b0767e9f0304f72f7063c
|