Skip to content

Latest commit

 

History

History
 
 

Asserlang_Interactive_Python3

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Asserlang Interactive-Python3

어쩔랭 인터랙티브 파이썬3

Made with ♥️ in South Korea by sangchoo1201

디스코드 서버에 참가하여 어쩔랭에 대하여 의견을 남겨주세요!

본 문서는 표준 구현체가 아닌 Interactive-Python3 구현체 기준으로 작성되었습니다.

문법 [Interactive-Python3 v1.5]

키워드는 변수의 이름이 될 수 없습니다.
띄어쓰기 대신 ~를 사용합니다.
줄바꿈을 통해 코드를 인식합니다.

연산자

ㅋ: +1를 의미합니다.
ㅎ: -1를 의미합니다.
ㅌ: 곱하기를 의미합니다.

예) ㅋㅋㅋㅋㅋㅌㅋㅋㅌㅋㅋㅋㅋ = 5*2*4 = 40

예) ㅋㅋㅋㅌㅎ = 3*-1 = -3

연산 방식

"ㅋ"과 "ㅎ"은, +1과 -1로 미리 선언된 변수처럼 행동합니다.

여러 변수들을 이어붙여서 쓰는 것으로 각 변수들을 더할 수 있습니다.

  • 예) ㅋㅋㅋ = 3
  • 예) (냉장고=3, 세탁기=2 일때) 냉장고세탁기 = 5

만약, 한 변수 이름이 다른 변수 이름을 포함하는 경우, 기본적으로 앞에서부터 최대한 길게 변수 이름을 추출합니다.
"가나다", "가나", "다라" 라는 변수가 있을 경우, "가나다라"는 "가나다 + 라"로 변환되어 오류가 발생합니다.
"가나다라"가 만약 "가나" + "다라"일 경우, "가나ㅋㅎ다라"처럼 쓰는 것을 권장합니다.

후술할 "함수 호출" 식과도 연산이 가능합니다.
하지만, 함수 호출은 그 특성으로 인해 연산의 끝부분에 위치해야만 합니다.

  • 잘못된 예) 어쩔냉장고~안궁반환ㅋㅋ
  • 올바른 예) 어쩔냉장고~ㅋㅋ안궁반환

후술할 "ㅌㅂ" 명령어도 값으로 작동합니다.
함수 호출과는 다르게 한 줄에 여러 개를 사용할 수 있습니다. 다만, 연산자 "ㅌ"과 헷갈릴 수도 있습니다.

  • 예) ㅇㅉㅌㅂㅌㅂ (입력 2개를 더해서 출력)

덧셈 연산("변수 이어쓰기")와 곱셈 연산("ㅌ")의 우선순위는 덧셈이 먼저입니다.
곱셈 연산자 "ㅌ"을 기준으로 연산식이 쪼개져서 계산된 뒤, 각 값들을 전부 곱하는 것으로 하나의 연산이 마무리됩니다.

  • 예) ㅋㅋㅋㅌㅋㅋㅌㅎㅎ = ㅋㅋㅋ * ㅋㅋ * ㅎㅎ = 3*2*-2 = -12

변수

정수형 변수와 문자형 변수를 통틀어서 이름이 겹칠 수 없습니다.

정수형 변수

파이썬 특성상, 범위는 따로 없습니다.

선언

쿠쿠루삥뽕
어쩔냉장고~ㅋㅋ
슉슈슉슉

변수 "냉장고"을 선언과 동시에 2라는 값으로 초기화 합니다.

어쩔{변수명}[~{초기화 값}]

  • 키워드는 변수 이름이 될 수 없습니다. (연산자 또한 키워드에 포함됩니다)
    • 잘못된 예) 어쩔어쩔~ㅋㅋ
    • 잘못된 예) 어쩔ㅋㅋ~ㅋㅋ
  • 변수 이름은 공백일 수 없습니다.
    • 잘못된 예) 어쩔~ㅋㅋ
    • 잘못된 예) 어쩔 ~ㅋㅋ
  • 변수 선언 시 초기화를 하지 않을 경우 0이 할당됩니다.
    • 예) 어쩔초고속진공블랜딩믹서기

할당

쿠쿠루삥뽕
어쩔냉장고~ㅋㅋㅋ
저쩔냉장고~ㅋㅋ
슉슈슉슉

변수 "냉장고"을 선언하며 동시에 3이라는 값으로 초기화 합니다.

변수 "냉장고"에 2라는 값을 할당 해 줍니다.

저쩔{변수명}~{할당할 값}

문자형 변수

다른 연산은 모두 똑같이 작용하지만,
출력할 때 문자형 변수가 포함되면 출력 값은 숫자에 해당하는 유니코드가 됩니다.

선언

쿠쿠루삥뽕
우짤래미냉장고~ㅋㅋㅋㅋㅋㅋㅌㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㅇㅉ냉장고
슉슈슉슉

변수 "냉장고"을 선언과 동시에 "B"라는 값으로 초기화 합니다.

우짤래미{변수명}[~{선언할 값}]

  • 변수 선언 시 초기화를 하지 않을 경우 0에 해당하는 아스키코드 값이 할당됩니다.
    • 예) 어쩔초고속진공블랜딩믹서기

할당

쿠쿠루삥뽕
우짤래미냉장고~ㅋㅋㅋㅋㅌㅋㅋㅋㅌㅋㅋㅋㅋ
저짤래미냉장고~ㅋㅋㅌㅋㅋㅋㅋㅋㅌㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㅇㅉ냉장고
슉슈슉슉

