python의 블록 구분 == 들여쓰기

shuz·2022년 4월 23일
0

본인은 java와 js를 주로 보았기 때문에,, 공부할 파이썬에 대한 두려움이 있었다.

java나 c나 다른 언어들보다 훨 쉬울 거라고 이야기 하지만, 나에게는 나름의 두려움이 있었는데, 그게 무엇이냐면,,

블록 중괄호가 없어서 들여쓰기로 구분을 하는데,, 코드를 보면 아득해질만큼 가독성이 떨어지지는 않을까 하는 두려움이다.

또한, 잘못 누른 스페이스바 한 번이 오류를 뿜기도 한다.

근데,, 생각보다 기초를 배우는 데에서는 그런 거는 없었고 앞으로도 없을 예정이길 바라는 마음이다.

python의 블록구분을 들여쓰기로 한다고 했는데, 여기에 대한 설명을 붙여보자면 다음과 같다

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello World!");
    }
}
#include <iostram>
using namespace std;

int main() {
	cout << "Hello World!" << endl;
    return 0;
}
console.log("Hello World!");

Hello World 출력 삼종 세트;;!

블록 (프로그래밍) 코드블럭
프로그램 코드에서 블록 (block)이란 마치 한 문단처럼 보이는, 코드의 한 부분을 뜻하며, 중괄호로 묶여 있는 경우가 많다.
우선 첫번째의 java 코드를 보면 class 옆에 괄호가 맨 마지막 괄호와 매칭이 되어 하나의 블록을 형성하고,

main 메소드 옆에 괄호가 마지막에서 두 번째 괄호와 매칭이 되어 하나의 블록을 형성한다.

그리고 다음 c++ 코드를 보면 main 함수에서 블록을 형성하는 것을 알 수 있다.

그리고 마지막 javascript 코드를 보면 별도의 블럭이 없는 것을 확인할 수 있는데,,

javascript에도 블럭의 개념이 뭔가 조금 까다로운 부분이다.

예를 들어 짧은 지식이지만, c++의 namespace는 변수 등등의 이름이 유효한 범위로 이름 충돌을 방지하는 데 사용되는 것으로 알고 있다.

또 이름 충돌에 대해 예를 들어, 변수 a가 있고 또 a라는 이름의 변수가 또 있을 경우에는 한 쪽이 무시되는 결과가 되거나 아니면 무엇을 읽어야 하는지 알지 못해 오류를 뱉을 수 있다. 아마 컴파일 과정 자체에서 장애가 날 것으로 기억한다.

그런데, javascript는 이 경우 오류를 뿜지 않아 왔는데, 이름이 충돌 났을 경우에는 그냥 덮어 써버려 왔다.

함수 블럭만 이름의 유효성을 제한하는 것으로 인정했기 때문에 블럭으로 for문을 돌린다던지 하는 경우에는 마음과 코드가 혼연일체가 되지 않는 경우가 부지기수로 생기기 쉬웠다.

그래서 ES6부더는 let, const를 비롯한 변수 선언 키워드를 사용한다.

아무튼 그래서 파이썬에서 세상을 마주하는 방법은 다음과 같다.

print("Hello World!")

profile
미비한 시작만큼 창대해지리라는 것을 믿지 언제나

0개의 댓글