728x90

이번 장부터 파이썬 프로그래밍의 기초 자료형에 대해서 공부해보겠습니다.

자료형이란 프로그래밍을 할 때 사용되는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 의미합니다.

프로그램의 기본이자 핵심 단위가 자료형인 것입니다. 

이번 장부터 회색 박스에 들어있는 코드들은

반드시 Visual Studio Code에 직접 입력하시면서 공부하세요!!!

Visual Studio Code가 설치되지 않으신 분은 꼭 아래 이미지를 클릭하셔서 설치하시기 바랍니다!

 

#파이썬 - 3 (Visual Studio Code 설정)

파이썬과 에디터(Visual Studio Code)를 설치하지 않으신 분은 아래 이미지를 클릭하여 설치해주세요! #파이썬 - 2 (설치) 1. 파이썬 설치하기 아래 이미지를 클릭하여 다운로드 경로로 이동해주세요. D

novice-engineers.tistory.com

1. 숫자형

숫자형은 말 그대로 숫자 형태로 이루어진 자료형입니다. 우리가 평소에 사용하는 1,2,3 같은 정수 또는 1.1,2.2,3.3 같은 실수 말고도 8진수나 16진수 같은 것이 있습니다.

정수 1, 2, 3, ...
실수 1.1, 2.2, 3.3, ...
8진수 0o34, 0o13, ...
16진수 0x3B, 0x AA, ...

그렇다면 파이썬에서 숫자형을 사용하는 방법을 알아보겠습니다.

정수형: 말 그대로 정수를 뜻하는 자료형

a=1
b=-2
c=3
print(a)
print(b)
print(c)

기존에 C, C++, JAVA를 공부하셨던 분들은 int a = 1이라는 문장이 익숙하실 텐데 파이썬은 a=1과 같이 사용하게 됩니다.

 

실수형: 파이썬에서 실수형은 소수점이 포함된 숫자를 말합니다.

a=1.1
b=2.2
print(a)
print(b)

위 방식은 일반적으로 볼 수 있는 실수형의 소수점 표현 방식입니다.

a=3.21E10
b=3.21e-10
print(a)
print(b)

위 방식은 컴퓨터식 지수 표현 방식입니다. 파이썬에서는 위와 같이 표현하며 3.21E10은 3.21*10^10(10의 10 제곱), 

3.21e-10은 3.21*10^-10(10의 -10 제곱)을 의미합니다.

 

8진수와 16진수

8진수를 만들기 위해서는 0o 또는 0O(시작은 숫자 0 + 알파벳 소문자 o 또는 대문자 O)로 시작하면 됩니다.

16진수를 만들기 위해서는 0x(숫자 0 + 알파벳 소문자 x)로 시작하면 됩니다.

a=0o34  
b=0x10  
print(a) 
print(b) 

a=0o34  <8진수>    10진수 28 (011/100) 
b=0x10  <16진수>  10진수 16 (0001/0000)

8진수나 16진수는 파이썬에서 잘 사용하지 않는 형태이니 이러한 형태도 있다는 정도만 알아두시면 될 것 같습니다.

 

숫자형을 활용하기 위한 연산자

사칙연산: 수학 공부를 했을 때 사용했던 사칙연산과 동일한 의미입니다. (+, -, *, /)

a=2
b=5
print(a+b)    
print(a*b) 
print(a/b)  

print(a+b)    결과는 7
print(a*b)    결과는 10
print(a/b)    결과는 0.4

 

**연산자: **연산자는 제곱을 의미합니다.

a=2
b=4
print(a**b)

2^4 (2의4제곱)

2X2X2X2 =16

 

% 연산자: % 연산자는 나머지 값을 돌려주는 연산자입니다.

print(9%4)
print(4%9)

print(9%4)  9/4의 나머지는 1
print(4%9)  4/9의 나머지는 4

 

//연산자: 나눗셈 후 몫을 돌려주는 연산자입니다.

