파이썬

파이썬 문법 1)

hojung 2021. 6. 18.
728x90
반응형

 

#파이썬 #코딩 #vscode

 

파이썬은 아주 문법이 간단하다. 나의 경우 대학에서 c++를 기본으로 배웠기 때문에 python의 문법을 배우는 데에는 굉장히 짧은 시간이 소요 됐던 것 같다.

c++와 python의 내가 느낀 가장 큰 차이점은

1. 컴파일러 언어(c++)와 인터프리터 언어(python)라는 점

2. 포인터의 유무이다.

나는 파이썬을 배울 때 파이썬의 한 줄 한 줄 실행되는 점이 매력적이었다. c++의 경우 전체 코드 중 한 군데라도 오류가 있다면 전체 컴파일이 불가능한 반면 파이썬은 전체 코드가 실행되다가 오류가 있는 줄에서 멈추는 형식이기 때문에 어느 줄에 오류가 있는 지 무슨 오류가 있는 지 파악하기 쉬웠다. (대신 한 줄 한 줄 번역하기 때문에 c++가 속도는 훨씬 빠르다.)

 

또한 python에는 c++의 포인터와 같은 개념이 존재하지 않는다. 이 코드가 주솟값을 의미하는 지 아니면 다른 것을 의미하는 지 프로그래머가 생각하고 판단 할 필요가 없다. 파이썬 언어 자체에서 판단해서 접근을 해준다.


1. python에서 출력

python 에서 c++의 cout과 같은 역할을 하는 함수는 print()함수이다.

python파일을 실행시키는 방법은 여러가지가 있지만 크게 두 가지로 vscode내에서 terminal에 실행시키는 방법, cmd에 실행시키는 방법이 있다.

vscode내에서 run을 돌리게 되면 전역 파이썬을 불러온다. 따라서 가상환경을 설정해 놓은 경우 실행이 안되는 경우도 있다.

하지만 cmd에서 파일을 실행할 경우 항상 가상환경을 켜놓은 채로(가상환경마다 방법이 다르다.)

python 파일명 명령어로 실행이 가능하다.

하지만 전역 파이썬으로 터미널에 실행 시켜보겠다.

vscode의 밑부분에 터미널 부분에 코드의 결과 값이 나타나게 된다. split함수는 띄어쓰기를 나누는 함수 insert함수는 기존에 있던 자료형에 새로운 자료를 추가하는 함수이다. (추가 될 인덱스까지 지정할 수 있다.)


2. 파이썬의 자료형

파이썬의 자료형은 c++에서 더 추가되었다. c++에서는 int , float, double, void, char, string등이 있었던 반면 python에서는 tuple, dictionary, set등이 추가 되었다.

 

이 자료형을 구현하려면 c++에서는 수 많은 코드가 필요했지만 python에서는 이미 구현되어 있어 편리하게 사용 가능하다.

 

1. tuple

튜플은 수정할 수 없는 자료형이다. 이 형태는 c++의 const와 비슷하다. ()괄호 안에 표시된다. 이는 함수에서 추가나 삭제와 같은 과정이 불가능하다.

 

2. dictionary

c++에서는 dictionary와 같은 자료형을 만드려면 struct나 class를 작성한 후 key와 value값을 따로 설정하고 배열이나 포인터 또한 두 개가 필요하다. 하지만 python에서는 dictionary가 기본 자료형으로 제공되고 있다.

딕셔너리는 {}괄호 안에 표시가 된다.

딕셔너리와 튜플을 만드는 과정

 

딕셔너리를 만들 때 키가 겹치면 마지막 키만 남고 앞에 있던 키들은 사라지게 된다.

심지어 c++에서는 key와 value를 따로 다루려면 따로 함수를 작성해야했지만 python에서는 기본 함수를 제공한다.

key와 value를 따로 다루는 모습

3. 집합

집합은 c++로 구현할 경우 굉장히 복잡한 코드를 필요로 한다. 중복 검사 및 합집합 차집합의 모든 함수를 구현해야하기 때문이다. 중복 검사의 경우 모든 데이터를 한 번씩 돌면서 중복되는 것이 있는 지 확인해야한다.(stack을 사용하지 않을 경우) 파이썬에서 집합은 set이라는 함수로 설정할 수 있다.

set이라는 함수를 사용할 경우 자동으로 중복되는 것은 삭제하고 하나만 남기게 된다.

파이썬의 집합 관련 함수들

 

파이썬에서는 집합 자료형에서 다양한 기본 함수들을 제공한다. union(합집합), difference(차집합), add(값 추가), update(값 여러 개 추가), remove(값 지우기) 등을 사용해서 집합에서 여러가지 값들을 구할 수 있다.


3. 파이썬의 함수 선언 정의

모든 프로그래밍 언어는 쓸데 없는 코드의 재작성을 방지하기 위해 함수 기능을 제공한다.

c++의 경우

반환형 사용되는 클래스명::(범위 지정자) 함수 이름 (매개 변수)

{

내용

리턴 값(void 같은 경우 없음)

}

과 같이 함수를 작성한다. 하지만 파이썬의 경우 반환형을 파이썬 내부에서 판단해서 정해주기 때문에 따로 적어줄 필요가 없다. 대신 나중에 프로그램을 확인할 때 프로그래머가 다시 반환형을 파악해야한다는 점에서

c++가 더 편리 할 수도 있다.

파이썬의 경우 함수 정의는

def 함수이름(매개 변수):

들여 쓰기 함수 내용

들여 쓰기 리턴 값

으로 구성된다. 함수에는 c++와 같이 입력 값이 없는 함수(매개변수 존재 x), return값이 없는 함수(void) 등 모든 종류의 함수를 작성할 수 있다. 또한 내가 파이썬에서 가장 놀랐던 점은 매개변수의 개수를 동적으로 정해줄 수 있다는 것이었다. c++의 경우 동적할당을 통해 runtime중 매개변수의 개수를 정하거나 함수 오버로딩을 통해 매개변수가 다른 각각의 함수를 만들어 해결할 수 있지만 파이썬의 경우 *변수명이라는 특수한 변수를 통해 입력 값을

바로바로 정해줄 수 있다.

또한 **변수명으로 설정하게 되면 dictionary또한 여러개의 값이 들어올 수 있다.,. (적폐 언어..)

함수의 여러가지 상황들

 

c++와 마찬가지로 파이썬은 함수의 반환형이 하나이다. 만약 여러가지의 값을 계산했다면 c++가 array나 pointer를 반환하듯이 파이썬은 tuple의 형태로 반환한다.(수정할 수 없다.)

tuple의 형태로 출력된다.

 

위 함수 코드들의 터미널에서의 결과 값

 

 

728x90
반응형

'파이썬' 카테고리의 다른 글

python - numpy(module) could not be resolved  (0) 2022.03.15
파이썬 문법 2)  (0) 2021.06.18
pipenv 파이썬 가상환경 사용하기  (0) 2021.06.18
파이썬 flask  (0) 2021.06.18

댓글