needmoreeasy EN 한국어
배우기

NME 문법 목록

NME가 실제로 받아들이는 표기를 빠짐없이 모아 둔 목록입니다. 설명이 필요하면 문법 안내를 보세요. 이 문서는 예제 모음이 아니라 표입니다.

이 파일은 컴파일러 소스에서 자동으로 만들어집니다 (python scripts/build-syntax-reference.py). 컴파일러가 받아들이는 표기가 여기에 빠져 있으면 검사가 실패하므로, 목록과 구현이 어긋날 수 없습니다.

읽는 법

  • 단계는 셋입니다. 문장형은 따옴표·쉼표·괄호·등호·콜론이 없는 말이고, 초급은 짧고 정확한 표기이며, 고급은 그냥 Python입니다. 선언 없이 한 파일, 한 줄 안에서 섞어 쓸 수 있습니다.
  • 한 줄은 Python이 먼저입니다. 어떤 줄이든 올바른 Python이면 NME는 손대지 않습니다. 그래서 낱말 하나짜리 줄(skip, 멈춰)은 Python 이름으로 남고, 반복 블록 안에서만 NME 명령이 됩니다.
  • 모든 NME 문장은 Python 한 줄이 됩니다. 줄 수가 변하지 않으므로 오류 메시지의 줄 번호가 내가 쓴 파일과 정확히 맞습니다.
  • 표의 만들어지는 Python은 컴파일러가 내놓는 글자 그대로입니다.

1. 출력

단계NME만들어지는 Python
문장형안녕하세요! 말해줘print("안녕하세요!")
문장형보여줘 안녕하세요print("안녕하세요")
문장형오늘도 반가워요!print("오늘도 반가워요!")
문장형안녕하세요 이름! 말해줘print("안녕하세요 " + str(이름) + "!")
초급말해 "안녕"print("안녕")
초급말해 총합 + 1print(총합 + 1)
고급print("안녕")unchanged

글이 되는가, 코드가 되는가. 동작 단어 뒤가 올바른 Python 표현식이고 그 안의 이름을 프로그램이 이미 알고 있으면 코드로, 그렇지 않으면 글로 다룹니다. 말해와 say만은 반대로, 표현식을 먼저 시도합니다. 앞에서 만든 이름이 글 안에 있으면 그 자리에 값이 들어갑니다(안녕하세요 이름! → "안녕하세요 " + str(이름) + "!").

⚠ 이것은 낱말이 이름과 같기만 하면 일어납니다. 사기라는 이름을 만들어 두면 동료들과 식사해 사기가 올랐습니다 말해줘가 "동료들과 식사해 " + str(사기) + "가 올랐습니다"가 됩니다. 조건에서도 마찬가지라, 수호룬이라는 참/거짓 이름이 있으면 만약에 선택이 수호룬과 같으면은 글자 "수호룬"이 아니라 그 값과 견줍니다.

글자라는 것을 밝히려면 따옴표로 감싸면 됩니다. 따옴표 안의 것은 이름이 있어도 그대로 글자입니다.

"동료들과 식사해 사기가 올랐습니다" 말해줘     → 그대로 나옵니다
만약에 선택이 "수호룬"과 같으면                → 글자와 견줍니다

가장 편한 방법은 이름을 산문에 나오지 않을 모양으로 짓는 것입니다 — 사기 대신 전의, 수호룬 대신 수호룬보유여부. 짧고 흔한 낱말일수록 위험합니다.

2. 입력

단계NME만들어지는 Python
문장형이름을 물어봐 이름이 뭐예요?이름 = input("이름이 뭐예요?" + " ")
문장형나이를 숫자로 물어봐 몇 살이에요?나이 = int(input("몇 살이에요?" + " "))
문장형이름이 뭐예요?이름 = input("이름이 뭐예요?" + " ")
문장형몇 살이에요?나이 = int(input("몇 살이에요?" + " "))
문장형이름을 물어봐이름 = input()
초급물어봐 이름, "이름? "이름 = input("이름? ")
고급이름 = input()unchanged

숫자로/ask number를 붙이면 int(input(...))이 됩니다. 나이나 개수를 묻는 질문(몇 살이에요?, How old are you?)은 붙이지 않아도 숫자로 읽습니다. 질문 뒤에 공백이 없으면 하나 붙여 줍니다.

3. 값 저장

단계NME만들어지는 Python
문장형인사는 안녕하세요인사 = "안녕하세요"
문장형정답은 7정답 = 7
문장형인사 저장 안녕하세요인사 = "안녕하세요"
문장형점수를 0으로 설정해점수 = 0
문장형점수는 0이다점수 = 0
초급저장 총합 1 + 2총합 = 1 + 2
고급인사 = '안녕'unchanged

한국어는 조사 은/는만으로 저장이 됩니다. 영어에는 그런 조사가 없으므로 set … to …를 씁니다.

4. 값 바꾸기

단계NME만들어지는 Python
문장형점수에 1 더해점수 = 점수 + 1
문장형점수에 1 더해줘점수 = 점수 + 1
문장형점수 1 올려점수 = 점수 + 1
문장형1을 점수에 더해점수 = 점수 + 1
문장형점수에서 1 빼줘점수 = 점수 - 1
문장형점수에 2 곱해점수 = 점수 * 2
문장형점수를 2로 나눠점수 = 점수 / 2
문장형점수에서 1 + 2 빼줘점수 = 점수 - (1 + 2)
고급점수 += 1unchanged

⚠ 여러 낱말짜리 값은 괄호로 묶입니다. 점수에서 1 + 2 빼줘는 점수 - (1 + 2)이지 점수 - 1 + 2가 아닙니다.

5. 기다리기

단계NME만들어지는 Python
문장형3초 기다려__import__("time").sleep(3)
문장형3초 쉬어__import__("time").sleep(3)
문장형1초 기다려__import__("time").sleep(1)
문장형이초 기다려__import__("time").sleep(2)
문장형5 초 기다려주세요__import__("time").sleep(5)
문장형쉬는시간 기다려__import__("time").sleep(쉬는시간)
고급import time; time.sleep(3)unchanged

단위 낱말(초, seconds)은 생략해도 됩니다. 숫자가 없는 줄 (잠깐 기다려)은 그냥 문장으로 출력됩니다.

6. 횟수 반복

단계NME만들어지는 Python
문장형3번 반복해서 다시 말해줘for _ in range(3): print("다시")
문장형3번 환영합니다for _ in range(3): print("환영합니다")
문장형세 번 반복해서 다시 말해줘for _ in range(3): print("다시")
문장형3회 반복해서 다시 말해줘for _ in range(3): print("다시")
문장형3번 반복해 … 끝for _ in range(3):
문장형계속 반복해while True:
문장형계속 반복해서 다시 말해줘while True: print("다시")
초급3번: 말해 "안녕"for _ in range(3): print("안녕")
문장형수를 1부터 10까지 세면서 반복해for 수 in range(1, 11):
문장형수 10부터 1까지 세면서 반복해for 수 in range(10, 0, -1):
문장형수를 1부터 인원까지 세면서 반복해for 수 in (range(1, 인원 + 1) if 1 <= 인원 else range(1, 인원 - 1, -1)):
문장형수를 1부터 3까지 세며 반복해서 수 말해줘for 수 in range(1, 4): print(수)
초급수를 1부터 10까지 세면서:for 수 in range(1, 11):
고급for i in range(3):unchanged

블록은 세 가지로 닫습니다: 들여쓰기, : 뒤 한 줄, 또는 끝/end 한 줄.

세면서 반복은 양 끝을 모두 셉니다. 두 끝이 숫자면 크기를 보고 올라가거나 내려가고, 한쪽이라도 이름이면 어느 쪽으로 셀지를 반복이 시작될 때 정합니다.

7. 목록 반복

