이번 장부터 파이썬 프로그래밍의 기초 자료형에 대해서 공부해보겠습니다.
자료형이란 프로그래밍을 할 때 사용되는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 의미합니다.
프로그램의 기본이자 핵심 단위가 자료형인 것입니다.
이번 장부터 회색 박스에 들어있는 코드들은
반드시 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부는 다음장에서 더 다루도록 하겠습니다.
'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 |