본문 바로가기

프로그래밍(Programming)/파이썬(Python)

파이썬 자료형 0 - 숫자형, 문자형

반응형

파이썬 자료형 0 - 숫자형, 문자형

 

저번 시간에는 파이썬이 뭔지 그리고 파이썬을 설치하고

visual studio code를 설치를 하고 Hello World를 출력을 해보았습니다.

 

아래 링크는 파이썬이 무엇이고 무얼을 할 수 있는지를 설명한 글입니다.

 

파이썬은 무엇이고 무엇을 할 수 있을까

파이썬은 무엇이고 무엇을 할 수 있을까 파이썬은 1991년 귀도 반 로섬이라는 프로그래머가 파이썬을 개발을 했습니다. 귀도 반 로섬은 네더란드 출신이고 2005년~2013년 구글에 일했으며 2013년

allprogrammertistory.com

 

아래 링크는 파이썬 설치와 visual studio code 설치 후 Hello World 출력을 해보는 글입니다.

 

파이썬 설치하고 visual studio code 설치 후 Hello World 출력

파이썬 설치하고 visual studio code 설치 후 Hello World 출력 Python 설치 https://www.python.org Welcome to Python.org The official home of the Python Programming Language www.python.org 위 링크 방문..

allprogrammertistory.com

이번에는 자료형에 대해 알아보겠습니다.

 

변수와 상수

변수의 뜻은 변하는 수입니다.

C, C++, C#, 자바, 파이썬, PHP, JS 등등 프로그래밍에서는 데이터들을 저장을 해야 할 때 가있습니다.

그래서 변수라는 것이 있는데 이 변수에 이름을 정해주고

데이터를 저장을 하는 것이죠!

 

상수는 변하지 않는 수입니다.

파이썬에서는 상수가 없습니다.

 

변수 선언 시 주의 사항 및 규칙은

변수명 앞에는 숫자가 올 수가 없습니다.

특수문자를 쓸 수가 없습니다.

_는 제외

자료형으로는 숫자형, 문자형, 리스트, 튜플, 딕셔너리 등등이 있습니다.

 

아래는 간단 예시

intnum = 100
_int0num1 = 200

floatnum = 31.2
float_1num = 3.14

str0 = "Hello"

list0 = [a, 'Hello', 1125]

tuple0 = (num0, 'World', 325)

dictionary0 = {'name':'Lee'}

 

숫자형

숫자형(Nuber)은 숫자 형태로 이루어진 자료형으로 우리가 이미 잘 알고 있는 것입니다.

 

10, 20, 1000 같은 숫자는 정수형

1.2, 3.14, 0.5 같은 숫자는 실수형

파이썬에서 드물게 사용하긴 하지만 8진수와 16진수 같은 것도 사용도 하긴 합니다.

 

아래 표는 파이썬 숫자형을 어떻게 사용하는지 간략하게 보여주는 표입니다.

 

항목 사용 예
정수형 -500, -10, -20, 0, 10, 20, 100,
실수형 -10.1, -100.52, 100.15, 20.1, 10.2e65
8진수(Octal Number) 0o10, 0o7, 0o26, 0o265
16진수(Hexadecimal) 0x10, 0xaf, 0xff, 0x9a, 0xfb

위에 표처럼 이런 숫자들은 파이썬에서 어떻게 만들고 사용하는지 보여드리겠습니다.

 

정수형(Integer)

intnum0 = 100
intnum1 = -20
intnum2 = 0

정수형은 말 그대로 정수를 뜻하는 것이므로

예시는 양의 정수인 100과 음의 정수인 -20과 숫자 0을 위 intnum0, intnum1, intnum2에 대입하는 예입니다.

 

실수형(Floating Point)

floatnum0 = 10.2
floatnum1 = 3.14
floatnum2 = -1.13

위 코드와 같이 소수점이 포함된 것이 실수형입니다.

floatnum0에 10.2 floatnum1에 3.14, floatnum2에 -1.13을 대입한 것처럼 실수에도 양수와 음수도 있습니다.