변수 "냉장고"을 선언하며 동시에 "H"라는 값으로 초기화 합니다.

변수 "냉장고"에 "ɥ"라는 값을 할당 해 줍니다.

저짤래미{변수명}~{할당할 값}

입출력

입력

하나의 값처럼 작동합니다.

쿠쿠루삥뽕
ㅌㅂ
슉슈슉슉

사용자에게 입력을 받습니다.

쿠쿠루삥뽕
어쩔다이슨v15디렉트앱솔루트엑스트라청소기~ㅌㅂ
슉슈슉슉

사용자에게 입력을 받은 후 변수 "다이슨v15디렉트앱솔루트엑스트라청소기"에 해당 값을 저장합니다.

출력

쿠쿠루삥뽕
어쩔냉장고~ㅋㅋㅋㅋㅋ
ㅇㅉ냉장고
슉슈슉슉

결과: 5

냉장고 변수를 출력합니다.

쿠쿠루삥뽕
ㅇㅉㅌㅂ
슉슈슉슉

사용자에게 입력 받은 후 해당 값을 출력합니다.

조건문

쿠쿠루삥뽕
어쩔개~ㅋㅎ
어쩔냉장고~ㅋㅋ
ㅇㅉ냉장고
화났쥬?개킹받쥬?저쩔냉장고~ㅋ
ㅇㅉ냉장고
슉슈슉슉

결과: 2 1

화났쥬?(조건)킹받쥬?(조건이 0일 때 실행할 코드)

점프문

쿠쿠루삥뽕
어쩔티비~ㅋㅋㅋㅋ
ㅇㅉ티비
저쩔티비~티비ㅎ
화났쥬?티비킹받쥬?;;ㅋㅋㅋㅋㅋㅋㅋ
;;ㅋㅋㅋ
슉슈슉슉

결과: 4 3 2 1

;;{위치}

함수 밖에서 함수 안으로는 점프할 수 없습니다.
마찬가지로 함수 안에서 함수 밖이나, 다른 함수로 점프할 수 없습니다.

인터랙티브 모드에서는, 작성 안한 첫 줄을 제외하고, 작성되지 않은 줄로 점프하는 것은 금지됩니다.
자기 자신이 속한 줄로 점프하는 것도 금지됩니다.

조건문과 합치면 반복문을 구현할 수 있습니다.

함수

선언

쿠쿠루삥뽕
안물수고염~킹받죠
ㅇㅉ킹받죠
안물
슉슈슉슉

안물 키워드로 함수를 선언합니다.

안물{함수명}~{인자1}~{인자2}~... {함수 내용} 안물

함수 선언시의 블록 구분은 안물 키워드를 시작과 끝에 둠으로써 구분합니다.

함수 안에서 함수를 선언할 수는 없습니다.
이를 시도할 경우, 쓰고 있던 함수는 삭제됩니다.

함수 안의 변수는 함수 밖의 변수와 이름이 겹칠 수 있습니다.
또한, 함수 이름도 다른 변수와 겹칠 수 있습니다. (권장하진 않습니다)

이미 선언된 함수와 같은 이름의 함수를 다시 선언할 경우,
원래 있던 함수는 새로 작성한 함수로 대체됩니다.

Return

쿠쿠루삥뽕

안물반환~와샌즈
무지개반사와샌즈
안물

ㅇㅉ안궁반환~ㅋㅋㅌㅋㅋ
슉슈슉슉

결과: 4

무지개반사{반환할 값}

만약 함수 내에 무지개반사가 없거나, 하는 등의 이유로 리턴이 일어나지 않고 "안물"을 만나 함수가 종료할 경우, 0을 리턴하게 됩니다.

함수 호출

쿠쿠루삥뽕

안물덧셈~일번~이번
무지개반사일번이번
안물

ㅇㅉ안궁덧셈~ㅋㅋ~ㅋㅋㅋ
슉슈슉슉

결과: 5

안궁{호출할 함수}{인자 1}{인자 2}~...

함수가 선언되기 전에 호출할 수는 없습니다.
또한 호출 시 인자의 개수는 반드시 지켜야 합니다.

한 줄에서 2번 이상의 함수 호출은 금지됩니다.
번거롭더라도 변수에 저장했다가 사용하는 방식으로 코드를 짜시기 바랍니다...

실행

개발 버전이 Python3.8이므로, Python3.8 이상이면 작동합니다.
필요한 모듈은 없습니다.

$ python3 {소스 경로}/main.py

(경로는 상대경로와 절대경로 모두 가능합니다.)

맨 처음 "쿠쿠루삥뽕"은 자동으로 출력되며,
프로그램을 종료하시려면 "슉슈슉슉"을 입력하시면 됩니다.

만약 컴파일러 모드로 실행하시려면, 명령 뒤에 실행시킬 어쩔랭 파일의 경로를 입력하세요.

$ python3 {소스 경로}/main.py {어쩔랭 경로}/{파일 이름}.astv

에러

  • 어쩔변수
    • 변수에 관련된 구문에서 발생한 에러
  • 어쩔ㅌㅂ
    • 입력을 받는 도중 발생한 에러
  • 어쩔조건
    • 조건문 코드에서 생긴 에러
  • 어쩔;;;;
    • 정해진 범위 밖으로 점프하는 경우 생기는 에러
  • 안물안궁
    • 함수의 선언 과정에서 생긴 에러
  • 실행놈아
    • 기타 실행이 안되는 코드로 인한 에러

슉슈슉슉