히가의 devlog

[혼자 공부하는 파이썬] Chapter 02 자료형 본문

Python/기초

[혼자 공부하는 파이썬] Chapter 02 자료형

히가 2022. 3. 2. 16:14

혼자 공부하는 파이썬 Chapter02. 자료형

1. 기본 자료형

1) 문자열(string), 숫자(number), 불(boolean)

2) type() 함수 : 자료형 확인 함수

print(type("heega의 블로그에 오신 것을 환영합니다."))
#출력 : 
#<class 'str'>

print(type(55))
#출력 : 
#<class 'int'>

 

 

2. 문자열(string) 만들기

1) 큰따옴표로 문자열 만들기

print("heega의 블로그에 오신 것을 환영합니다.")
#출력 : 
#heega의 블로그에 오신 것을 환영합니다.

2) 작은따옴표로 문자열 만들기

print('heega의 블로그에 오신 것을 환영합니다.')
#출력 : 
#heega의 블로그에 오신 것을 환영합니다.

3) 문자열 내부에 따옴표 넣기

① 큰 따옴표를 문자열 내부에 넣기 : 작은따옴표로 문자열 만들기

print('"heega의 블로그에 오신 것을 환영합니다."라고 말했습니다.')
#출력 : 
#"heega의 블로그에 오신 것을 환영합니다."라고 말했습니다.

② 작은 따옴표를 문자열 내부에 넣기 : 큰 따옴표로 문자열 만들기

print("'heega의 블로그에 오신 것을 환영합니다.'라고 말했습니다.")
#출력 : 
#'heega의 블로그에 오신 것을 환영합니다.'라고 말했습니다.

4) 이스케이프 문자를 사용해 문자열 만들기

① 이스케이프 문자 : 역 슬래쉬( \ or )기호와 함께 조합해서 사용하는 특수한 문자

" : 큰 따옴표 의미 

' : 작은따옴표 의미

print("\"heega 블로그에 오신 것을 환영합니다.\"라고 말했습니다.")
#출력 : 
#"heega의 블로그에 오신 것을 환영합니다."라고 말했습니다.

print('\'heega 블로그에 오신 것을 환영합니다.\'라고 말했습니다.')
#출력 : 
#'heega의 블로그에 오신 것을 환영합니다.'라고 말했습니다.

n : 줄바꿈 의미

t : 탭 의미

print("안녕\n반가워")
#출력 :
#안녕
#반가워

print("안녕\t반가워")
#출력 :
#안녕		반가워

: 역슬래쉬()의미

print("\\ \\ \\ \\")
#출력
#\ \ \ \

