숫자와 문자를 다뤄보자.
오늘은 파이썬의 기본 자료형인 숫자형, 논리형, 문자형 그리고 형 변환에 대해 알아보자.
오늘의 배움 |
|
기본 자료형
파이썬에서는 여러 가지 기본 자료형을 제공한다.
1. 숫자형 (Numeric)
정수형(int), 실수형(float), 복소수형(complex)이 있다.
num1 = 1 # 정수
num2 = 3.14 # 실수
num3 = 3 + 4j # 복소수
print(type(num1)) # <class 'int'>
print(type(num2)) # <class 'float'>
print(type(num3)) # <class 'complex'>
숫자 자료형의 연산
숫자 자료형 간에는 기본적인 사칙연산과 파이썬에서만 가능한 특수연산을 할 수 있다.
1-1. 사칙연산 (+, -, ×, ÷) : +, -, *, /
num1 = 10
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
1-2. 특수연산 : %, //, **
num1 = 11
num2 = 7
print(num1 % num2) # 나누기 연산을 하고 나머지를 반환
print(num1 // num2) # 나누기 연산을 하고 몫을 반환
print(base ** exponent) # 연산자의 좌항의 수를 밑, 우항의 수를 지수로 하여 제곱 연산한 결과를 반환
2. 논리형 (Boolean)
참(True) 또는 거짓(False)을 표현한다. 논리형은 조건문이나 비교 연산에서 사용된다.
bool1 = True
bool2 = False
print(type(bool1)) # <class 'bool'>
2-1. 논리 자료형의 연산_비교 연산 : ==, !=, >, <, >=, <=
- == : 좌항과 우항의 값이 동일한지 비교하여, 같으면 True, 같지 않으면 False를 반환한다.
- != : 좌항과 우항의 값이 같지 않은지 비교하여, 서로 다르면 True, 같으면 False를 반환한다.
- , < : 일반적으로 수학에서 사용하는 부등호와 같이 좌항과 우항의 크고 작음을 비교한다.
- =, <= : 같거나 크다 또는 같거나 작다를 비교한다.
print(1 == 3) # False
print('ohgiraffers' != 'Ohgiraffers') # True
print(100 > 99) # True
print(100 < 99) # False
print(0 >= 1) # False
print(0 <= 1) # True
2-2. 논리 연산 : AND, OR, NOT
- and : 좌항과 우항의 비교 연산 결과 또는 논리 자료형이 전부 True여야만 True의 결과를 반환한다. 하나라도 False이면 False를 반환한다.
print(1 != 3 and 100 > 99 and True) # True
print(1 != 3 and 100 > 99 and 100 < 99) # False
- or : 좌항과 우항의 비교 연산 결과 또는 논리 자료형 중 하나라도 True이면 True의 결과를 반환한다. 전부 False이면 False를 반환한다.
print(1 != 3 or 100 > 99 or True) # True
print(1 != 3 or 100 > 99 or 100 < 99) # True
print(1 == 3 or False or 100 < 99) # False
- not : 우항에 있는 비교 연산 결과 또는 논리 자료형을 뒤집는다. 즉, True가 오면 False를, False가 오면 True를 반환한다.
print(not'ohgiraffers' == 'Ohgiraffers') # True
print(not True) # False
3. 문자형 (String)
문자형은 큰따옴표(" ") 또는 작은따옴표(' ')로 선언할 수 있다. 예를 들어, 친구의 이름을 저장할 때 사용할 수 있다.
my_name = '다람쥐'
print(my_name) # 출력: 다람쥐
- 삼중 따옴표를 사용하면 여러 줄의 문자열을 간편하게 표현할 수 있다.
print("""
세상에서 제일 긴 게 뭘까요?
기차? 기린의 목? 코끼리의 코?
전부 아닙니다.
여러분의 무한한 가능성입니다^^
""")
문자형 연산
1. 문자열 이어 붙이기
문자형 간에 + 연산자를 이용하여 문자열을 이어 붙일 수 있다.
greeting = "반갑습니다"
name = "다람쥐"
print(greeting + name) # 출력: 반갑습니다다람쥐
print(greeting + "다. " + name + "입니다!") # 출력: 반갑습니다다람쥐입니다!
다른 자료형과의 연산은 자동 형 변환이 불가능하다.
# print(900 + "살 " + name + "이올시다.") # 오류 발생
따라서 다른 자료형은 문자형으로 변환한 뒤 연산이 가능하다.
print(str(900) + "살 " + name + "이올시다.") # 출력: 900살 다람쥐이올시다.
2. 문자열 반복하기
문자형에 * 연산을 사용하면 문자열을 반복할 수 있다.
subject = "python"
print("무슨 일이든 시작 전에 세 번만 외쳐보자. " + ("나는 " + subject + "을 잘할 수 있다! ") * 3)
# 출력: 무슨 일이든 시작 전에 세 번만 외쳐보자. 나는 python을 잘할 수 있다! 나는 python을 잘할 수 있다! 나는 python을 잘할 수 있다!
문자형의 메서드
1. replace(old, new)
문자열에서 특정 부분을 치환하는 메서드이다.
enroll_date = '2024/12/16'
rep_enroll_date = enroll_date.replace("/", "-")
print(rep_enroll_date) # 출력: 2024-12-16
2. strip([chars])
문자열의 양쪽 끝에서 지정된 문자를 제거하는 메서드이다. 인자를 생략하면 공백을 제거한다.
origin = 'ohgiraffers'
with_white_space = ' oh giraffers '
# 인자 생략 == 공백 제거
print(with_white_space.strip()) # oh giraffers
# ' o'까지 제거
print(with_white_space.strip(' o')) # h giraffers
# 'os' 제거
print(origin.strip('os')) # hgiraffer
# lstrip() - 선행만 제거
print(origin.lstrip('os')) # hgiraffers
# rstrip() - 후행만 제거
print(origin.rstrip('os')) # ohgiraffer
3. 대소문자 관련 메서드
문자열의 대소문자를 변경하는 메서드가 있다.
- upper() : 대문자로 변경한다.
- lower() : 소문자로 변경한다.
- capitalize() : 첫 글자만 대문자로 변경한다.
- swapcase() : 대문자는 소문자로, 소문자는 대문자로 변경한다.
- title() : 단어의 첫글자를 대문자로 변경한다.
origin_str = 'hELLO wORLD!'
print(origin_str.upper()) # HELLO WORLD!
print(origin_str.lower()) # hello world!
print(origin_str.capitalize()) # Hello world!
print(origin_str.swapcase()) # Hello World!
print(origin_str.title()) # Hello World!
문자형 포맷팅
1. % 포맷팅 : 변수 포맷을 사용하여 문자열에 변수 값을 삽입할 수 있다. (오래된 방식)
- 변수 포맷 종류
- %s : 문자열
- %c : 문자
- %d : 정수
- %f : 실수
x = 10
print("x is %d" %x) # x is 10
y = "code"
print("y is %s" % y) # y is code
2. format() : 타입 명시 없이 format() 함수를 이용할 수도 있다.
{인덱스0}, {인덱스1} = {인덱스2}.format(a,b,a*b)
단, 이때 이때 더 큰 범위로만 자동 형 변환된다.
x, y = 10, "code"
print("x is {0}".format(x)) # x is 10
print("x is {0} y is {1}".format(x,y)) # x is 10 y is code
print("x is {new_x} and y is {new_y}".format(new_x=x, new_y=y)) # x is 10 and y is code
3. f-string : 변수를 활용하여 문자열을 구성할 때, 따옴표 앞에 f를 붙이고 따옴표 안에서 중괄호{} 안에 변수명을 넣어 활용할 수 있다.
teacher_name = "다람쥐"
print(f"안녕하세요. 오늘부터 여러분과 함께 공부할 {teacher_name} 강사입니다~!")
# 안녕하세요. 오늘부터 여러분과 함께 공부할 다람쥐 강사입니다~!
4. 주석
주석은 컴퓨터가 해석하지 않는 구문이다.
1. 한 줄 주석
# 기호를 사용하여 한 줄 주석을 작성할 수 있다.
# 이 줄은 해석되지 않습니다.
print('이건 해석하구요') # 출력: 이건 해석하구요
2. 여러 줄 주석
삼중 따옴표(''' 또는 """)를 사용하여 여러 줄 주석을 작성할 수 있다.
'''
이렇게 작성하면
여러 줄 주석이 적용됩니다.
'''
print('여기만 출력됩니다.') # 출력: 여기만 출력됩니다.
5. 형 변환
형 변환이란, 서로 다른 자료형 간 연산 등을 위하여 다른 자료형으로 타입을 변환하는 것이다.'
형 변환의 종류
5-1. 암시적 형 변환
print(True + 3) # 4
print(3 + 5.0) # 8.0
# print(3 + "5") # 암시적 변환 불가
5-2. 명시적 형 변환
- int(자료형) : 문자형이나 숫자형 중 실수를 정수로 형 변환하는 함수
- 단, 형식에 맞는 문자열만 정수로 변환 가능하다.
print(int('3') + 4) # 7
# print(int("3.5") + 2) # 문자열의 형태가 정수형이 아니므로 형 변환 불가
- float(자료형) : 문자형이나 숫자형 중 정수를 실수로 형 변환하는 함수
- 단, 형식에 맞는 문자열만 실수로 변환 가능하다.
print(float('3')) # 3.0
- str(자료형) : 숫자형, 리스트, 튜플, 딕셔너리 등의 자료형을 문자로 형 변환하는 함수
- 모든 자료형이 문자열로 형 변환 가능하다.
print(str(1)) # 1
print(str(1.0)) # 1.0
print(str({1, 2, 3})) # {1, 2, 3}
- list(자료형) : 문자열, 튜플, 딕셔너리 등의 자료형을 리스트로 형 변환하는 함수
- 딕셔너리는 key 값을 가지고 리스트의 요소를 구성한다.
print(list('ohgiraffers')) # ['o', 'h', 'g', 'i', 'r', 'a', 'f', 'f', 'e', 'r', 's']
print(list((1, 2, 3, 4, 5))) # [1, 2, 3, 4, 5]
print(list({
"1": "사랑하는 우리반",
"2": "열심히 공부하십시오",
"3": "-선생님 왈"
})) # ['1', '2', '3']
숫자의 형태, 글자의 형태 모두 각기 다른 문자로 불러야 한다는 게 신기했다.
그리고 내 손에서 코드가 나오고 출력이 되니 신기했다.
다음 시간에는 'Sequence 자료형 (String, List, Tuple)'에 대해 알아보자.
'Develop > Python' 카테고리의 다른 글
변수와 자료형 - 변수 (0) | 2025.01.01 |
---|---|
VScode 알아보기 (0) | 2024.12.30 |
JupyterNotebook 알아보자 (0) | 2024.12.30 |
개발환경 구축 - 가상환경(Anaconda) 설치 (0) | 2024.12.29 |
Python 파이썬이란 무엇인가? (0) | 2024.12.29 |