위 코드는 우리가 일반적으로 보는 실수형입니다.

 

floatnum0 = 20.1e10
floatnum1 = 1.32e10
floatnum2 = 3.14E20

위 코드도 실수형입니다.

이것 같은 경우는

20.1e10은 20.1 *(곱하기) 1010

1.32e10은 1.32 *(곱하기) 1010

3.14E20은 3.14 *(곱하기) 1020
위와 같이 의미합니다.

e와 E는 어는 것을 사용을 해도 무방합니다.

 

8진수와 16진수

octanum0 = 0o7
octanum1 = 0o165
octanum2 = 0O647
octanum3 = 0O6327

hexanum0 = 0x10
hexanum1 = 0xfa
hexanum2 = 0Xf9a
hexanum3 = 0X94fa

위 코드와 같이 8진수와 16진수를 이렇게 사용을 할 수가 있습니다.

8진수는 0~7까지 이고 숫자 0에 소문자 알파벳 o와 대문자 알파벳 O와 0~7까지의 숫자가 올 수가 있습니다.

 

16진수는 0~9~a~f까지 이고 숫자 0에 소문자 x알파벳과 대문자 X 알파벳과 0~9~a~f까지의 숫자가 올 수가 있습니다.

 

연산자

사칙 연산자

프로그래밍을 해본 적이 없는 분이라도 +, - *, /를 알고 있을 분이 계실 분 있긴 하겠지만 모르는 분들도 계실 겁니다.

+와 -는 아실 것이고 *는 곱하기 /는 나누기입니다.

num0 = 20
num1 = 30
print("20 + 30 =", num0 + num1)

num0 = 60
num1 = 20
print("60 - 20 =", num0 - num1)

num0 = 10
num1 = 7
print("10 x 7 =", num0 * num1)

num0 = 20
num1 = 3
print("20 / 3 =", num0 / num1)

위 코드와 같이 visual studio code로 직접 프로그래밍을 해보세요.

 

이렇게 뜰 겁니다!

저렇게 말고도 숫자를 바꿔 가면서 해보세요.

 

**(제곱) 연산자

num0 = 5
num1 = 4
print(num0 ** num1)

위 코드 같은 경우는 5를 4번 곱하는 것입니다.

 

여러분들도 똑같이 코드를 작성을 해보시고 실행시켜주세요.

 

5 * 5 * 5 * 5 = 625 잘 나옵니다.

 

%(나머지) 연산자

num0 = 1234
num1 = 1000
print(num0 % num1)

위 코드를 직접 visual studio code에 작성을 해보세요.

 

이렇게 나옵니다.

나머지 연산자 실전에서도 많이 사용하므로 잘 알고 계시는 게 좋습니다.

자세한 건 나중에 알려드리겠습니다.

 

//(나눗셈 몫) 연산자

