히가의 devlog
[혼자 공부하는 파이썬] Chapter 02 자료형 본문
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 |
---|