단계NME만들어지는 Python
문장형친구들의 친구마다 반복해for 친구 in 친구들:
문장형친구들의 친구마다 반복해서 친구 말해줘for 친구 in 친구들: print(친구)
문장형이름들에서 이름마다 반복해for 이름 in 이름들:
문장형친구들의 친구 마다 반복해for 친구 in 친구들:
문장형친구들마다 반복해for 친구 in 친구들:
문장형친구들의 친구마다 순서와 함께 반복해for 순서, 친구 in enumerate(친구들, 1):
초급친구들의 친구마다:for 친구 in 친구들:
초급친구들의 친구마다 순서와 함께:for 순서, 친구 in enumerate(친구들, 1):
고급for 친구 in 친구들:unchanged

마다 앞의 이름이 항목을 하나씩 받는 이름이고, 그 이름은 블록 안에서 바로 쓸 수 있습니다.

8. 조건 반복

단계NME만들어지는 Python
문장형점수가 3보다 작을 동안while (점수 < 3):
문장형준비 그리고 대기 동안while (준비 and 대기):
문장형점수가 0보다 큰 동안while (점수 > 0):
문장형준비하는동안 확인 말해줘while (준비): print("확인")
초급동안 점수 < 3while (점수 < 3):
고급while 점수 < 3:unchanged

9. 조건

단계NME만들어지는 Python
문장형만약에 점수가 10보다 크면 성공 말해줘if (점수 > 10): print("성공")
문장형만약에 이름이 있으면if (이름):
문장형만약에 밤이면if (밤):
문장형만약에 이름 길이가 친구들 개수보다 크면if (len(이름) > len(친구들)):
문장형만약 점수 > 10 이면 성공 말해줘if (점수 > 10): print("성공")
문장형만약에 점수가 10 초과면 성공 말해줘if (점수 > 10): print("성공")
문장형점수가 5보다 크면 높음 말해줘if (점수 > 5): print("높음")
문장형아니면 만약에 점수가 0과 같으면elif (점수 == 0):
문장형아니면else:
초급만약 점수 == 1: 말해 "하나"if (점수 == 1): print("하나")
고급if 점수 == 1:unchanged

비교의 오른쪽도 왼쪽이 받는 읽기(길이, 개수, 나머지, 몫, 계산 따위)를 똑같이 받습니다. 앞에서 만든 이름만 읽고, 아니면 예전처럼 글입니다. 한 글자 이름에 어미를 붙인 만약에 밤이면·만약에 비면·만약에 비라면은 그 이름이 앞에서 만든 이름일 때 if 밤:처럼 이름 하나를 검사합니다.

10. 비교 어휘

NMEPython뜻
만약에 이름이 있으면이름참인 값 / truthy
만약에 이름이 없으면not (이름)거짓인 값 / falsey
만약에 점수가 10과 같으면점수 == 10==
만약에 점수가 10과 같지 않으면점수 != 10!=
만약에 점수가 10보다 크면점수 > 10>
만약에 점수가 10보다 작으면점수 < 10<
만약에 점수가 10보다 크거나 같으면점수 >= 10>=
만약에 점수가 10보다 작거나 같으면점수 <= 10<=
만약 준비 그리고 점수가 2보다 크면준비 and 점수 > 2and / 그리고
만약 준비 또는 대기준비 or 대기or / 또는

한국어 어미는 줄여 써도 됩니다: 같다면 · 같으면 · 같을 · 같지않다면 · 같지않으면 · 같지않을 · 경우 · 그러면 · 그럼 · 넘는다면 · 넘으면 · 넘을 · 때 · 라면 · 많다면 · 많으면 · 많을 · 면 · 모자라면 · 미만면 · 미만이면 · 미만인 · 미만일 · 비어있다면 · 비어있으면 · 비었다면 · 비었으면 · 안되면 · 없다면 · 없으면 · 이라면 · 이면 · 이상이면 · 이상인 · 이상일 · 이하이면 · 이하인 · 이하일 · 일때 · 있다면 · 있으면 · 작거나같다면 · 작거나같으면 · 작거나같은 · 작거나같을 · 작다면 · 작으면 · 작을 · 적다면 · 적으면 · 적을 · 초과면 · 초과이면 · 초과인 · 초과일 · 크거나같다면 · 크거나같으면 · 크거나같은 · 크거나같을 · 크다면 · 크면 · 클 · 하면

11. 반복 제어

단계NME만들어지는 Python
문장형멈춰break
문장형여기서 멈춰break
문장형그만해break
문장형정지해break
문장형멈춰줘break
문장형건너뛰어continue
문장형계속해continue
문장형끝(closes the block)
문장형종료(closes the block)

멈춰와 건너뛰어는 그 자체로 올바른 Python 이름이므로, 반복 블록 안에서만 NME 명령이 됩니다. 블록 밖에서는 Python 그대로 남습니다.

12. 목록

단계NME만들어지는 Python
문장형친구들은 목록 민수, 지안친구들 = ["민수", "지안"]
문장형친구들은 목록 민수와 지안친구들 = ["민수", "지안"]
문장형점수들은 목록 1, 2, 3점수들 = [1, 2, 3]
문장형친구들은 목록친구들 = []
문장형친구들에 민수 넣어친구들.append("민수")
문장형친구들에 민수 추가해친구들.append("민수")
문장형친구들에 민수 더해친구들.append("민수")
문장형민수를 친구들에 넣어친구들.append("민수")
문장형친구들은 빈 목록친구들 = []
문장형친구들에서 민수 빼친구들.remove("민수")
문장형친구들 개수 말해줘print(len(친구들))
문장형총합은 친구들 개수총합 = len(친구들)
문장형친구들 개수 명 남았습니다 말해줘print(str(len(친구들)) + " 명 남았습니다")
문장형친구들 정렬해친구들.sort()
문장형친구들 거꾸로 해친구들.reverse()
문장형친구들 섞어__import__("random").shuffle(친구들)
문장형친구들 첫 번째 말해줘print(친구들[0])
문장형친구들 마지막 말해줘print(친구들[-1])
문장형친구들 2번째 말해줘print(친구들[1])
문장형친구들 1번째를 지안으로 바꿔친구들[0] = "지안"
문장형점수들 마지막을 9로 바꿔점수들[-1] = 9
문장형점수들의 첫 번째를 9로 바꿔줘점수들[0] = 9
문장형점수들 점수 번째를 0으로 바꿔점수들[점수 - 1] = 0
문장형친구들 중 아무거나 말해줘print(__import__("random").choice(친구들))
문장형고른사람은 친구들에서 아무것이나고른사람 = __import__("random").choice(친구들)
문장형친구들 중에서 아무거나 말해줘print(__import__("random").choice(친구들))
문장형점수들 합 말해줘print(sum(점수들))
문장형점수들 중 가장 큰 것 말해줘print(max(점수들))
문장형점수들 중 가장 작은 것 말해줘print(min(점수들))
문장형친구들을 쉼표로 이어 말해줘print(", ".join(map(str, 친구들)))
문장형친구들을 빈칸으로 이어 말해줘print(" ".join(map(str, 친구들)))
문장형친구들을 붙여 말해줘print("".join(map(str, 친구들)))
문장형친구들을 그대로 이어 말해줘print("".join(map(str, 친구들)))
문장형만약에 친구들에 민수가 있으면if ("민수" in 친구들):
문장형만약에 친구들에 지안이 없으면if ("지안" not in 친구들):
문장형만약에 친구들이 비었으면if (not (친구들)):
초급말해 len(친구들)print(len(친구들))
고급친구들 = ["민수"]unchanged

목록/list of 표시가 없으면 쉼표가 들어간 줄은 그냥 글입니다. 친구들에 민수 넣어(목록에 넣기)와 점수에 1 더해(값 바꾸기)는 다른 명령입니다.

