Skip to main content

Command Palette

Search for a command to run...

[python study note] 자료형

Data Types

Updated
4 min read
[python study note] 자료형

1. 숫자형 (Number)

#덧셈
print(5 + 2) #7

#뺄셈
print(6 - 5) #1

#곱셈
print(5 * 3) #15

#나머지
print(8 % 3) #2

#거듭제곱
print(2 ** 3) #2^3 = 8

#나눗셈 : 항상 소수형으로 나온다
print(7 / 2) #3.5
print(6 / 2) #3.0
print(7.0 / 2) #3.5
print(6.0 / 2.0) #3.0

소수형과 소수형의 연산은 결과값이 모두 소수형으로 나온다
print(5.0 + 2.0) #7.0
print(6.0 - 5.0) #1.0
print(5.0 * 3.0) #15.0
print(8.0 % 3.0) #2.0
print(2.0 ** 3.0) #8.0

한쪽만 소수형이고 다른 한쪽이 정수형이면 소수형으로 나온다.
파이썬에서는 소수형이 정수형보다 힘이 세다.
print(5 + 2.0) #7.0
print(6 - 5.0) #1.0
print(5 * 3.0) #15.0
print(8 % 3.0) #2.0
print(2 ** 3.0) #8.0

floor division (버림 나눗셈)

나눈 결과값에서 소수 부분을 버림

print(7 // 2) #3.5가 나와야 하지만 0.5 부분이 버려져서 3이 나옴
print(8 // 3) #2
print(8.0 // 3) #2.0

round (반올림)

print(round(3.1415926535)) #3

소수점 둘째 자리로 반올림 하려면 두번째 파라미터에 2를 넘겨주면 된다. 
print(round(3.1415926535, 2)) #3.14

2. 문자열 (String)

키보드로 쓸 수 있는 문자들을 표현하는 자료형

문자열 연결 (String Concatenation)

문자열 덧셈은 문자열을 연결하라는 뜻이다.

'Hello' + 'World' -> 'HelloWorld
'Hello' * 3 -> 'Hello' + 'Hello' + 'Hello' -> 'HelloHelloHello'

'를 사용하고 싶다면 문장을 " " 로 시작하거나 '를 사용한다.

print("i'm korean")
print('i\'m korean')

print('3' + '5') #35

3. 형변환 (Type Conversion)

값을 한 자료형에서 다른 자료형으로 바꾸는 것

정수 -> 소수 or 문자열-> 정수

#정수로 변환
print(int(3.8)) #3 

#소수로 변환
print(float(3)) #3.0 

#문자열에서 숫자형으로 변환
print(int('2') + int('5')) #7
print(float('2.2') + float('4.8')) #7.0

#숫자형에서 문자열로 변환
print(str(2) + str(7)) #27
age = 21

오류가 나옴 -> 문자열과 정수형을 연결시킬 수 없다.
print('제 나이는 ' + age + '살입니다.') 

str로 감싸주면 된다. 그럼 정수 7이였던 것이 문자열 7로 바뀌게 된다.
print('제 나이는 ' + str(age) + '살입니다.')

4. format

#오늘은 2023년 11월 26일 입니다.
year = 2023
month = 11
day = 26

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

이렇게 사용하면 너무 길어지고 번거롭다.
1. 쓰고싶은 문자열의 형태를 잡아준다.
print('오늘은 2023년 11월 26일 입니다.')

2. 값을 넣어줄 공간을 중괄호로 대체한다.
3. 문자열뒤에 .format을 쓰고 파라미터로 중괄호에 들어갈 값들을 순서대로 넣어준다.
print('오늘은 {}년 {}월 {}일 입니다.'.format(year, month, day))

다른 방법으로는 문자열을 변수에 넣고 그 변수에 format 메서드를 사용하면 된다.
date_string = '오늘은 {}년 {}월 {}일 입니다.'
print(date_string.format(year, month, day))

출력되는 순서를 바꾸고 싶을땐 {}안에 숫자를 적어서 바꿔주면 된다.

print('저는 {1}, {0}, {2}를 좋아합니다.'.format('사과', '귤', '포도'))

소수점 둘째 자리까지 출력하고 싶다면 해당 자리에 :.2f를 작성해 주면 된다.

num1 = 1
num2 = 3
print('{0} 나누기 {1}은 {2}이다.'.format(num1, num2, num1 / num2))

print('{0} 나누기 {1}은 {2:.2f}이다.'.format(num1, num2, num1 / num2))

문자열을 포맷팅하는 다양한 방식

  1. %를 사용하는 포맷 스트링

     name = '가나다라'
     age = 21
    
     print('이름은 %s이고 %d살 입니다.'%(name, age))
    
  2. format 메서드

     name = '가나다라'
     age = 21
    
     print('이름은 {}이고 {}살 입니다.'.format(name, age))
    
  3. f-string

     name = '가나다라'
     age = 21
    
     print(f'이름은 {name}이고 {age}살 입니다.')
    

5. 불 대수

일상적인 논리를 수학적으로 표현한것

불 대수의 값 -> 진리값 (어떤 명제가 참인지 거짓인지 나타내는 것)

  • 불 대수의 연산에는 AND, OR, NOT이 있다.

  • 명제 : 참과 거짓이 확실한 문장

and 연산 x와 y가 모두 참일때만 참 (x와 y가 모두 거짓일땐 거짓)

or 연산 x와 y중 하나라도 참이면 참 (x와 y가 모두 거짓일땐 거짓)

not 연산 반대로 뒤집어주는

역할 참이면 거짓으로 만들어주고, 거짓이면 참으로 만들어줌


6. 불린형(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

ex)

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(not not False) #False

print(7 == 7 or (4 < 3 and 12 > 10)) #True

x = 3
print(x > 4 or not (x < 2 or x == 3)) #False

7. type 함수

쓰고있는 값이 어떤 자료형인지 확인할 때 사용

print(type(3)) #<class 'int'>
print(type(3.0)) #<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'> / builtin 내장되어 있는 함수

More from this blog

s3사용 및 s3:PutBucketPolicy 권한 오류

1. S3 생성 중 정책 생성 페이지에서 s3:PutBucketPolicy 권한이 없어 오류 발생 IAM 사용이 아닌 루트 사용자 버전으로 설명 AWS IAM 콘솔 → 정책 → AdministratorAccess⁠검색→ 정책이 나타나면 사용자에 연결→ 없다면 새로운 정책 추가 없으므로 AdministratorAccess 생성 정책 생성 버튼 클릭 → JSON 탭 선택 후 아래 코드 입력 → 생성 { "Version": "2012-10-1...

Mar 12, 20252 min read9
s3사용 및 s3:PutBucketPolicy 권한 오류

챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

https://youtu.be/5soSQgVHGEA OpenAI API를 이용한 챗봇을 만들면서 대화가 길어질수록 LLM 호출 시 토큰 수 증가로 응답 시간이길어지는 문제가 발생 문제분석 여기서 생각하는 문제는 db 조회의 부하 처음 챗봇에게 부여하는 역할이 너무 긴데, 이걸 매 API 호출마다 전송함 대화 흐름을 기억하기 위해 챗봇-유저 간 대화 내용을 모두 DB에 저장한 다음 그대로 API 호출 마다 LLM에 전달함 → 모든 대화 ...

Jan 16, 20253 min read122
챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

dayeon's blog

124 posts