5) 여러 줄 문자열 만들기(""" or ''')

① 엔터를 누르는 곳마다 줄 바꿈

② 출력 문장 위아래로 줄 바꿈이 들어감

print("""
지금부터 시작해봐 앞을 달려
Running running 세상에 소리쳐
막다른 길이 나타나도 난 괜찮아
지금부터 시작해봐 앞을 달려
Running running 너와 함께라면
뭐든 할 수 있어
끝없이 달려봐 거친 세상 속
""")
#출력
#
#지금부터 시작해봐 앞을 달려
#Running running 세상에 소리쳐
#막다른 길이 나타나도 난 괜찮아
#지금부터 시작해봐 앞을 달려
#Running running 너와 함께라면
#뭐든 할 수 있어
#끝없이 달려봐 거친 세상 속
#

6) 줄바꿈 없이 문자열 만들기 : 출력 문장 위아래로 줄바꿈 없애기

print("""\
지금부터 시작해봐 앞을 달려
Running running 세상에 소리쳐
막다른 길이 나타나도 난 괜찮아
지금부터 시작해봐 앞을 달려
Running running 너와 함께라면
뭐든 할 수 있어
끝없이 달려봐 거친 세상 속\
""")
#출력 :
#지금부터 시작해봐 앞을 달려
#Running running 세상에 소리쳐
#막다른 길이 나타나도 난 괜찮아
#지금부터 시작해봐 앞을 달려
#Running running 너와 함께라면
#뭐든 할 수 있어
#끝없이 달려봐 거친 세상 속

 

3. 문자열 연산자

1) 문자열 연결 연산자(+)

① 두 문자열을 연결해서 새로운 문자열 만드는 연산자

"문자열" + "문자열"

print("환영"+"대환영")
#출력 :
#환영대환영

③ 숫자라고 하더라도 문자열과 함께 +연산하려면 큰 따옴표를 붙여서 문자열로 인식시켜야 함

print("비타"+"500")
#출력 :
#비타500

2) 문자열 반복 연산자(*)

① 문자열을 숫자만큼 반복해서 출력하는 연산자

 "문자열" * 숫자 or 숫자 * "문자열"

print("환영합니다"*3)
#출력 :
#환영합니다환영합니다환영합니다

print(3*"환영합니다")
#출력 :
#환영합니다환영합니다환영합니다

3) 문자열 선택 연산자(인덱싱) : []

① 문자열 내부의 문자 하나를 선택하는 연산자

② [] 안에는 선택할 문자의 위치를 지정

③ 파이썬은 숫자를 0부터 세는 제로 인덱스

[0] [1] [2] [3] [4]

 

print("반갑읍니다"[0])
#출력 :
#반

print("반갑읍니다"[1])
#출력 :
#갑

④ 문자 거꾸로 출력하기

[-5] [-4] [-3] [-2] [-1]

 

print("반갑읍니다"[-1])
#출력 :
#다

print("반갑읍니다"[-2])
#출력 :
#니

4) 문자열 범위 선택 연산자(슬라이싱) : [ : ]

① 문자열의 특정 범위를 선택할 때 사용하는 연산자

② 파이썬은 마지막 숫자를 포함하지 않음

③ 뒤의 값을 생략할 경우 자동으로 가장 최대 위치(마지막 글자)까지,

    앞의 값을 생략할 때는 가장 앞쪽의 위치(첫 번째 글자)까지 지정

print("반갑읍니다"[1:3])
#출력 :
#갑읍

print("반갑읍니다"[:4])
#출력 :
#반갑읍니

print("반갑읍니다"[2:])
#출력 :
#읍니다

④ 문자열 선택자로 슬라이스를 하더라도 원본은 변하지 않음

hello="안녕하세요"

print(hello[0:2])
#출력 :
안녕

hello
#출력 :
'안녕하세요'

5) IndexError(index out of range) 예외 : 리스트/문자열의 수를 넘는 요소/글자를 선택할 때 발생

print("반갑읍니다"[8])
#출력 :
#IndexError: string index out of range

 

 

4. 문자열의 길이 구하기

1) len 함수 : 문자열에 들어있는 문자의 개수(문자열의 길이) 구할 때 사용

print(len("반갑읍니다"))
#출력 :
#5

 

 

5. 숫자의 종류

1) int(integer) : 정수

2) float(floating point) : 부동소수점(실수)

print(type(52))
#출력 :
#<class 'int'>

print(type(52.111))
#출력 :
#<class 'float'>

 

 

6. 숫자 연산자

1) 사칙 연산자 : +, -, *, /

print(3+3)
#출력 :
#6

print(9-1)
#출력 :
#8

print(2*2)
#출력 :
#4

print(8/4)
#출력 :
#2.0

2) 정수 나누기 연산자 : //

① 숫자를 나누고 소수점 이하의 자릿수를 떼어 버린 후, 정수 부분만 남기는 연산자

print(8/4)
#출력 :
#2.0

print(8//4)
#출력 :
#2

3) 나머지 연산자 : %

① A를 B로 나누었을 때 나머지를 구하는 연산자

print(15%2)
#출력 :
#1

4) 제곱 연산자 : **

① 숫자를 제곱하는 연산자

print(2**3)
#출력 :
#8

 

 

7. 연산자의 우선순위

1) 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선

2) 같은 우선순위를 가지는 연산자는 왼쪽에서 오른쪽 순서대로 계산

3) 먼저 연산하고 싶은 부분이 있거나 연산자의 우선순위가 헷갈릴 경우 괄호로 묶어주기

print(5+3*2)
#출력 :
#11

print((5+3)*2)
#출력 :
#16

4) Type Error 예외 : 서로 다른 자료 연산 시 발생

string="반갑읍니다"
number=52
string+number

#출력 :
#can only concatenate str (not "int") to str

 

 

8. 변수 만들기/사용하기

1) 변수=값 : 값을 변수에 할당

pi=3.14
r=10

print("원주율=",pi)
print("반지름=",r)
print("원의 둘레=",2*pi*r)
print("원의 넓이=",pi*r*r)

#출력 :
#원주율=3.14
#반지름=10
#원의 둘레=62.800000000000004
#원의 넓이=314.0

 

 

9. 복합 대입 연산자

1) 변수를 활용하여 기존의 연산자와 조합해서 사용

2) 숫자에 적용할 수 있는 복합 대입 연산자

+= 숫자 덧셈 후 대입
-= 숫자 뺄셈 후 대입
*= 숫자 곱셈 후 대입
/= 숫자 나눗셈 후 대입
%= 숫자의 나머지를 구한 후 대입
**= 숫자 제곱 후 대입
number+=100
number+=10
number+=20
number+=300
print(number)

#출력 :
#430

3) 문자에 적용할 수 있는 복합 대입 연산자

+= 문자열 연결 후 대입
*= 문자열 반복 후 대입
string="반갑읍니다"
string+=":"
string+=")"
print(string)

#출력 :
#반갑읍니다:)

 

 

10. 사용자 입력 : input()

1) 명령 프롬프트에서 사용자로부터 데이터를 받을 때 사용

2) input() 함수의 결과는 무조건 문자열 자료형

number=input("숫자를 입력해주세요>")
print(number)
print(type(number))

#출력
#숫자를 입력해주세요> 123
#123
#<class 'str'>

 

 

11. 문자열을 숫자로 바꾸기

1) 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용 가능

2) int() 함수 : 문자열을 int 자료형으로 변환

3) float() 함수 : 문자열을 float 자료형으로 변환

number1=int(input("숫자를 입력해주세요>"))
print(type(number1))

number2=int(input("숫자를 입력해주세요>"))
print(type(number2))

print(number1+number2)

#출력 :
#숫자를 입력해주세요>111
#<class 'int>
#숫자를 입력해주세요>123
#<class 'int>
#234

4) ValueError 예외 : 숫자가 아닌 것을 숫자로 변환하려고 할 때나 소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환하려고 할 때 발생

int("반갑읍니다")
float("반갑읍니다")

#출력 :
#ValueError: invalid literal for int() with base 10: '반갑읍니다'

int("52.123")

#출력 :
#ValueError: invalid literal for int() with base 10: '52.123'

 

 

12. 숫자를 문자열로 바꾸기

1) str() 함수 : 다른 자료형을 문자열로 변환

string=str(52)
print(type(string))

#출력 :
#<class 'str>

 

 

13. 문자열의 format() 함수

1) 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 나서 사용

2) 중괄호의 개수와 format 함수 괄호 안에 매개변수의 개수는 반드시 같아야 함

format_a="{}만원".format(100)
format_b="{} {} {}".format(1,"문자열",True)
print(type(format_a))
print(format_a)
print(format_b)

#출력 :
#<class 'str'>
#100만원
#1 문자열 True

3) Index Error 예외 : {} 기호의 개수가 format() 함수의 매개변수보다 많을 때 발생

format_a="{} {}".format(1,2,3,4,5)
print(format_a)
#출력 :
#'1 2'

format_b="{} {} {}".format(1,2)
print(format_b)
#출력 :
#IndexError: Replacement index 2 out of range for positional args tuple

 

 

14. format() 함수의 다양한 기능

1) 정수 출력의 다양한 형태

#기본
format_a="{:d}".format(52)

#특정 칸에 출력하기
format_b="{:5d}".format(52) #5칸
format_c="{:10d}".format(52) #10칸

#빈칸을 0으로 채우기
format_d="{:05d}".format(52) #양수
format_e="{:05d}".format(-52) #음수

#출력 :
#52
#   52
#        52
#00052
#-0052
#기호와 함께 출력하기
format_f="{:+d}".format(52) #양수
format_g="{:+d}".format(-52) #음수
format_h="{: d}".format(52) #양수 : 기호 부분 공백
format_i="{: d}".format(-52) #음수 : 기호 부분 공백

print(format_f)
print(format_g)
print(format_h)
print(format_i)

#출력 :
#+52
#-52
# 52
#-52
#조합하기
format_j="{:+5d}".format(52) #양수 : 기호를 뒤로 밀기
format_k="{:+5d}".format(-52) #음수 : 기호를 뒤로 밀기
format_l="{:=+5d}".format(52) #양수 : 기호를 앞으로 밀기
format_m="{:=+5d}".format(-52) #음수 : 기호를 앞으로 밀기
format_n="{:+05d}".format(52) #양수 : 0으로 채우기
format_o="{:+05d}".format(-52) #음수 : 0으로 채우기

print(format_j)
print(format_k)
print(format_l)
print(format_m)
print(format_n)
print(format_o)

#출력 :
#  +52
#  -52
#+  52
#-  52
#+0052
#-0052

2) 부동 소수점 출력의 다양한 형태

format_a="{:f}".format(52.123) 
format_b="{:15f}".format(52.123) #15칸 만들기
format_c="{:+15f}".format(52.123) #15칸에 부호 추가하기
format_d="{:+015f}".format(52.123) #15칸에 부호 추가하고 0으로 채우기

print(format_a)
print(format_b)
print(format_c)
print(format_d)

#출력 :
#52.123000
#      52.123000
#     +52.123000
#+0000052.123000
#소수점 아래 자릿수 지정하기
format_e="{:15.3f}".format(52.123)
format_f="{:15.2f}".format(52.123)
format_g="{:15.1f}".format(52.123)

print(format_e)
print(format_f)
print(format_g)

#출력 :
#         52.123
#          52.12
#           52.1

3) 의미 없는 소수점 제거하기

output_a=52.0
output_b="{:g}".format(output_a)

print(output_a)
print(output_b)

#출력 :
#52.0
#52

 

 

15. 대소문자 바꾸기 : upper()와 lower()

1) upper() 함수 : 문자열의 알파벳을 대문자로 변경

2) lower() 함수 : 문자열의 알파벳을 소문자로 변경

string="Hello Python"
print(string.upper())
print(string.lower())

#출력 :
#HELLO PYTHON
#hello python

 

 

16. 문자열 양옆의 공백 제거하기 : strip()

1) strip() 함수 : 문자열 양옆의 공백 제거

2) ltrip() 함수 : 문자열 왼쪽의 공백 제거

3) rtrip() 함수 : 문자열 오른쪽의 공백 제거

string="""
	반갑읍니다
heega의 블로그에 오신 것을 환영합니다
"""
print(string)
print(string.strip())

#출력 :
#        반갑읍니다
#heega의 블로그에 오신 것을 환영합니다

#반갑읍니다
#heega의 블로그에 오신 것을 환영합니다

 

 

17. 문자열의 구성 파악하기 <불 형태로 출력 : True or False>

1) isalnum() 함수 : 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인

2) isalpha() 함수 : 문자열이 알파벳으로만 구성되어 있는지 확인

3) isidentifier() 함수 : 문자열이 식별자로 사용할 수 있는 것인지 확인

4) isdecimal() 함수 : 문자열이 정수 형태인지 확인

5) isdigit() 함수 : 문자열이 숫자로 인식될 수 있는 것인지 확인

6) isspace() 함수 : 문자열이 공백으로만 구성되어 있는지 확인

7) islower() 함수 : 문자열이 소문자로만 구성되어 있는지 확인

8) isupper() 함수 : 문자열이 대문자로만 구성되어 있는지 확인

print("hi".isalnum())
print("hi2".isalpha())
print("int".isidentifier()) 
print("10.1".isdecimal()) 
print("100".isdigit()) 
print("hello".isspace()) 
print("hello".islower()) 
print("hello".isupper()) 

#출력 :
#True
#False
#True
#False
#True
#False
#True
#False

 

 

18. 문자열 찾기 : find()와 rfind()

1) find() 함수 : 왼쪽부터 찾아서 처음 등장하는 위치 찾음

2) rfind() 함수 : 오른쪽부터 찾아서 처음 등장하는 위치 찾음

string_a="안녕안녕하세요".find("안녕")
print(string_a)

string_b="안녕안녕하세요".rfind("안녕")
print(string_b)

#출력 :
#0
#2

 

 

19. 문자열과 in 연산자 <불형태로 출력 : True or False>

1) 문자열 내부에 어떤 문자열이 있는지 확인

print("안녕" in "안녕 파이썬")

print("파이썬" in "안녕 자바")

#출력 :
#True
#False

 

 

20. 문자열 자르기 : split()

1) split() 함수 : 문자열을 특정한 문자로 자를 때 사용

2) 실행결과로 리스트가 나옴

string_a="10 20 30 40".split(" ")
print(string_a)

string_b="A-B-C-D".split("-")
print(string_b)

#출력 :
#['10', '20', '30', '40']
#['A', 'B', 'C', 'D']

'Python > 기초' 카테고리의 다른 글

[혼자 공부하는 파이썬] Chapter 01 파이썬 시작하기  (0) 2022.03.02
Comments