몇 번째인지는 1부터 셉니다. 친구들 첫 번째가 곧 친구들 1번째이고, Python으로는 친구들[0]이 됩니다. 0번째는 없으며 적으면 E0229로 알려 줍니다. 항목을 바꾸는 바꿔도 같은 셈을 씁니다. 표에는 번째가 없어서 E0234로 알려 줍니다.

목록을 읽고 바꾸는 문장(개수·정렬해·섞어·첫 번째·합·빼…)은 프로그램이 이미 목록으로 만든 이름에만 씁니다. 그래야 친구들 이야기를 들었습니다처럼 그 낱말이 들어간 평범한 문장이 명령으로 바뀌지 않습니다. 목록이 아닌 이름에 쓰면 E0231로 알려 줍니다.

쉼표/comma는 쉼표와 빈칸(", "), 빈칸·공백/space는 빈칸 하나, 줄바꿈/newline은 줄바꿈입니다. 항목이 숫자여도 되도록 map(str, …)을 거쳐서 잇습니다.

13. 표

단계NME만들어지는 Python
문장형나이표는 빈 표나이표 = {}
문장형나이표는 표나이표 = {}
문장형나이표는 비어있는 표나이표 = {}
문장형나이표에 민수를 90으로 넣어나이표["민수"] = 90
문장형나이표에 민수를 90으로 두어나이표["민수"] = 90
문장형나이표에 민수를 90으로 저장해나이표["민수"] = 90
문장형나이표의 민수 말해줘print(나이표["민수"])
문장형제일은 나이표에서 민수제일 = 나이표["민수"]
문장형나이표 개수 말해줘print(len(나이표))
문장형만약에 나이표에 민수가 있으면if ("민수" in 나이표):
문장형나이표의 이름마다 반복해for 이름 in 나이표:
문장형나이표에서 민수 빼del 나이표["민수"]
초급저장 나이표2 {}나이표2 = {}
초급말해 나이표["민수"]print(나이표["민수"])
고급나이표["민수"] = 90unchanged

표는 이름이 붙은 값을 한 번에 여럿 담습니다. Python으로는 사전(dictionary)이고, 처음 배우는 사람에게는 「이름과 그에 딸린 값을 적어 둔 표」입니다.

빈 표/an empty record는 값을 저장하는 자리에서만 표가 됩니다. 표를 보여 주세요처럼 그 낱말이 들어간 평범한 문장은 그대로 글로 남습니다.

목록과 겹치는 표기 — 개수·빼·넣어·…에 …가 있으면·…마다 반복해 — 는 모두 같은 낱말이고, 그 이름이 목록인지 표인지에 따라 하는 일이 갈립니다. 읽는 사람이 어느 쪽인지 외울 필요가 없도록 일부러 그렇게 했습니다. 목록인 이름에 표 문장을 쓰면 E0234로 알려 줍니다.

표에는 순서가 없어서 합·가장 큰 것·첫 번째·정렬해는 쓰지 않습니다. 나이표의 이름마다 반복해는 값이 아니라 이름을 하나씩 돌려주므로, 값은 나이표의 이름처럼 다시 꺼내 읽습니다.

영어로 쓴 set Mina to 90 in ages와 set best to Mina in ages는 같은 여섯 낱말이 같은 차례로 놓인 것인데 뜻이 정반대입니다. to 뒤에 오는 것이 가릅니다 — 숫자나 따옴표 안의 글자는 써 넣는 값이고, 낱말은 읽어 오는 이름입니다. 숫자를 이름으로 삼은 표도 그대로 읽을 수 있습니다. 숫자를 이름에 먼저 담으면 됩니다 (set key to 90 다음에 set who to key in ages).

Python으로 나이표 = {}라고 쓴 이름도 표로 봅니다.

14. 글자 다루기

단계NME만들어지는 Python
문장형이름 길이 말해줘print(len(이름))
문장형이름 대문자로 말해줘print(str(이름).upper())
문장형이름 소문자로 말해줘print(str(이름).lower())
문장형이름들은 memo를 줄마다 나눈 것이름들 = str(memo).splitlines()
문장형칸들은 memo를 쉼표로 나눈 것칸들 = str(memo).split(",")
문장형한줄은 친구들을 쉼표로 이은 것한줄 = ", ".join(map(str, 친구들))
문장형레벨은 레벨글을 숫자로 바꾼 것레벨 = int(레벨글)
문장형말들은 memo를 빈칸으로 나눈 것말들 = str(memo).split(" ")
문장형막대는 이름을 5개 붙인 것막대 = str(이름) * 5
문장형이름을 3번 붙인 것 말해줘print(str(이름) * 3)
초급말해 len(이름)print(len(이름))
고급이름.upper()unchanged

길이/the length of는 글자 수를, 대문자로/in capitals와 소문자로/in small letters는 같은 글을 대·소문자로 바꾼 것을 돌려줍니다. 셋 다 값이므로 출력·저장·조건 어디에나 쓸 수 있습니다. 앞에서 만든 이름에만 쓸 수 있고, 그래서 그 낱말이 들어간 평범한 문장은 그대로 글로 남습니다.

15. 숫자 계산과 나머지

