파이썬에 대한 포스팅을 시작하기전에 tmi 하나 끄적여보자면,, 이전에 파이썬을 이용하여 프로젝트 개발을 진행해본 경험이 있지만 누군가 파이썬 문법에 대해서 갑자기 질문을 한다면 난 바로 대답하지 못할것이다 ...
왜냐하면 프로그래밍 언어의 개념들은 거의 동일하지만 문법은 프로그래밍 언어 별 차이가 있기 때문에 다 못외웠다. (변명 아닙니다 ㅠㅠ) 그렇기때문에 사용하려는 문법이 있으면 그때그때 구글링해서 사용을 했었다 (머쓱)
아무튼,, tmi 집어치우고 다시 초심으로 돌아가 Python에 대한 문법과 개념을 다시 정리해보려고 한다.
제일 먼저 프로그래밍 언어를 배우면 제일 먼저 배우게 된다는 변수와 자료형과 문자열에 대해서 정리해보겠다.
변수는 간단히 말해 값을 담는 박스라고 생각하면 된다. 파이썬에서는 변수 선언이 간단한 편이다.

위의 이미지 처럼 a라는 변수와 b라는 변수를 선언하고 각각의 변수에 3과 4를 담아 변수를 생성해주면 된다.
이렇게 작성한 파일을 실행하면 아래의 이미지와 같이 7이라는 결과값이 출력되는 것을 볼 수 있다.

위에서 변수는 값을 담는 박스라고 말은 했지만 실제로는 컴퓨터가 값이 담긴 위치를 가르키는 것이다. 변수의 메모리 공간에 값이 있고 실제로는 이 메모리의 주소를 가르켜 값을 가지고 오는 것이다.
변수에는 위에서 설정한 정수형외에도 다양한 값을 담을 수 있다.

a, b, c 라는 변수에 각각 문자열, 소수형, boolean 형을 선언하고 각 값을 출력하는 코드를 작성해서 실행해보았다.

위의 코드를 실행하면 위와 같이 실행되는 것을 확인 할 수 있다.
여기서, 다른 프로그래밍 언어를 접해본 경험이 있는 사람이라면 뭔가 의문점이 들것이다. 파이썬에서는 변수에 담길 자료형을 별도로 선언해주지 않아도 된다는 점이다. 이러한 특징을 가진 프로그래밍 언어를 '동적 타입 언어' 라고 부른다.
간단하게 비교를 해본다면, 변수의 자료형을 선언하여 사용하는 '정적 타입 언어'인 C언어의 경우에는 아래와 같이 변수를 선언하게 된다.
int a = 3;
float b = 4.3f;
char c = 'a';
string str = 'string';
이런식으로 생성할 변수의 앞에 자료형을 명시해주어야 한다. 만약 변수에 할당한 값과 선언한 자료형의 타입이 일치하지 않는 경우 컴파일 과정에서 오류가 발생하게된다.
동적타입언어의 특징 때문에 파이썬은 실행시켜보기전 자료형에서 발생하게 되는 오류를 검출하기가 어렵다는 단점이 있지만, 코드 작성 시 자료형을 일일히 지정해 줄 필요가 없어 빠르게 코딩이 가능하다는 장점이 있다.
파이썬에서의 자료형은 크게 수치 자료형, 불 자료형, 군집 자료형으로 구분이 가능하다.
수치 자료형이나 불 자료형은 간단히 사용이 가능하지만 군집 자료형은 자세히 살펴볼 필요가 있다. 왜냐하면 언제 어떻게 사용해야 효율적으로 사용이 가능한지에 대해선 아직 정확히 잘 모르그든여...
일단 여기선 문자열에 대한 내용만 미리 살펴보겠다.
문자열은 말그대로 문자들의 모임을 말한다.
a = '2'
print(a)
위와 같이 a 변수에 '2'라는 값을 선언하고 a 변수를 출력했을 때 2라는 값이 출력되지만 2라는 값은 따옴표로 감싸서 선언했기 때문에 정수형이 아닌 문자열이다.
문자열은 아레와 같이 str()을 사용하여 생성할 수도 있다.
a = str(2)
hello = 'hello'
b = str(hello)


이렇게 a,b 변수에 각각 문자열을 설정하고 a변수와 b변수를 더한 값을 출력하도록 코드를 작성하고 실행해본다면 두 문자열이 합쳐진 값이 출력되게 된다.
a = 2
b = 'hello'
print(a+b)
위와 같이 a변수에 정수형 값을 넣고 문자열이 담긴 변수를 더하여 출력하도록 코드를 작성한다면 실행하는 과정에 에러가 발생하게 된다.

문자열은 문자들의 모임이라고 볼 수 있기 때문에 문자열의 일부를 따로 떼어 부를 수도 있다. 이렇게 문자열을 따로 떼어 부를때 몇번째 문자인지에 대한 '인덱스'를 넣어 부를수 있다. 이것을 인덱싱이라고 하는데 바로 코드를 작성해보겠다.
text = 'abcdefg'
print(text[2])
이렇게 text라는 문자열 변수를 생성하고 이 문자열의 2번째 문자를 출력했을 때는 c라는 결과값이 출력되게 된다. (인덱스는 0부터 시작하기 때문에 문자a는 0번 인덱스로 보면된다.)
문자의 길이를 알고싶을 때는 아래와 같이 len()이라는 함수를 사용하면 문자열의 길이를 알아낼 수 있다.
text = 'abcdefg'
print(len(text)) # len(text)로 text 변수의 길이인 7이라는 값이 출력됨.
이렇게 인덱싱을 통해 문자열의 특정위치에 있는 문자를 출력할 수도 있고 문자열의 인덱스를 이용하여 문자열을 잘라 사용할 수도 있는데 이것을 슬라이싱이라고 부른다.
text = 'abcdefg'
result = text[:2] // 문자열의 앞에서 부터 2글자만 출력
print(result) // 출력값 : ab
result = text[2:] // 문자열의 앞의 2글자 제외하고 출력
print(result) // 출력값 : cdefg
result = text[3:5] // 문자열의 앞의 3글자 이후의 문자부터 앞에서 부터 5글자까지 출력
print(result) // 출력값 : de
result = text[:] // 문자열 전체 출력
print(result) // 출력값 : abcdefg
문자열은 특정문자를 지정하여 자를수도 있다. 이럴때는 split()함수를 사용하게 된다.
email이라는 변수에 회사이메일 문자열을 지정하고 해당 회사의 이름을 구하는 과정을 보면 아래와 같다.
email = 'abc@company.com'
result = email.split('@') # '@'라는 문자열을 기준으로 배열생성
print(result) # 출력값 : ['abc', 'company.com']
companyName = result[1].split('.')[0] # 배열값의 1번 인덱스값을 가지고와서 '.'이라는 문자열 기준으로 배열생성 후, 0번 인덱스 가지고 오기
print(companyName) # 출력값 : company
이런식으로 split()함수를 사용하여 특정 문자열을 기준으로 나눈 배열을 만들고 사용하려는 문자열이 포함된 인덱스를 가지고와서 활용할 수도 있다.
파이썬에서 지원하는 문자열 관련 함수는 다양하지만 여기서는 split()에 대해서만 알아보았다. 파이썬에서 지원하는 문자열 함수는 다음에 총정리해보도록 하겠다. (너무 다양해서 할때마다 찾아봤는데 이번기회에 정리해보는 것도 나쁘진 않으니🥲)
일단 오늘은 여기까지만 정리하고 다음엔 리스트와 딕셔너리를 정리해보도록 하겠다.