데이터 입출력, 연산자

dumbbelldore·2024년 11월 2일
0

zero-base 33기

목록 보기
1/97

1. 데이터 입력

  • 예시: input("키보드로 데이터를 입력하세요")
  • input() 함수를 이용해 입력한 데이터는 기본적으로 문자(열) 자료형으로 처리하므로, 원하는 데이터 형태로 변환하는 작업 필요
# 숫자 입력이 필요한 경우
user_input = int(input("숫자를 입력하세요: "))
print(type(user_intput)) # <class 'int'>

2. 데이터 출력

  • 예시: print(user_name)
  • 둘 이상의 변수를 출력하고자 하는 경우, 콤마(,)를 활용하여 출력 가능
  • print() 내 end 파라미터를 지정함으로써 둘 이상의 변수 출력 시 사이 문자 지정 가능
  • 개행 삽입 시 \n, 탭 삽입 시 \t 문자를 포함하여 입력
  • f-string을 이용하게 되면, 보다 직관적인 코드 작성 가능
user_name = '홍길동'
user_age = 23
print(user_name, user_age) # 홍길동 23
print(user_name, user_age, end='') # 홍길동23
print(f'User Name: {user_name}') # User Name: 홍길동

3. format() 함수

  • f-string과 유사하게 format() 함수를 이용하여 출력하는 방법도 존재
  • 인덱스를 별도로 지정하지 않는 경우, 지정한 순서대로 브라켓 위치에 출력
user_name = 'Alice'
user_age = 48
print('Name: {0}, Age: {1}'.format(user_name, user_age))
# Name: Alice, Age: 48

4. 형식문자

  • 브라켓이 아닌 형식문자를 이용하여 출력 가능
user_name = 'Alice'
print('Name: %s, Age: %d' % (user_name, user_age))
# Name: Alice, Age: 48

5. 연산자

  • 연산자의 종류
    - 산술 연산자: +, -, , /, %, //, **
    - 할당 연산자: =, +=, -=,
    =, /=, %=, //=
    - 비교 연산자: >, >=, <, <=, ==, !=
    - 논리 연산자: and, or, not
  • 문자간의 덧셈, 문자와 숫자간의 곱셈은 지원됨
  • 문자와 숫자 간 덧셈, 문자 간의 뺄셈은 지원되지 않음
  • 0을 나눗셈한 결과는 항상 0이며, 어떠한 수도 0으로 나눌 수는 없음
str_1 = 'Hello'
str_2 = ' '
str_3 = 'Python'
print(str_1 + str_2 + str_3) # Hello Python
print(str_1 * 3) # HelloHelloHello
print(str_1 + 100) # TypeError
print(str_1 - str_2) # TypeError
print(100 / 0) # ZeroDivisionError
  • 몫만 구하는 연산자(//), 나머지만 구하는 연산자(%), 몫과 나머지를 한번에 구하는 함수(divmod())에 대한 구분 필요
num_1 = 10
num_2 = 3
quot, remain = divmod(num_1, num_2)
print('몫:{0:d}, 나머지: {1:.2f}'.format(quot, remain))
# 몫: 3, 나머지: 1.00
  • 거듭제곱 연산자(**)를 이용해 제곱근도 구할 수 있음
# 2의 제곱근 (math 모듈의 sqrt() 함수 기능과 동일)
res = 2 ** (1/2)
print(res) # 1.4142135623730951

# 2의 세제곱근
res = 2 ** (1/3)
print(res) # 1.2599210498948732
  • 할당 연산자는 '연산'과 '할당'의 기능이 함께 주어진 연산자로, 코드를 간결하게 표현할 수 있음
my_num = 10
my_num *= 2 # 10에 2를 곱한 뒤 my_num 변수에 할당
print(my_num) # 20
  • 비교 연산자의 결과는 True 또는 False로 나타남
num_1 = 10
num_2 = 10
num_3 = 20
print(num_1 == num_2) # True
print(num_1 == num_3) # False
print(num_1 > num_3) # False
  • 문자에 대해서도 비교 연산을 수행할 수 있으며, 이 때는 ASCII 코드에 따라 결과가 나타남
char_1 = 'A'
char_2 = 'S'
print(ord(char_1)) # 65
print(ord(char_2)) # 83
print(chr(65)) # A
print(chr(83)) # B
print(char_1 < char_2) # True
  • 문자열에 대해서도 비교 연산을 수행할 수 있으나, 이는 문자열 자체에 대한 비교를 수행함
char_1 = 'hello'
char_2 = 'hello'
char_3 = 'python'
print(char_1 == char_2) # True
print(char_1 == char_3) # False
  • 논리 연산자는 피연산자의 논리(True, False)간 비교를 수행하며, 피연산자 자체를 비교하는 비교 연산자와 구분됨
num_1 = 10
num_2 = 20
num_3 = 30
print((num_1 < num_3) and (num_2 < num_3)) # True
print((num_1 < num_3) & (num_2 < num_3)) # True

6. operator 모듈

  • 누군가 이미 만들어 놓은 '모듈'을 이용한다면, 경우에 따라 보다 효율적으로 코딩을 수행할 수 있음
  • operator 모듈은 산술, 비교, 논리 연산 기능을 함수 형식으로 제공함
import operator # 모듈 로드

## 산술 연산
res = operator.add(5, 3)
print(res) # 8
res = operator.sub(5, 3)
print(res) # 2
res = operator.mul(5, 3)
print(res) # 15
res = operator.truediv(5, 3)
print(res) # 1.6666666666666667
res = operator.mod(5, 3)
print(res) # 2
res = operator.floordiv(5, 3)
print(res) # 1
res = operator.pow(5, 3)
print(res) # 125

## 비교 연산
res = operator.eq(5, 3) # ==
print(res) # False
res = operator.ne(5, 3) # !=
print(res) # True
res = operator.gt(5, 3) # >
print(res) # True
res = operator.ge(5, 3) # >=
print(res) # True
res = operator.lt(5, 3) # <
print(res) # False
res = operator.le(5, 3) # <=
print(res) # False

## 논리 연산
form_1 = 5 > 3
form_2 = 10 > 5
res = operator.and_(form_1, form_2) # &
print(res) # True
res = operator.or_(form_1, form_2) # |
print(res) # True
res = operator.not_(form_1) # !
print(res) # False

*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
데이터 분석, 데이터 사이언스 학습 저장소

0개의 댓글