단계NME만들어지는 Python
문장형남은것은 총합 빼기 점수남은것 = 총합 - 점수
문장형점수 더하기 인원 말해줘print(점수 + 인원)
문장형두배는 점수 곱하기 2두배 = 점수 * 2
문장형두배는 점수 곱하기 2두배 = 점수 * 2
문장형한몫은 총합 나누기 인원한몫 = 총합 / 인원
문장형큰값은 점수 더하기 인원 곱하기 2큰값 = 점수 + 인원 * 2
문장형만약에 총합 빼기 점수가 3보다 크면if (총합 - 점수 > 3):
문장형점수를 4로 나눈 나머지 말해줘print(점수 % 4)
문장형남은것은 점수를 4로 나눈 나머지남은것 = 점수 % 4
문장형만약에 점수를 4로 나눈 나머지가 0과 같으면if (점수 % 4 == 0):
문장형점수를 4로 나눈 몫 말해줘print(점수 // 4)
문장형줄수는 점수를 인원으로 나눈 몫줄수 = 점수 // 인원
문장형줄수는 점수를 4로 나눈 몫줄수 = 점수 // 4
초급말해 점수 % 4print(점수 % 4)
초급말해 점수 // 4print(점수 // 4)
초급저장 남은것 총합 - 점수남은것 = 총합 - 점수
고급남은것 = 점수 % 4unchanged
고급줄수 = 점수 // 4unchanged
고급남은것 = 총합 - 점수unchanged

더하기·빼기·곱하기·나누기/plus·minus·times·multiplied by·divided by는 Python의 + - * /입니다. 양쪽이 모두 적어 놓은 숫자이거나 앞에서 만든 이름일 때만 계산이고, 하나라도 아니면 예전처럼 글입니다. 그래서 설탕 빼기와 one plus one equals two는 그대로 출력됩니다. 여러 개를 이어 쓰면 수학 순서대로 곱셈·나눗셈을 먼저 합니다. 저장하는 값, 출력하는 값 전체, 비교의 어느 쪽에나 쓸 수 있습니다.

나머지/the remainder of는 나눗셈에서 남는 수이고, 몫/the whole number of는 온전히 몇 번 들어가는지입니다. 둘 다 값이라서 출력·저장·조건 어디에나 쓸 수 있고, 나누는 수는 숫자이거나 앞에서 만든 이름이어야 합니다.

나누기와 나눠는 파이썬의 /라서 답이 소수가 됩니다. 소수는 목록의 몇 번째, 반복 횟수, 저장할 점수 자리에 넣을 수 없어 그때 프로그램이 멈춥니다. 그런 자리에는 몫을 쓰세요.

16. 값과 리터럴

영어 표기한국어 표기Python
True · true참True
False · false거짓False
None · none · null없음None

17. 무작위

단계NME만들어지는 Python
문장형주사위는 1부터 6까지 랜덤정수주사위 = __import__("random").randint(1, 6)
문장형색은 빨강 또는 초록 중에서 랜덤선택색 = __import__("random").choice(("빨강", "초록",))
문장형색은 빨강 또는 초록 중에서 뽑아색 = __import__("random").choice(("빨강", "초록",))
초급랜덤 사용(binds the random helpers)
초급말해 랜덤정수(1, 6)print(랜덤정수(1, 6))

숫자로 적은 선택지는 숫자로 남습니다(1 또는 2 중에서 랜덤선택 → choice((1, 2,))).

18. 확률

단계NME만들어지는 Python
문장형30% 확률로 말해줘 당첨if __import__("random").randrange(1000) < 300: print("당첨")
문장형30.5% 확률로 말해줘 당첨if __import__("random").randrange(1000) < 305: print("당첨")
문장형30%의 확률로 말해줘 당첨if __import__("random").randrange(1000) < 300: print("당첨")
문장형30퍼센트 확률로 말해줘 당첨if __import__("random").randrange(1000) < 300: print("당첨")
문장형확률 30%로 말해줘 당첨if __import__("random").randrange(1000) < 300: print("당첨")
문장형30% 확률로if __import__("random").randrange(1000) < 300:
문장형운은 30% 확률운 = __import__("random").randrange(1000) < 300

30%는 천 번 중 300번입니다. 소수점은 첫째 자리까지만 쓸 수 있고(30.5%), 그보다 잘게 적으면 반올림하지 않고 E0227로 알려 줍니다. 쓴 사람이 적지 않은 뜻으로 프로그램이 돌아가는 일은 없어야 하기 때문입니다. 범위는 0%부터 100%까지이며 벗어나면 E0228입니다. 100%는 항상 일어나고 0%는 절대 일어나지 않습니다. 비교는 천분율 정수로만 하므로 소수 비교에서 생기는 오차가 없습니다.

이름에 저장한 확률은 참·거짓 값이라서 만약에 운이 있으면처럼 그대로 물어볼 수 있습니다.

19. 파일

단계NME만들어지는 Python
문장형memo에 "notes.txt" 읽어서memo = __import__("pathlib").Path("notes.txt").read_text()
문장형"out.txt" 파일에 "hello"를 저장해__import__("pathlib").Path("out.txt").write_text("hello")
초급파일 사용(binds the file helpers)
초급말해 파일읽기("notes.txt")print(파일읽기("notes.txt"))

파일 경로는 항상 따옴표로 감쌉니다. 이것만은 문장형에서도 예외입니다.

20. 모듈

단계NME만들어지는 Python
초급랜덤 사용(binds random, random_number, random_pick, shuffle and their Korean twins)
초급파일 사용(binds file_read, file_write, json_load, json_save and their Korean twins)
초급영지식 사용(binds zk_secret, zk_public, zk_nizk_prove, … and their Korean twins)
초급목록 사용(binds count, sort, reverse, remove, first, last, sum, largest, smallest and their Korean twins)
초급글자 사용(binds upper, lower, trim, split, join, replace, starts_with, length and their Korean twins)
초급수학 사용(binds math, root, round_to, pi, power, absolute, floor, ceil and their Korean twins)
초급날짜 사용(binds today, now, year, month, day_of_month, weekday, days_after and their Korean twins)
초급랜덤 사용 최신(the newest bundled adapter)
초급랜덤 사용 버전 "0.0.1"(that exact adapter)
문장형"helper.nme"에서 greet 가져와(from helper import greet — needs helper.nme next to the program)
초급"helper.nme"에서 greet 가져오기(from helper import greet — needs helper.nme next to the program)
고급from "helper.nme" import greet(from helper import greet — needs helper.nme next to the program)

랜덤 사용·파일 사용·영지식 사용 다음으로 자주 쓰는 네 가지가 목록 사용, 글자 사용, 수학 사용, 날짜 사용입니다. 한 줄이면 아래 이름들이 한국어와 영어 두 가지로 모두 준비되고, 안에 들어 있는 것은 전부 평범한 Python 기본 기능이라 브라우저에서도 그대로 돕니다. 목록·글자·수학·날짜는 평범한 낱말이라서, 사용/use 바로 옆에 있고 그 줄에 다른 낱말이 없을 때만 모듈로 읽습니다. 장 볼 목록을 사용해 보세요와 이 날짜 사용법을 알려 주세요는 그대로 출력되는 문장입니다.

어제·내일·3일 전·3일 뒤(영어로는 yesterday·tomorrow·3 days ago· 3 days from now)는 오늘에서 며칠 옮긴 날을 가리키는 문장 표기입니다. 도구 상자를 연 뒤에만 날짜가 되므로, 약속은 3일 전이었습니다와 3 days ago I saw her는 그대로 출력되는 문장입니다.

날짜 이름 여섯 개는 뒤에 아무것도 적지 않아도 답을 내놓습니다. 그래서 괄호 없이 쓸 수 있고, 날짜를 다루는 프로그램도 문장문법만으로 쓸 수 있습니다. 오늘 말해줘·요일 말해줘·올해 말해줘, 영어로는 show today·show weekday· show year이며, 지금/now·이번달/month·오늘일자/day_of_month도 마찬가지입니다. 며칠뒤(n)는 여기 들지 않습니다. 며칠인지를 뒤에 적어야 하고, 그것이 없는 것은 컴파일러가 아니라 쓰는 사람이 빠뜨린 것입니다.

수요일이면 요일()은 수요일을, 영어 이름 weekday()는 Wednesday를 돌려줍니다. 두 이름이 서로 다른 값을 갖는 곳은 내장 모듈을 통틀어 여기 하나이며, 요일 이름은 숫자가 아니라 낱말이라서 어느 한 언어에 속할 수밖에 없기 때문입니다. 적은 이름이 답의 언어를 정합니다. 브라우저가 Python에 주는 시계는 UTC이므로 브라우저에서 오늘()은 UTC 기준의 오늘입니다.

목록 사용 (use list):

한국어 표기영어 표기Python
개수(값들)count(values)len(values)
정렬(값들)sort(values)sorted(values) — a new list; the original is left alone
뒤집기(값들)reverse(values)list(reversed(values))
빼기(값들, x)remove(values, x)every item that is not x, as a new list
첫번째(값들)first(values)values[0]
마지막(값들)last(values)values[-1]
합계(값들)sum(values)sum(values)
최대(값들)largest(values)max(values)
최소(값들)smallest(values)min(values)
목록버전list_version"0.0.1"

글자 사용 (use text):

한국어 표기영어 표기Python
대문자(글)upper(text)str(text).upper()
소문자(글)lower(text)str(text).lower()
공백없애기(글)trim(text)str(text).strip()
나누기(글, 구분자)split(text, sep)str(text).split(sep)
합치기(구분자, 값들)join(sep, values)str(sep).join(map(str, values))
바꾸기(글, a, b)replace(text, a, b)str(text).replace(a, b)
로시작(글, a)starts_with(text, a)str(text).startswith(a)
길이(글)length(text)len(text)
글자버전text_version"0.0.1"

수학 사용 (use math):

한국어 표기영어 표기Python
제곱근(x)root(x)math.sqrt(x)
반올림(x, 자리)round_to(x, places)round(x, places) — places may be left out
원주율pimath.pi
거듭제곱(x, y)power(x, y)pow(x, y) — whole numbers stay whole
절댓값(x)absolute(x)abs(x)
내림(x)floor(x)math.floor(x)
올림(x)ceil(x)math.ceil(x)
수학버전math_version"0.0.1"

날짜 사용 (use date):

한국어 표기영어 표기Python
오늘()today()date.today().isoformat() — text such as "2026-08-19"
지금()now()datetime.now().strftime("%H:%M") — the clock a browser gives is UTC
올해()year()date.today().year
이번달()month()date.today().month
오늘일자()day_of_month()date.today().day
요일()weekday()strftime("%A"), an English name such as Wednesday; the Korean name answers 수요일
며칠뒤(n)days_after(n)(date.today() + timedelta(days=n)).isoformat(); a negative n reads as days before
날짜버전date_version"0.0.1"

정렬·뒤집기·빼기는 새 목록을 돌려주고 원래 목록은 그대로 둡니다. 원래 목록을 직접 바꾸려면 문장형 친구들 정렬해·친구들 거꾸로 해·친구들에서 민수 빼를 쓰세요.

21. 천천히 말하기

단계NME만들어지는 Python
문장형천천히 말해줘 안녕[print(_ch, end="", flush=True) or __import__("time").sleep(0.04) for _ch in "안녕"]; print()
문장형천천히 보여줘 안녕[print(_ch, end="", flush=True) or __import__("time").sleep(0.04) for _ch in "안녕"]; print()
문장형아주 천천히 말해줘 안녕[print(_ch, end="", flush=True) or __import__("time").sleep(0.12) for _ch in "안녕"]; print()
문장형3초씩 천천히 말해줘 안녕[print(_ch, end="", flush=True) or __import__("time").sleep(3) for _ch in "안녕"]; print()

글자를 하나씩 내보내고 사이에 잠깐 쉽니다. 쉬는 시간은 기본 0.04초, 아주를 붙이면 0.12초이며, 3초씩처럼 직접 정할 수도 있습니다.

22. 이야기

단계NME만들어지는 Python
문장형이야기:if True:
문장형천천히 이야기:if True:
문장형아주 천천히 이야기:if True:
문장형3초씩 천천히 이야기:if True:
문장형문이 열렸습니다.print("문이 열렸습니다.")
문장형3초 기다려(이야기 안에서는 print("3초 기다려"))

이야기: 안에서는 모든 줄이 글입니다. 3초 기다려도 만약에도 명령이 아니라 그대로 출력됩니다. 소설처럼 쓰는 것이 목적이라서, 글 한 줄이 조용히 명령으로 바뀌는 일을 아예 막아 두었습니다. 블록은 끝/end으로 닫고, 들여쓰기로 열었으면 들여쓰기가 끝나는 곳에서도 닫힙니다. 빈 줄은 print()가 되어 한 줄을 띄우고, 앞에서 만든 이름은 글 안에서 값으로 바뀝니다. 콜론은 반각 :과 전각 : 둘 다 됩니다.

23. 이름 붙인 일

단계NME만들어지는 Python
문장형인사하기라는 일:def 인사하기():
문장형계산이라는 작업:def 계산():
문장형인사하기 해줘인사하기()
문장형인사하기 해인사하기()
문장형인사하기 실행해인사하기()
문장형이름에게 부르기라는 일:def 부르기(이름):
문장형민수에게 부르기 해줘부르기("민수")
문장형민수한테 부르기 실행해부르기("민수")
문장형결과로 점수 돌려줘return 점수
문장형점수 돌려줘return 점수
문장형인사하기 한 결과 말해줘print(인사하기())
문장형말은 민수에게 부르기 한 결과말 = 부르기("민수")
고급def 인사하기():unchanged
고급return 점수unchanged

이름 붙인 일은 프로그램의 한 조각에 이름을 붙여 두었다가 나중에 그 이름으로 실행하는 것입니다. Python으로는 함수(def)입니다.

일·하기·해줘는 평범한 낱말이라서, 이름 붙인 일은 낱말이 아니라 모양으로 알아봅니다. 이름 뒤의 라는(또는 이라는), 그 뒤의 일(또는 작업), 줄 끝의 :, 그리고 그 아래에 오는 묶음까지 넷이 모두 있어야 합니다. 할 일이 많습니다에는 그중 하나도 없습니다.

묶음이 없으면 일이 아닙니다. 오늘의 할 일:처럼 제목만 있는 줄은 그대로 글로 나옵니다. 한 줄로 붙여 쓰는 형태도 없습니다.

일을 실행하는 줄은 그 프로그램이 이미 만든 일 이름일 때만 실행이 됩니다. 해·해줘는 그 자체로는 아무것도 정하지 못합니다. Python으로 쓴 def도 받는 값이 없으면 같은 방법으로 실행할 수 있습니다.

일 안에서 저장한 이름은 일 안에만 있습니다. Python 함수와 같습니다.

⚠ 일이 읽는 이름은 그 일보다 위에 이미 있어야 합니다. 아래에서 만드는 이름을 일 안에서 쓰면, 그 낱말은 이름이 아니라 글자로 읽힙니다. 컴파일은 통과하고, 실행할 때에 가서야 멈춥니다.

채울양에게 막대그리기라는 일:
    남은칸은 막대최대양       ← 막대최대양 = "막대최대양" 이 됩니다
끝
막대최대양은 20               ← 여기가 아니라 일보다 위에 있어야 합니다

일이 쓰는 값은 일을 적기 전에 모아 두세요. 프로그램 맨 위에 「고치는 값」 자리를 만들어 두는 것이 가장 안전합니다.

일은 하나를 받을 수 있습니다. 여는 줄에서 이름 앞에 받을 것을 에게·한테· 을·를로 표시하고(이름에게 인사하기라는 일:), 실행할 때 같은 방법으로 건넵니다(민수에게 인사하기 해줘). 영어는 to greet someone:과 do greet with Mina입니다. 받는 개수가 맞지 않으면 E0235로 알려 줍니다. 실행할 때 나는 Python TypeError는 줄이 멀쩡해 보여서 찾기 어렵기 때문입니다.

일은 값을 돌려줄 수 있습니다. 일 안에서 결과로 <값> 돌려줘라고 적으면, 그 일을 부른 자리가 그 값이 됩니다. 결과로는 없어도 되고, <값> 돌려줘만으로도 됩니다. 받는 쪽은 <이름>은 <준 것>에게 <일이름> 한 결과이고, 주는 것이 없으면 <이름>은 <일이름> 한 결과입니다. 값이라서 출력·저장·조건 어디에나 쓸 수 있습니다.

수에게 두배라는 일:
    결과로 수 + 수 돌려줘
끝
답은 5에게 두배 한 결과
답 말해줘

돌려줘는 일 안에서만 그 뜻입니다. 일 바깥의 그 책 돌려줘는 그대로 글로 나옵니다. 일 이름도 마찬가지라서, 한 결과는 그 프로그램이 이미 만든 일 이름 뒤에서만 답을 뜻합니다.

아직 둘 이상을 받는 일은 문장 문법에 없습니다. 필요하면 Python def를 그대로 씁니다.

24. 화면

단계NME만들어지는 Python
문장형화면 지워print("\033[2J\033[3J\033[H", end="")
문장형화면 비워줘print("\033[2J\033[3J\033[H", end="")
문장형줄 그어print("─" * 40)
문장형가로줄 그어줘print("─" * 40)
문장형상자로 말해줘 안녕print((lambda _t: (lambda _w: "┌" + "─" * (_w + 2) + "┐\n│ " + _t + " │\n└" + "─" * (_w + 2) + "┘")(sum(2 if __import__("unicodedata").east_asian_width(_c) in "WF" else 1 for _c in _t)))("안녕"))
문장형가운데 말해줘 안녕print((lambda _t: " " * max(0, (40 - sum(2 if __import__("unicodedata").east_asian_width(_c) in "WF" else 1 for _c in _t)) // 2) + _t)("안녕"))

화면 지우기는 터미널에 보내는 제어 문자입니다. 터미널이 아닌 곳에서는 글자 그대로 보일 수 있습니다. 상자와 가운데 맞춤은 한글을 두 칸으로 세기 때문에 한국어 문장도 반듯하게 나오며, 가로 폭은 40칸입니다.

25. 시간 재기

단계NME만들어지는 Python
문장형시간 재기 시작해_nme_clock = __import__("time").time()
문장형시간재기 시작해_nme_clock = __import__("time").time()
문장형잰시간 말해줘print(round(__import__("time").time() - _nme_clock, 2))
문장형걸린시간은 잰시간걸린시간 = round(__import__("time").time() - _nme_clock, 2)

시간 재기 시작해가 시계를 켜고, 잰시간/걸린시간/elapsed는 켠 뒤로 흐른 초를 소수 둘째 자리까지 돌려줍니다. 값이므로 출력·저장·조건 어디에나 쓸 수 있습니다(만약 잰시간이 3보다 크면). 켜지 않고 읽으면 컴파일할 때 E0226으로 알려 줍니다. 프로그램이 잰시간이라는 이름을 직접 만들었으면 그 이름이 이깁니다.

26. 쿨타임

단계NME만들어지는 Python
문장형문 쿨타임 3초 걸어_nme_cool_문 = __import__("time").time() + 3
문장형만약 문 쿨타임이 끝났으면if (__import__("time").time() >= _nme_cool_문):
문장형문 쿨타임 끝났으면if (__import__("time").time() >= _nme_cool_문):
문장형만약 문 쿨타임이 남았으면if (__import__("time").time() < _nme_cool_문):
문장형문 쿨타임 끝날때까지 기다려__import__("time").sleep(max(0, _nme_cool_문 - __import__("time").time()))
문장형문 쿨타임 끝날 때까지 기다려__import__("time").sleep(max(0, _nme_cool_문 - __import__("time").time()))

쿨타임은 이름마다 하나씩 걸립니다. 문 쿨타임 3초 걸어는 지금부터 3초 뒤를 기억해 두고, 쿨타임이 끝났으면/is ready는 그 시각이 지났는지 봅니다. 조건이므로 만약·동안·아니면 만약과 한 줄 형태에서 모두 쓸 수 있습니다. wait for door는 영어 문장으로도 읽히므로, 그 이름이 이미 다른 값으로 저장돼 있으면 쿨타임으로 읽지 않습니다.

27. 동작 단어 전수 목록

같은 뜻으로 받아들이는 표기를 하나도 빠뜨리지 않고 적은 표입니다.

하는 일영어 표기한국어 표기
출력 / Outputsay · show · display · tell · print말해 · 말해줘 · 말해주세요 · 보여줘 · 보여주세요 · 출력해 · 출력해줘 · 출력해주세요 · 해줘 · 해주세요 · 읽어줘
입력 / Inputask · prompt · question물어봐 · 물어봐줘 · 물어보세요 · 질문해 · 질문해줘 · 입력받아 · 입력받아줘 · 입력받아주세요 · 물어봐요 · 물어봐주세요 · 질문해주세요
저장 / Saveset · save · remember · store · let · make저장 · 저장해 · 저장해줘 · 기억해 · 기억해줘 · 설정 · 설정해 · 설정해줘 · 지정 · 지정해 · 정해 · 만들어
더하기 / Addadd · increase · increment · plus · up · goesup · grow · bump · boost더해 · 더해줘 · 올려 · 올려줘 · 늘려 · 늘려줘 · 더하기 · 증가 · 증가해 · 증가시켜
빼기 / Subtractsubtract · decrease · decrement · minus · remove · down · goesdown빼 · 빼줘 · 내려 · 내려줘 · 줄여 · 줄여줘 · 빼기 · 감소 · 감소해 · 감소시켜
곱하기 / Multiplymultiply · multiplied곱해 · 곱해줘 · 곱하기해
나누기 / Dividedivide · divided나눠 · 나눠줘 · 나누어줘
기다리기 / Waitwait · pause · sleep · hold · delay · rest기다려 · 기다려줘 · 기다리세요 · 기다려주세요 · 쉬어 · 쉬어줘 · 쉬세요 · 대기해 · 대기해줘 · 대기
반복 / Repeatrepeat · again · do반복 · 반복해 · 반복해줘 · 반복해주세요 · 반복하세요 · 반복해서 · 반복하고 · 반복한다음 · 다시해 · 다시해주세요
조건 / Ifwhen · if · should · incase · whenever만약 · 만약에 · 만일 · 혹시
조건 반복 / Whilewhile · aslongas · repeatwhile · keepgoingwhile동안 · 하는동안 · 할동안
다른 갈래 / Elseelse · otherwise · orelse · elseinstead아니면 · 아니면은 · 아니라면 · 그렇지않으면 · 그렇지않다면 · 안그러면 · 안그렇다면 · 그외에는 · 그외에 · 아니면만약 · 아니면만약에 · 그렇지않으면만약 · 그렇지않으면만약에
반복 중단 / Breakbreak · breakhere멈춰 · 멈춰줘 · 멈춰라 · 멈추기 · 그만해 · 정지해 · 종료해 · 중단 · 반복멈춰 · 여기서멈춰
말끝 출력 / Output written last—말하기 · 말해라 · 알려줘 · 알려주세요 · 알려줘요 · 얘기해 · 얘기해줘 · 얘기해주세요 · 표시해 · 표시해줘 · 출력하기 · 보여주기 · 프린트해 · 프린트 · 프린트해줘 · 프린트해주세요 · 표시하기
목적어가 없을 때만 말끝 출력 / Output written last, with no object—띄워 · 띄워줘 · 띄워주세요 · 나타내 · 나타내줘 · 나타내주세요 · 써줘 · 써주세요 · 적어줘 · 적어주세요
한 낱말만 보여 주기 / Show the one word after itoutput · write · echo · reveal · report · give · list · present · announce · speak · puts—
한 글자 출력 / Short output word—말
화면에 / On the screenscreen화면에 · 화면에다 · 화면에다가 · 스크린에
화면 동사 / Screen verbput · write · print · show · display · say · tell · output · draw띄워 · 띄워줘 · 보여줘 · 출력해 · 말해 · 말해줘 · 표시해
물음표가 있을 때만 묻기 / Ask, only with a question markread · get · request · enter · input받아 · 받아줘 · 여쭤봐 · 여쭤봐줘 · 여쭈어봐 · 요청해 · 요청해줘 · 요청해주세요 · 달라고해 · 달라고해줘
짧은 물어보기 / Short asking word—물어
~로 해 / Save with the everyday verbbecomes · become · call해 · 하자 · 합시다 · 하죠 · 부르자 · 두어 · 둬 · 두자
~로 / ~라고 표시 / What the name becomes—으로 · 로 · 이라고 · 라고
횟수가 있을 때만 반복 / Repeat, only with a countloop · iterate · cycle · rep · goround · runthrough돌려 · 돌려줘 · 돌려주세요 · 되풀이 · 되풀이해 · 되풀이해줘 · 되풀이해서 · 되풀이하기
반복할 것을 가리키는 말 / What is being repeatedit · this · that그거 · 그걸 · 그것 · 그것을 · 이거 · 이걸 · 이것 · 이것을
조건을 닫는 말 / Word that closes a condition—때 · 때에 · 때는 · 경우 · 경우에 · 경우에는
건너뛰기 / Skipskip · skipthis · skipit · nextone건너뛰어 · 건너뛰어줘 · 건너뛰기 · 건너뛰자 · 넘어가 · 넘어가줘 · 계속해 · 넘겨 · 다음
블록 닫기 / Endend · finish · done끝 · 종료 · 마침
모듈 쓰기 / Useuse · load · get · import사용 · 사용해 · 사용해줘 · 사용해주세요 · 불러와 · 불러와줘 · 가져와 · 가져와줘 · 받아 · 받아줘
다른 파일에서 / Import from a fileuse · take · borrow가져와 · 가져와줘 · 가져오기 · 불러와 · 불러오기
목록에 넣기 / Appendappend · push · insert · put · place넣어 · 넣어줘 · 넣기 · 추가해 · 추가해줘 · 추가하기 · 붙여 · 붙여줘
목록 표시 / Listlist목록 · 리스트
빈 목록 / Empty listempty · blank빈 · 비어있는 · 새
개수 / How manycount · number · many개수 · 갯수
개수 앞말 / Reading leadhow—
길이 / Lengthlength · size길이 · 글자수
합 / Totaltotal · sum합 · 합계 · 총합
최댓값 / Biggestbiggest · largest · highest · maximum최댓값 · 최대값 · 큰
최솟값 / Smallestsmallest · lowest · minimum최솟값 · 최소값 · 작은
최댓값 앞말 / Extreme scope—중 · 중에서 · 가운데
가장 / Most—가장 · 제일
것 / Thing—것 · 값
첫 번째 / Firstfirst첫번째 · 첫째 · 처음 · 첫
마지막 / Lastlast마지막 · 맨뒤
몇 번째 / Itemitem · element번째 · 째
항목 바꾸기 / Change an itemset · change바꿔 · 바꿔줘 · 바꿔주세요
아무거나 / A random itemrandom아무거나 · 아무것이나
아무거나 뒷말 / A random oneone · item · element—
세면서 / Countingcount세면서 · 세며
대문자 / Capitalscapitals · capital · uppercase대문자로 · 대문자
소문자 / Small letterslowercase · small소문자로 · 소문자
이어 붙이기 / Joinjoined · join이어 · 이어서 · 이어붙여
사이 없이 이어 붙이기 / Join togethertogether붙여 · 붙여서 · 붙여줘 · 이어붙여 · 이어붙여줘
빈 이음말 / Empty separatornothing그대로
나누기(글) / Splitsplit나눈 · 쪼갠 · 자른
줄마다 / By lineline · lines줄마다 · 줄별로 · 한줄씩
나눈 것 / Split thing—것 · 거 · 것들
붙인 것 / Repeated textrepeated붙인 · 이어붙인
몇 개 / Copiestimes개 · 번
몇 번째와 함께 / With its positionwith함께 · 같이
나머지 / Remainderremainder · rest · leftover나머지
돌려주기 / Give backgive · hand · send돌려줘 · 돌려줘요 · 돌려주기 · 돌려줍니다 · 돌려주세요
돌려주기 뒷말 / Backback—
답으로 / Answer withanswer결과로 · 답으로 · 결과는 · 답은
한 결과 / The result ofresult · answer결과 · 답 · 결과값
한 / Having run—한 · 해서 · 실행한 · 시킨
몫 / Quotientquotient몫
더하기 / Plusplus더하기
빼기 / Minusminus빼기
곱하기 / Timestimes · multiplied곱하기
나누기 / Divided bydivided나누기
온전한 수 / Whole numberwhole—
이은 것 / Joined thing—이은 · 이어붙인 · 붙인
바꾼 것 / Changed into—바꾼 · 고친 · 읽은
나누기 말 / Divideddivided · shared · split나눈 · 나눈뒤 · 나누고
이음말 / Separatorcomma · space · newline쉼표 · 빈칸 · 공백 · 줄바꿈
정렬 / Sortsort · order · arrange · sortout정렬해 · 정렬해줘 · 정렬 · 정렬하기 · 순서대로 · 순서대로해 · 차례대로 · 차례대로해 · 오름차순 · 오름차순으로 · 오름차순으로해
거꾸로 / Reversereverse · flip · invert거꾸로 · 거꾸로해 · 거꾸로해줘 · 뒤집어 · 뒤집어줘 · 뒤집기 · 반대로 · 반대로해 · 역순으로 · 역순으로해
섞기 / Shuffleshuffle · mix · jumble · scramble · randomise · randomize섞어 · 섞어줘 · 섞어주세요 · 섞기 · 랜덤하게 · 랜덤하게해 · 무작위로해
들어있는지 / Containscontains · contain · includes · include · holds안에는 · 속에는 · 안에 · 속에 · 에는 · 에
표 표시 / Recordrecord · table표
표에 넣기 / Put in a recordput · set · store · save · record · add넣어 · 넣어줘 · 넣어주세요 · 넣기 · 두어 · 두어줘 · 저장해 · 저장해줘 · 기억해 · 기억해줘 · 적어 · 적어줘
표 값 앞말 / Record value connectorat · as으로 · 로
표 이름 앞말 / Record container connectorin · into · to을 · 를
표에서 읽기 조사 / Record reading particle—에서 · 의
일 표시 / Jobto일 · 작업
일 이름 어미 / Job name ending—이라는 · 라는
일 실행 / Run a jobdo · run해 · 해줘 · 해주세요 · 실행해 · 실행해줘
일이 받는 것 / What a job is givenwith에게 · 한테 · 을 · 를
무한 반복 / Foreverforever · always계속 · 무한 · 끝없이
읽기 조사 / Reading particle—이 · 가 · 은 · 는 · 을 · 를
숫자로 / As a numbernumber · numeric숫자 · 숫자로 · 수로
숫자 낱말 / Number wordszero · one · two · three · four · five · six · seven · eight · nine · ten · once · twice하나 · 한 · 둘 · 두 · 셋 · 세 · 넷 · 네 · 다섯 · 여섯 · 일곱 · 여덟 · 아홉 · 열 · 일 · 이 · 삼 · 사 · 오 · 육 · 칠 · 팔 · 구 · 십
횟수 단위 / Count unittimes · time · loops · loop · rounds · round번 · 회 · 차례 · 판
반복 중단(블록 안) / Break inside a blockstop · stophere · exitloop · quit—
건너뛰기(블록 안) / Skip inside a blockkeepgoing · carryon—
무작위 고르기 / Random pickrandomchoice · pick · choose랜덤선택 · 하나골라 · 골라 · 하나뽑아 · 뽑아
값 바꾸기 연결어 / Value-change connectorto · by · from · of · into · onto—
목록 연결어 / List connectorto · into · onto · in에다가 · 에다 · 에 · 한테 · 에게
저장 대상 조사 / Saved-name particle—을 · 를 · 이 · 가 · 에
문장 어미 / Sentence ending—입니다 · 이에요 · 예요 · 이다 · 으로 · 로 · 라고 · 이라고
최신판 / Latestlatest · newest최신 · 최신판 · 최신버전
파일 읽기 / File readread읽어서 · 읽고 · 읽어
파일 쓰기 / File writewrite저장해 · 저장해줘 · 써줘 · 적어
천천히 / Slowlyslowly천천히
아주 / Veryvery아주
글자 간격 / Intervalevery초씩
화면 / Clear screenclear화면
화면 지우기 / Clear screen actionscreen지워 · 지워줘 · 비워 · 비워줘
줄 / Draw linedraw줄 · 가로줄
줄 긋기 / Draw line actionline그어 · 그어줘
상자 / Boxbox상자로
가운데 / Middlemiddle가운데
시간 재기 / Start timerstart시간재기시작해 · 시간재기시작
시계 / Timertimer—
잰 시간 / Elapsedelapsed잰시간 · 걸린시간
쿨타임 / Cooldowncooldown쿨타임 · 쿨타임을 · 쿨타임은 · 쿨타임이
쿨타임 걸기 / Put on cooldownput걸어 · 걸어줘
쿨타임 끝남 / Readyready끝났으면
쿨타임 남음 / On cooldown—남았으면
쿨타임 끝날 때까지 / Until ready—끝날때까지
이야기 / Storystory · tale이야기 · 얘기
이야기 천천히 / Story, slowlyslow · slowly천천히
확률 / Chancechance · chances · probability확률로 · 확률
퍼센트 / Percentpercent · percentage퍼센트 · 프로
확률 앞뒤 말 / Chance connectorwith의 · 로 · 으로
확률의 다른 말 / Chance, other wordingtime—
확률 저장 / Chance saved in a nameis · equals—
군말 / Fillerplease좀 · 혹시 · 제발

28. 조사 부록

이름 뒤에 붙어도 이름의 일부로 보지 않는 조사입니다.

에게서는 · 한테서는 · 에게서 · 한테서 · 으로는 · 로는 · 에게 · 한테 · 에서 · 으로 · 까지 · 부터 · 처럼 · 보다 · 이라도 · 라도 · 만큼 · 밖에 · 에는 · 에서 · 은 · 는 · 이 · 가 · 을 · 를 · 와 · 과 · 도 · 의 · 에 · 로 · 아 · 야 · 랑 · 이랑 · 예요 · 이에요 · 님 · 님께 · 님은 · 님이

29. 오타 복구

동작 단어와 연결어에 한해, Python이 그 줄을 거부한 다음에만 한 글자 오타를 고쳐서 다시 읽어 봅니다(넣기·빼기·바꾸기·이웃 자리 바꿈 한 번). 고칠 방법이 둘 이상이면 고치지 않고 그 자리를 짚어 알려 줍니다. 문자열과 주석은 절대 건드리지 않습니다.

30. 오류 코드

코드뜻
E0001이 줄은 올바른 Python도 NME도 아닙니다
E0101열린 블록이 없는 끝
E0102반복문 밖의 break
E0103열린 조건이 없는 아니면
E0104한 조건에 else가 두 번
E0105닫는 end가 없는 블록
E0106함수 밖의 return
E0107반복문 밖의 continue
E0108함수 밖의 yield
E0109비동기 함수 밖의 await
E0110비동기 함수 안의 yield from
E0111비동기 함수 밖의 async for
E0112비동기 함수 밖의 async with
E0113바깥 함수가 없는 nonlocal
E0114모듈 범위 밖의 별표 import
E0115except* 블록 안의 제어 흐름
E0116컴프리헨션 안의 yield
E0117비동기 함수 밖의 비동기 컴프리헨션
E0118비동기 제너레이터 안의 반환값
E0119충돌하는 global 선언
E0120충돌하는 nonlocal 선언
E0201말해 뒤의 계산이 하다 말았습니다
E0202say 뒤의 값을 Python이 읽지 못합니다
E0203보여 줄 문장이 올바르지 않습니다
E0204say에 보여 줄 내용이 없습니다
E0211쉼표 뒤의 질문이 비어 있습니다
E0212물어볼 내용을 읽지 못했습니다
E0213대답을 담을 이름이 없습니다
E0221값을 바꾸는 줄을 읽지 못했습니다
E0222반복을 빠져나오는 줄을 읽지 못했습니다
E0223다음 차례로 건너뛰는 줄을 읽지 못했습니다
E0224얼마나 기다릴지 읽지 못했습니다
E0225이 목록 문장을 읽지 못했습니다
E0226시간 재기를 아직 시작하지 않았습니다
E0227확률은 소수점 첫째 자리까지만 정할 수 있습니다
E0228확률은 0%부터 100% 사이여야 합니다
E0229몇 번째인지는 1부터 셉니다
E0230이름에는 띄어쓰기를 쓸 수 없습니다
E0231이 이름을 목록으로 만든 적이 없습니다
E0232이 이야기 안에 글이 한 줄도 없습니다
E0233이어 붙일 때 사이에 무엇을 넣을지가 없습니다
E0234목록 문장과 표 문장을 서로 바꿔 썼습니다
E0235이 일이 받는 것의 개수가 맞지 않습니다
E0236이 일이 바깥의 이름을 읽고 나서 바꿉니다
E0237이 이름은 언어 자신이 쓰는 이름입니다
E0238읽은 내용을 담을 이름이 없는 파일 읽기
E0239따옴표로 감싸지 않은 파일 이름
E0240무엇을 넣으려면 목록이어야 합니다
E0301조건이 비어 있습니다
E0302조건을 읽지 못했습니다
E0303무엇을 반복할지 읽지 못했습니다
E0304몇 번 반복할지 읽지 못했습니다
E0305반복 횟수가 비어 있습니다
E0306목록을 하나씩 도는 줄을 읽지 못했습니다
E0307세면서 반복하려면 셀 이름이 필요합니다
E0401NME에 내장된 모듈은 일곱 개이고 이것은 그중에 없습니다
E0402최신과 정확한 버전을 함께 적었습니다
E0403모듈 버전이 비어 있습니다
E0404내장되어 있지 않은 모듈 버전입니다
E0405직접 만든 이름을 모듈이 가져갑니다
E0406읽지 못한 모듈 줄
E0407이 줄이 쓸 수 없는 모듈 경로
E0408읽지 못한 모듈 가져오기 줄
E0409이미 불러온 모듈을 다시 부른 줄
E0410무엇에 쓸지 없는 모듈 도구
E0411저장할 값이 비어 있습니다
E0412저장할 값을 읽지 못했습니다
E0413저장할 이름이 비어 있습니다
E0414저장할 이름이 그냥 한 낱말이 아닙니다
E0501반복할 줄이 들여쓰여 있지 않습니다
E0502조건이 맞을 때 할 일이 없습니다
E0503안이 비어 있는 한 줄 블록
E0504한 줄에 할 일 하나
E0505블록 안의 줄을 NME가 알지 못합니다
E0506이 줄이 공백으로 시작합니다
E0601여러 동작으로 해석될 수 있는 문장입니다
E0602이 줄에서 NME 동작을 찾지 못했습니다
E0603NME가 모르는 낱말입니다
E0604이 줄은 아무 일도 하지 않습니다
E0605이 줄에 둥근 따옴표가 있습니다
E0606참이 될 수 없는 비교
E0701여러 줄에 걸친 문장형 줄
E0702Python 소스가 올바르지 않습니다
E9001알 수 없는 명령
E9002모듈 명령에는 추가 인자가 없습니다
E9003옵션 뒤에 값이 없습니다
E9004알 수 없는 옵션
E9005추가로 적힌 파일
E9006변환에는 파일이 필요합니다
E9007파일을 읽을 수 없습니다
E9008파일을 저장할 수 없습니다
E9009결과 파일을 덮어쓰지 않습니다
E9010네이티브 컴파일이 실패했습니다
E9011네이티브 컴파일러를 시작할 수 없습니다
E9012CPython이 만들어진 Python을 거부했습니다
E9013Python을 시작할 수 없습니다
E9014폴더는 프로그램이 아닙니다
E9015프로그램 파일이 없습니다
E9016현재 폴더를 읽을 수 없습니다
E9017이 폴더에 .nme 프로그램이 없습니다
E9018선택 답변을 읽을 수 없습니다
E9019선택 답변이 비어 있습니다
E9020선택 답변이 목록에 없습니다
E9021선택 답변이 여러 프로그램과 일치합니다
E9022이 이름과 일치하는 프로그램이 여러 개입니다
E9023오류 코드는 한 번에 하나만 확인할 수 있습니다
E9024알 수 없는 오류 코드
E9025pip이 패키지를 설치하지 못했습니다
E9026네이티브 프로그램을 시작할 수 없습니다
E9027임시 작업 폴더를 만들 수 없습니다
E9028가져온 모듈 두 개의 이름이 같습니다
E9029nme 컴파일은 모듈 가져오기를 지원하지 않습니다
E9030패키지 이름이 없습니다
E9031-o는 nme 네이티브 빌드에서만 사용할 수 있습니다
E9032네이티브 동작을 두 개 이상 적었습니다

nme ko E0102처럼 부르면 그 코드의 긴 설명을 한국어로 보여 줍니다 (영어는 nme en E0102).

GitHub에서 이 문서 보기