Python

Python 스터디 2장 - 파이썬 프로그래밍의 기초, 자료형 (1)

공대생철이 2023. 6. 25. 21:47
728x90

언어를 배울 때 기본적인 품사를 배우는 것과 마찬가지로 기본적인 자료형에 대해서 배우고 가보자.

 

파이썬은 총 7개의 자료형이 있다.

- 숫자형

- 문자열 자료형

- 리스트 자료형

- 튜플 자료형

- 딕셔너리 자료형

- 집합 자료형

- 불 자료형

 

1. 숫자형

 

별 거 없다. 말 그대로 그냥 숫자들을 나타내는 것이다. 정수, 실수 모두 아우르고 있고 8진수와 16진수까지 포함한다. 

// 8진수
a = 0o177

// 16진수
a = 0x8ff

이런 애들도 모두 파이썬에서 사용 가능한 숫자 자료형이다.

 

숫자형 데이터를 활용해서 사칙연산은 물론 몫 (//), 나머지(%), 제곱(**)을 나타내는 계산도 가능하다.

 

2.  문자열 자료형

 

아마 모든 프로그래밍 언어에서 가장 많이 다루는 자료형일 것 같다.

따옴표를 활용해서 문자, 단어로 구성된 집합을 표현할 수 있다. 

 

"Python"
"""Python"""

"\"Python is so EZ\" he says."

문자열 안에 따옴표를 활용해서 나타내야하면 역슬래시(\)를 활용해서 나타낼 수 있다.

 

줄을 바꾸고 싶을 떈 \n을 활용하면 된다.

역슬래시(\)를 활용한 이스케이프 코드는 이외에도 여러개가 있다. (아래 링크 참조)

 

Python 문자열 정리

이스케이프 코드(Escape Code)

medium.com

 

문자열에도 여러가지 연산자를 사용할 수 있다.

 

덧셈으로 여러개의 문자열을 연결할 수도 있고

곱셈으로 문자열을 반복해서 출력할 수도 있다.

 

다른 프로그래밍 언어와 똑같이 문자열의 인덱싱을 할 때 0부터 시작해서 1씩 올라간다.

-1은 맨 마지막 문자를 가리키고 -2, -3....작아질 수록 오른쪽에서부터 왼쪽으로 1칸씩 이동한다고 보면 된다.

 

이 인덱스를 활용해서 문자열의 일부를 추출하는 슬라이싱이 가능하다.

a = "Life is too short, You need Python"
a[0:4]
// "Life"

이런 문자열이 있을 때 :을 통해서 슬라이싱이 가능하다.

위의 예시 같은 경우 0:4로 나와있으면 0번 인덱스부터 4번 인덱스까지(맨 끝 인덱스는 제외)하여 추출하는 것이다.

그래서 3번 인덱스에 해당하는 e까지 해서 "Life"가 추출되게 된다.

 

a[:4]

a[6:]

첫번째 경우는 처음부터 4번 인덱스까지 슬라이싱을 하는 거고

두번째 경우는 6번 인덱스부터 끝까지 슬라이싱을 하는 거다.

양 끝 점이 기준점 중 하나일 때는 굳이 0 이나 문자열의 길이를 넣어주지 않고 위와 같은 문법을 활용하면 된다.

 

문자열에 다른 값들을 넣어주고 싶을 땐 어떻게 할까?

문자열 포맷팅이라는 것을 하면 된다. 

"I eat %d apples." % 3
// I eat 3 apples

"I eat %s apples." % "fives"
//I eat five apples

%d, %s를 활용해서 숫자나 문자열을 다른 문자열 안에 대입 시켜주는 것이 가능하다.

이외에도 자료형에 따라 %c, %f, %o 등등 여러개의 문자열 포맷 코드가 있는데 이건 구글링하면서 찾아보자.

 

다음은 포맷 코드이다.

기존에 공부했던 자바스크립트에서는 보지 못했던 문법인데 문자열의 정해진 길이가 있고 이 안에서 정렬하는 하는 것도 가능하다.

"%10s" % "hi"
// '        hi'

"%0.4f" % "3.41234234
// 3.4123

"%10.4f" % 3.42312
//'    3.4231'

1번째 경우는 총 길이가 10인 문자열이 있는데 대입한 문자열을 오른쪽으로 정렬하고 나머지는 공백으로 채우겠다라는 의미다.

2번째 경우는 소수점이 오는 데 소수점 아래 넷째 자리에서 자르겠다라는 의미다.

3번째 경우는 문자열을 오른쪽 정렬해서 반올림한 소수를 대입한 것이다.

 

솔직히 엄청 불편해보였다.

나만 그렇게 생각한 건 아니였는지 좀 더 업그레이된 버전의 문법이 있었다.

"I eat {0} apples".format(3)
// "I eat 3 apples"

format 함수를 활용해서 중괄호 안에 값을 대입시켜줄 수 있다. 

여러개의 값을 대입하고 싶으면 중괄호 여러개 열어서 순서에 맞게 뒤에 불러오면 끝이다.

 

"{0:>10}".format("hi")
// "        hi"

"{0:<10}".format("hi")
//"hi        "

"{0:^10}".format("hi")
//"    hi    "

위와 같이 왼쪽, 오른쪽, 가운데 정렬 상태도 지저애서 대입해줄 수 있다.

 

최근에는 f문자열 포맷팅이라는 기능도 있다.

name = "홍길동"
age = 30
f'나의 이름은 {name}이고, 나이는 {age}입니다."
// 나의 이름은 홍길동이고, 나이는 30입니다.

앞에 f를 써주고 중괄호 안에 값을 참조해올 수 있다.

 

문자열 자료형은 자체적으로 가지고 있는 함수들이 있다.

.count

.find

.index

.join

.upper

.lower

.lstrip

.rstrip

.strip

.replace

.split

등등 여러개의 내장 함수가 있다. 

 

아마 이름만 봐도 어떤 기능을 하는 함수인지 느낌이 올 것이다. 일일이 하나씩 다 나열해서 설명하기에는 너무 많으니 구글링으로 자세한 예시를 살펴보자.

 

여기까지 숫자와 문자열 자료형에 대해서 살펴봤다.

문자열 자료형이 정말 범위가 넓은데 뭔가 다 외우려고 한다기보다는 많이많이 쳐보면서 자연스럽게 체득하는 방향으로 공부하면 좋을 것 같다.

728x90