print(7/4)
print(7//4)

print(7/4)   7/4 = 1.75
print(7//4)  7//4 = 1 (몫은 1)

 

Quiz) 1. 연산자를 사용하여 18을 3으로 나누었을 때의 몫과 나머지를 구해보세요.

        2. 연산자를 사용하여 8의 9제곱을 구해보세요.

정답은 드래그를 이용하여 확인해주세요!

1. 몫 구하기: print(18//3)  |  나머지 구하기: print(18%3)

2. print(8**9)


2. 문자열 자료형

문자열이란 문자, 단어 등으로 구성된 문자들의 집합을 의미합니다.

  • "I love You"
  • "a"
  • "123"

파이썬을 시작으로 컴퓨터 언어를 처음 배우시는 분은 위에서 사용한 a=1을 생각하시고 숫자형이라고 생각하실 수 있을 건데요.

쉽게 생각해서 따옴표로 둘러싸여 있다면 모두 문자열이라고 생각하시면 됩니다!

 

문자열 사용방법

1. 큰 따옴표(") 사용

a = "I love You"
print(a)

2. 작은따옴표(') 사용 

a = 'I love You'
print(a)

3. 큰 따옴표 3개를 연속 사용 

a = """I love You"""
print(a)

4. 작은따옴표 3개를 연속 사용 

a = '''I love You'''
print(a)

방법이 4가지나 되는 이유를 알아봅시다!

1. 문자열에 작은따옴표를 포함시키고 싶은 경우

  • Here's to the ones that we got

위와 같은 문자열을 a라는 변수에 저장하고 싶을 때 문자열 중 Here's에 작은따옴표가 포함되어있습니다.

이럴 때는 다음과 같이 문자열을 큰따옴표로 감싸야합니다.

큰따옴표 안에 들어 있는 작은따옴표는 문자열을 표현하기 위한 기호로 인식되지 않기 때문입니다.

+변수란? : '변하는 수'로 변하는 값을 보관하는 장소라고 생각하시면 됩니다.

a = "Here's to the ones that we got"
print(a)

2. 문자열에 큰따옴표를 포함시키고 싶은 경우

  • "I love You." he says.

큰 따옴표를 포함시키고 싶은 경우는 1번과 반대로 작은따옴표로 감싸주면 됩니다.

a = '"I love You." he says.'
print(a)

3. 백 슬래시(\)를 사용해서 작은따옴표와 큰따옴표를 문자열에 포함시키고 싶은 경우

a = 'Cheers to the wish you were here, but you\'re not'
b = "\"I love You.\" he says."
print(a)
print(b)

 

- 여러 줄인 문자열을 변수에 대입하고 싶은 경우

I love You.

Me too.

1. 줄을 바꾸는 이스케이프 코드인 '\n' 삽입하기

a = "I love You.\nMe too."
print(a)

2. 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용

a = '''
I love You.
Me too.
'''
print(a)

b = """
I love You.
Me too.
"""
print(b)

+ 이스케이프 코드

이스케이프 코드는 미리 정의해 둔 문자 조합입니다.

\n 문자열 안에서 줄을 바꿈
\t 문자열 사이에 탭 간격을 줄임
\\ 문자 \를 그대로 표현함
\' 작은따옴표를 그대로 표현함
\" 큰따옴표를 그대로 표현함

위 코드 말고도 여러 가지가 있지만 가장 많이 사용하는 5개만 알아두시면 될 것 같습니다!

 

 

문자열 연산하기

파이썬에서는 문자열을 더하거나 곱할 수 있습니다. 파이썬만의 유용한 기능 중 하나입니다!

1. 문자열 더하기

a = "파이썬"
b = " 공부하기"
print(a+b)

2. 문자열 곱하기

a = "안녕"
print(a*2)

3. 문자열 곱하기 응용해보기

print("*"*30)
print("              별")
print("*"*30)

위와 같이 코드를 게시판 헤더 부분에 표시하는 경우를 종종 볼 수 있습니다.

4. 문자열 길이 구하기

len 함수를 사용하면 문자열의 길이를 구할 수 있습니다.

프로그램에서 문자열을 구하는 경우는 종종 있기 때문에 꼭 알아두시는 게 좋습니다!

a = "I love You."
print(len(a))

 

 

문자열 인덱싱과 슬라이싱

인덱싱: 보조 기억 장치에 저장되어 있는 데이터에 접근하기 위하여 색인을 사용하는 것. <네이버 사전>

슬라이싱: 일정한 면을 살려 얇게 써는 것.

문자열 인덱싱

a = "I Love You"
I   L o v e   Y o u
0 1 2 3 4 5 6 7 8 9

I Love You에서 I는 0번째 띄어쓰기인 빈 공간은 1번째가 됩니다.

직접 코드를 입력해 보세요.

a = "I Love You"
print(a[0])
print(a[1])

프로그래밍을 처음 접하시는 분이라면 a[1]이 I라고 생각하기 쉽습니다. 헷갈릴 수 있는데 아래와 같이 생각해주세요.

파이썬은 0부터 시작이다!!!

I   L o v e   Y o u
0 1 2 3 4 5 6 7 8 9
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

문자열 인덱싱 활용

a = "I love You"
print(a[-1])

위 코드를 실행해본다면 u가 나올 것입니다. 즉 a[-1]은 뒤에서부터 시작하여 첫 번째가 되는 문자를 표현합니다.

아마도 뒤에서부터 첫 번째라면 a[-0]이라고 생각하실 수 있을 거예요. 하지만 0과 -0은 똑같이 0이기 때문에

a[-0]과 a[0]은 똑같이 I가 출력됩니다.

즉 앞에서부터는 0부터 시작이고 뒤에서부터는 -1부터 시작이 됩니다.

print(a[-0]), print(a[-1]) print(a[-2])을 실행해보세요!

 

문자열 슬라이싱

"I love You" 문자열에서 한 문자만 뽑아내는 것이 아니라 'love' 나 'You' 같은 단어를 뽑아내는 방법을 알아보겠습니다.

a = "I love You"
b = a[2]+a[3]+a[4]+a[5]
print(b)

위 코드처럼 한문자씩 쪼개서 뽑아낼 수도 있지만 파이썬에서 제공하는 슬라이싱 기법을 사용한다면 간단하게 처리할 수 있습니다.

a = "I love You"
b=a[2:6]
print(b)

a[2:6]는 a 문자열인 "I love You" 문장에서 자리 번호 2부터 6번째 전까지 뽑아낸다는 뜻입니다.

여기서 중요한 점은 6번째 문자 전까지만 뽑아낸다는 것입니다.

★즉 출력하고 싶은 문자 +1 만큼까지 숫자를 표현해야 한다는 것입니다.

Quiz) You를 직접 출력해보세요

I   L o v e   Y o u
0 1 2 3 4 5 6 7 8 9
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

위 표를 참조하세요!

정답 print(a[7:10])

 

 

 

위 퀴즈의 정답을 다른 방식으로도 표현할 수 있습니다.

a = "I love You"
print(a[7:])

a[시작 번호:끝 번호]에서 끝 번호 부분을 생략하게 되면 시작 번호부터 문자열의 끝까지 뽑아내게 됩니다.

 

 

시작번호도 끝 번호와 같은 방식으로 생략이 가능합니다.

a = "I love You"
print(a[:6])

 

 

만약 a[:]같이 시작 번호와 끝 번호 둘 다 생략하게 된다면 어떻게 될까요?

a = "I love You"
print(a[:])

시작 번호부터 끝 번호까지 즉, 전체 문장을 출력하게 됩니다.

 

 

슬라이싱에서도 마이너스(-) 기호를 사용할 수 있습니다.

a = "I love You"
print(a[2:-3])

위 코드에서 a[2:-3]은 2번째부터 -4까지 출력하게 됩니다. -3은 출력하지 않습니다. 

여기서 -3은 Y이고 그렇다면 'love ' 띄어쓰기 빈 공간까지 출력되는 것입니다.

 

문자열 슬라이싱 활용

a="970812-1XXXXXX"
year=a[:2]
month=a[2:4]
day=a[4:6]
PersonalData=a[7:]


print(year)
print(month)
print(day)
print(PersonalData)

 

 

문자열 포매팅

문자열 포매팅이란 문자열 안에 어떠한 값을 삽입하는 방법입니다.

1. 숫자 대입하기 %d

print("나는 %d살 입니다." %7)

자신이 원하는 위치에 정수를 삽입하는 방법입니다. 정수를 넣고 싶은 자리에 %d 문자를 넣고 넣을 정수를 % 다음에 적어주었습니다. 여기서 %d는 문자열 포맷 코드라고 부릅니다.

 

2. 문자열 대입하기 %s

print("나는 %s살 입니다." %"일곱")

이번에는 문자열을 대입하는 방법입니다. 위와 같은 방식이지만 %s를 넣어주고 문자열을 넣어주기 때문에 % 다음에 큰따옴표를 감싼 모양입니다.

 

3. 숫자 값을 나타내는 변수 대입하기

age=7
print("나는 %d살 입니다." %age) 

변수를 생성하고 1번과 같은 방식으로 대입합니다.

 

4. 2개 이상의 값 대입하기

age=7
like="치킨"
print("나는 %d 살이고 %s를(을) 좋아합니다." %(age,like))

2개 이상의 값을 대입하기 위해서는 문자열 포맷 코드를 원하는 위치에 넣어주시고 % 뒤에 ()로 감싼 뒤 넣을 값을 , 로 구분하여 넣어주시면 됩니다.

여기서 중요한 것은 넣어주는 순서입니다. age는 정수형이고 like는 문자열인데 두 변수의 위치가 바뀌면 에러가 발생합니다.

 

문자열 포맷 코드

위에서 정수형과 문자열만 사용했지만 이 외에도 다양한 것을 대입할 수 있습니다.

%s 문자열
%c 문자 1개
%d 정수
%f 부동 소수
%o 8진수
%x 16진수
%% %자체

 

포맷 코드와 숫자 함께 사용하기

1. 소수점 표현하기

print("%0.4f" %3.1415926535)

파이값인 3.1415926535값을 소수점 4번째 자리까지만 나타내고 싶은 경우에는 위와 같이 사용합니다.

 

 

print("%10.4f" %3.1415926535)

여기서 %10.4는 전체 길이가 10개인 문자열 공간에서 오른쪽부터 정렬하는 예입니다.

 

 

format 함수를 사용한 포매팅

문자열의 format 함수를 사용하면 더 발전된 형태로 문자열 포맷을 지정할 수 있습니다.

1. 숫자 대입하기

print("나는 {0}살 입니다.".format(7))

{0} 부분에 정수 7을 대입하는 방법입니다.

 

2. 문자열 대입하기

print("나는 {0}살 입니다.".format("일곱"))

 

 

3. 숫자 값을 나타내는 변수 대입하기

age=7
print("나는 {0}살 입니다.".format(age)) 

변수를 생성하고 1번과 같은 방식으로 대입합니다.

 

4. 2개 이상의 값 대입하기

age=7
like="치킨"
print("나는 {0} 살이고 {1}를(을) 좋아합니다.".format(age,like))

 

 

문자열 포맷 코드에서 %를 {}로 사용한다고 생각하시면 될 것 같습니다.

 

5. 이름으로 대입하기

print("나는 {age} 살이고 {like}를(을) 좋아합니다.".format(age=7,like="치킨"))

{숫자} 대신 더 명시적으로 {변수명}을 사용하는 방법입니다.

 

6. 인덱스와 이름을 혼용하여 대입하기

print("나는 {0} 살이고 {like}를(을) 좋아합니다.".format(7,like="치킨"))

혼합하여 사용도 가능합니다.

 

7. 왼쪽, 가운데, 오른쪽 정렬

print("{0:<10}".format("안녕"))
print("{0:^10}".format("안녕"))
print("{0:>10}".format("안녕"))

<는 왼쪽 정렬, ^는 가운데 정렬, >는 오른쪽 정렬입니다.

8. 공백 채우기

print("{0:*^10}".format("안녕"))
print("{0:-^10}".format("안녕"))

 

자료형 2부는 다음장에서 더 다루도록 하겠습니다.

728x90

'Python' 카테고리의 다른 글

# 파이썬 - 6 (기초3)  (0) 2021.05.11
#파이썬 - 5 (기초2)  (3) 2020.07.05
#파이썬 - 3 (Visual Studio Code 설정)  (2) 2020.07.02
#파이썬 - 2 (설치)  (2) 2020.07.01
#파이썬 - 1 (소개)  (0) 2020.06.28

+ Recent posts