num0 = 15
num1 = 7
print(num0 // num1)

위 코드를 직접 visual studio code에 작성을 해보세요.

 

15 // 7은 2가 나오고

15 / 7은 2.142857142857143가 나옵니다.

 

 

문자형

문자형은 문자 형태로 이루어진 자료형입니다.

파이썬에서는 영어와 한국어가 사용이 가능합니다.

참고로 변수도 한국어가 가능합니다.

c언어는 변수를 영어와 일부 특수 문자만 가능합니다.

 

파이썬에서 문자를 사용할 때는

"Hello"

"안녕하세요"

'안녕하세요'

'hi'

"""Hello All World"""

"""Hello"""

"""안녕"""

'''hello world'''

'''Hello'''

'''반가워요'''

안녕하세요 = "안녕하세요"
str = 'Hello World 안녕하세요!'
hello안녕1 = '''hello 올 월드'''

print(안녕하세요)
print(str)
print(hello안녕1)

이런 식으로 사용이 가능합니다.

 

문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을 때는 아래와 같이 사용을 합니다.

 

문자열에 작은따옴표를 포함을 시키고 싶을 때

str0 = 'Hello Python' World'와 같이 할 때는 오류가 납니다.

str1 = "Hello Python' World"와 같이 할 때는 오류가 안 나고 잘 출력이 됩니다.

str0 = 'Hello Python' World' #오류가 납니다. syntaxerror: invalid syntax 이런식으로 뜹니다.
str1 = "Hello Python' World" # 오류가 없습니다.

print(str0) #오류
print(str1) #str0 변수를 제거및 주석 처리 하거나 오류 처리를 한다면 잘 출력이 됩니다.

이와 같이 큰따옴표 안에 작은따옴표 사용이 가능합니다.

 

문자열에 큰 따옴표를 포함하고 싶을 때는

str0 = "Hello "Python" World"와 같이 할 때는 오류가 납니다.

str1 = 'Hello "Python" World'와 같이 할 때는 오류가 안 나고 잘 출력이 됩니다.

str0 = "Hello "Python" World" #오류가 납니다. syntaxerror: invalid syntax 이런식으로 뜹니다.
str1 = 'Hello "Python" World' # 오류가 없습니다.

print(str0) #오류
print(str1) #str0 변수를 제거및 주석 처리 하거나 오류 처리를 한다면 잘 출력이 됩니다

이와 같이 작은따옴표 안에 큰 따옴표 사용이 가능합니다.

 

\(백슬래시또는 역슬래시또는 원화라고 하는데)를 사용하면 작은따옴표와

큰 따옴표문자열에 포함시킬수가 있습니다.

 

언어가 영어로 되어있다면 원화가 아니라 역슬래시 모양으로 될겁니다.

역슬래시의 위치는 엔터키위에 백스페이스 아래 부분에 있습니다.

 

str0 = "Hello \"Python\" World"

str1 = 'Hello Python\' World'

str0 = "Hello \"Python\" World"
str1 = 'Hello Python\' World'

print(str0)
print(str1)

위 코드와 같이 쓸수 있습니다.

 

변수를 여러줄인 문자열에 대입하고 싶을 때는

Hello

          Programmer

Blog

이런식으로 하고싶다면

 

첫번째 방법으로는 \n을 사용을 해서 할수가 있습니다.

str0 = "Hello\nProgrammer\nBlog"

str0 = "Hello\nProgrammer\nBlog"
print(str0)

 

작은 따옴표를 이용하여 할수도 있습니다.

str0 = '''Hello

Programmer

Blog'''

str0 = '''Hello
Programmer
Blog'''
print(str0)

 

큰 따옴표를 이용하여 할수도 있습니다.

str0 = """Hello

Programmer

Blog"""

str0 = """Hello
Programmer
Blog"""
print(str0)

 

이스케이프 코드

\n 줄 바꾸기
\a 소리(출력을 할때 스피커에서 삑 소리가 납니다.)
\\ \를 그대로 출력
\' 작은 따옴표를 그대로 출력
\" 큰 따옴표를 그대로 출력
\r 캐리지 리턴(줄 바꿈 문자 현재 커서를 가장 앞으로 이동합니다)
\f 폼 피드(줄 바꿈 문자 현재 커서를 다음 줄로 이동)
\t
\b 백 스페이스
\000 NULL 문자

C언어에서도 위에 있는것들 사용합니다.

C에서는 \000이 아니라 \0입니다.

 

문자 연산

str0 = "Hello"

str1 = "World"

r = str0 + str1

str0 = "Hello"
str1 = "World"
r = str0 + str1

print(str0) #Hello 출력
print(str1) #World 출력
print(r) #HelloWorld출력

두 문자를 더하므로 HelloWorld가 출력이 됩니다.

 

문자 곱하기

str0 = "Hello"

str0 * 5

str0을 다섯 번 곱하므로 Hello가 5번이 나옵니다.

str0 = "Hello"

print(str0 * 5)

 

문자열 길이를 구하는 문자열 함수 사용해보기

len()이라는 함수입니다.

얘는

str0 = "Hello Programmer Blog"

strlen = len(str0)

str0 = "Hello Programmer Blog"
strlen = len(str0)

print(str0)
print(strlen)

이렇게하면 str0은 당연히 Hello Programmer Blog가 출력이 될꺼고

strlen은 21이 출력이 될겁니다.

공백도 합친 값 입니다.

 

 

문자열 인덱싱

str0 = "Hello Programmer Blog"

str0[] 이런식으로 합니다.

 

str0[0]은 H가 나옵니다.

 

str0[5]는 공백이 나옵니다.

str0[10]은 r이 나옵니다.

 

이게 이렇게 나오는 이유는 0은 Hello Programmer Blog에서 Hello의 H 입니다.

5는 Hello Programmer Blog에서 HelloProgrammer 사이인 공백입니다.

10은 Programmer에서 Progr <-- 이부분인 r입니다.

 

str0[-1]은 g가 나옵니다.

str0[-4]는 B가 나옵니다.

 

str0[-1]이거는 0을 기준으로 해서 -1로 가라 이니까 Blog에서 g가 나오는겁니다.

str0[-4]는 Blog부분에서 B가 나옵니다.

str0 = "Hello Programmer Blog"

print(str0[0]) #H가 출력이 됩니다.
print(str0[5]) #공백이 출력이 됩니다.
print(str0[10]) #r이 출력이 됩니다.

print(str0[-1]) #g가 출력이 됩니다.
print(str0[-4]) #B가 출력이 됩니다.

 

문자열 슬라이싱

str0 = "Hello Programmer Blog World"

str0[6:16]

6:16은 6번째에서 16번째 까지 입니다.

Programmer이죠

 

str0 = "Hello Programmer Blog World"

str1 = str[6] + str[7] + str[8] + str[9] + str[10] + str[11] + str[12] + str[13] + str[14] + str[15] + str[16]

이거는 6번째부터 16번째가지 더하는거니까

얘도 Programmer입니다.

str0 = "Hello Programmer Blog World"

str1 = str[6] + str[7] + str[8] + str[9] + str[10] + str[11] + str[12] + str[13] + str[14] + str[15] + str[16]

print("str0: ",str[6:16])
print("str1: ",str1)

 

 

 

문자열에 변수 혹은 숫자나 문자를 바로 대입

 

strnum0 = "안녕하세요 저는 %d살 입니다." % 19

strnum1 = "안녕하세요 저는 %s입니다." % "고딩"

이런식으로 가능합니다.

 

str2 = "안녕하세요 저는 %d살 %s 입니다." % 19 % "고딩"

이런식으로 하면 오류가 납니다.

 

그래서

 

strnum3 = "안녕하세요 저는 %d살 %s이고 %s 출신 입니다." %(19, "고딩", "전주")

이런식으로 가능합니다.

strnum0 = "안녕하세요 저는 %d살 입니다." % 19

strnum1 = "안녕하세요 저는 %s입니다." % "고딩"

strnum2 = "안녕하세요 저는 %d살 %s 입니다." % 19 % "고딩" #오류가 나므로 이부분은 지우시거나 주석 처리 해주세요

strnum3 = "안녕하세요 저는 %d살 %s이고 %s 출신 입니다." %(19, "고딩", "전주")

print(strnum0)
print(strnum1)
print(strnum3)

print("안녕하세요 저는 %d살 %s이고 %s 출신 입니다." %(19, "고딩", "전주"))

 

문자열 포맷 코드

코드 설명
%c 문자 1개(Character)
%s 문자열(String)
%d 정수(Integer, 10진수, Decimal)
%o 8진수(Octal Number)
%x 16진수(HexaDecimal)
%f 부동소수(Floating Point)
%% Literal %(% 자체)

 

 

긴글 읽어주셔서 감사합니다.

 

숫자형과 문자형은 여기까지 하고 다음 강좌글에는 리스트와 튜플 글들을 올리도록 하겠습니다.

반응형