Coding/Python

[코드잇] 파이썬(python) 자료형(숫자형, 문자열, 불 대수), format 문자열 포맷팅, f-string, type함수 기본 개념 정리

폴밴 2021. 9. 4. 21:34

숫자형

  • 정수형끼리의 연산은 정수형으로 결과값이 출력된다.
  • 실수형끼리의 연산은 소수형으로 결과값이 출력된다.
  • 정수형과 소수형이 섞여있는 경우 소수형으로 결과값이 출력된다.
  • 단, 나눗셈의 경우 자료형과 상관없이 소수형으로 결과값이 출력된다.
# 덧셈
print(4 + 7)  # 11
print(4 + 7.0)  # 11.0
#뺄셈
print(2 - 4)  # -2
print(2 - 4.0) # -2.0
#곱셈
print(5 * 3)  # 15
print(5.0 * 3.0)  # 15.0
#나머지
print(7 % 3)  # 1
print(7.0 % 3.0)  # 1.0
#거듭제곱
print(2 ** 3)  # 8
print(2.0 ** 3.0)  # 8.0
#나눗셈
print(7 / 2)  # 3.5
print(6 / 2)  # 3.0
print(7.0 / 2)  # 3.5
print(6.0 / 2.0) # 3.0
#사칙연산 순서
print(2 + 3 * 2)  # 8
print(2 * (2 + 3))  # 10

숫자형 심화

  • Floor division : 버림 나눗셈
  • // 로 사용하며 나눗셈을 한 뒤 나머지를 버린 값을 출력한다.
  • Round : 반올림
  • round(value, num_digits) 으로 사용하며 num_digits에 소수 몇 번째 자리까지 출력할 것인지 정한다.
# floor division (버림 나눗셈)
print(7 // 2)  # 3
print(8 // 3) # 2
print(8.0 // 3) # 2.0
print(8 // 3.0) # 2.0

#round (반올림)
print(round(3.1415926535))  # 3
print(round(3.1415926535, 2))  # 3.14
print(round(3.1415926535, 3))  # 3.142

문자열 (String)

  • '문자열' : 따옴표로 문자열을 만들 수 있다.
  • 문자열 연산 (String Concatenation)
print('Hello' + 'World')  # HelloWorld
print('Hello' * 3)  # HelloHelloHello
print('7' + '6')  # 76

# 따옴표 ' 를 문자로 출력하기
print("I'm excited to learn python!") # 큰 따옴표 사용하기
print('I\'m excited to learn python!') # \ 사용하기

형변환 (Type Casting(Conversion))

  • 값을 다른 자료형으로 바꿔주는 것.소수형으로 바꾸기 : float()
  • 문자열로 바꾸기 : str()
  • 정수형으로 바꾸기 : int()
print(int(3.8))  # 3
print(float(3))  # 3.0
print(int("5")+int("2"))  # 7
print(float("5")+float("2"))  # 7.0
print(str(2)+str(5))  # "25"
  • 문자열과 정수형을 연결하기
age = 7  # 정수형
print("제 나이는 " + str(age) + "살 입니다.") # 문자열과 정수형을 str()를 이용해 연결시키기

print(int('Hello world!'))  # 문자열은 정수형이나 소수형으로 바꿀 수 없다.

format을 이용한 문자열 포맷팅

  • 중괄호 { }을 이용하고 name.format() 통해 문자열을 포맷팅할 수 있다.
  • { } 에 순서대로 format() 에 괄호 안에 있는 값들이 문자열로 들어가게 된다.
#오늘은 2019년 10월 29일입니다. 출력하기
year = 2019
month = 10
date = 29

print("오늘은 " + str(year) + "년 " + str(month) + "월 " + str(date) + "일입니다.")

print("오늘은 {}년 {}월 {}일입니다.".format(year, month, date))  # 변수를 이용해 format 활용하기

date_string = "오늘은 {}년 {}월 {}일입니다."  # 문자열을 date_string 변수로 선언하기
print(date_string.format(year, month, date))  # date_string의 포맷에 값 넣기
print(date_string.format(year, month, date + 1))  # 정수형 date에 1을 더해 포맷으로 출력하기

format 다루기

  • format() 을 사용할 때, 중괄호 { } 안에 숫자를 넣으면 (0,1,2,...) 그 순서대로 문자열이 배치되어 출력된다.
print("저는 {}, {}, {}를 좋아합니다!".format("박지성", "유재석", "빌 게이츠")) # 저는 박지성, 유재석, 빌 게이츠를 좋아합니다!
print("저는 {0}, {1}, {2}를 좋아합니다!".format("박지성", "유재석", "빌 게이츠")) # 저는 박지성, 유재석, 빌 게이츠를 좋아합니다!
print("저는 {1}, {0}, {2}를 좋아합니다!".format("박지성", "유재석", "빌 게이츠")) # 저는 유재석, 박지성, 빌 게이츠를 좋아합니다!
  • 중괄호 안에 :.2f 와 같은 명령을 뒤에 붙이게 되면, 소수점 반올림 하여 나타낸다.
num_1 = 1
num_2 = 3
print("{0}나누기 {1}은 {2}입니다.".format(num_1, num_2, num_1 / num_2))  # 1나누기 3은 0.3333333333333333입니다.
print("{0}나누기 {1}은 {2:.2f}입니다.".format(num_1, num_2, num_1 / num_2))  # 1나누기 3은 0.33입니다.
print("{0}나누기 {1}은 {2:.0f}입니다.".format(num_1, num_2, num_1 / num_2))  # 1나누기 3은 0입니다.
  • f-string 방식으로 더 직관적으로 포맷팅할 수 있다.
name = "최지웅"
age = 32

print(f"제 이름은 {name}이고 {age}살입니다.")  # 제 이름은 최지웅이고 32살입니다.

불 대수 (Boolean Algebra)

  • 진리값 : True / False
  • 연산OR : x 와 y중 하나라도 참일 때 x OR y 는 참
  • NOT : x 가 거짓일 때 NOT x 는 참
  • AND : x 와 y가 모두 참일 때만 x AND y 가 참
  • 명제 : 참 또는 거짓이 명백한 문장

불린형 (Boolean)

  • AND
print(True and True) # true
print(True and False) # false
print(False and True) # false
print(False and False) # false
  • OR
print(True or True) # true
print(True or False) # true
print(False or True) # true
print(False or False) # false
  • NOT
print(not True) # false
print(not False) # true
  • Boolean
print(2 > 1) # true
print(2 < 1) # false
print(3 >= 2) # true
print(3 >= 3) # true
print(2 == 2) # true
print(2 != 2) # false

print('hello'=='hello') # true
print('hello'!='hello') # false

print(2 > 1 and 'hello'=='hello') # true
print(not not True) # true
print(7 == 7 or (4 < 3 and 12 > 10)) # true

type 함수

  • type 함수를 통해 어떤 자료형인지 확인할 수 있다.
print(type(3)) # <class 'int'>
print(type(3.0)) # <class 'float'>
print(type(4 / 2)) # <class 'float'>
print(type("3")) # <class 'str'>

print(type("True")) # <class 'str'>
print(type(True)) # <class 'bool'>
def hello():
    print("Hello World!")

print(type(hello)) # <class 'function'>
print(type(print)) # <class 'builtin_function_or_method'>