<숫자형 자료형>
1) int : 정수 값 저장 자료형 (0, 1, 100, -2 등)
2) float : 부동소수점형, 실수 값 저장 자료형 (3.14, -1.7, 0.0 등)
3) complex : 복소수 값 저장 자료형 a+bj (1+3j, 4-3j)
a = 10 # int
b = 3.14 # float
c = 1 + 2j # complex
d = a + b # float
e = a / b # float
f = a // b # float
h = a ** 2
# d = 13.14, e = 3.184713375796178
# f = 3.0, h = 100
/ 연산자 : 나눗셈의 결과, // 연산자 : 나눈 몫의 결과
e = 4 / 2
print(e)
f = 4 // 2
print(f)
g = 3 % 4
print(g)
숫자 자료형에 대해서 공부하다가 재밌는 점 발견.. e와 f의 출력 값은 동일할 것 같지만 동일하지 않다. 파이썬3기준 나눗셈 연산자(/) 결과는 항상 부동소수점 형태(float형)로 반환되고, //연산자는 나누는 숫자가 모두 int형이면 결과도 int형임 (하나라도 float형이면 결과도 float형!) 그렇기 때문에 e와 f는 각각 2.0과 2로 출력된다.
g같은 경우에는 모듈연산자라고 부른다. 나눗셈 후 나머지 값을 저장하는 연산자다. 3%4연산은 3을 4로 나눌 수 없기 때문에 3을 반환한다. 10%3의 경우 10을 3으로 나눈 나머지인 1이 결과가 된다. g도 마찬가지로 하나라도 float형이면 결과도 float형이 됨.
<문자열 자료형과 문자열 처리함수>
# 문자열 자료형
print("Hello World!")
print('Hello World!')
print('hi '*5)
# 문자열 삽입과 처리함수 1
name = "Soeun"
greeting = 'Hello, My name is ' + name + '!'
length = len(greeting)
find = greeting.find('o')
index = greeting.index('o')
index1 = greeting.index('o', index + 1)
count = greeting.count('l')
print(greeting) # Hello, My name is Soeun!
print(length) # 24
print(find) # 4
print(index) # 4
print(index1) # 19
print(count) # 2
추가할 문자열 변수를 기존 문자열 중간에 삽입하고 싶다면 '+' 기호를 사용한다.
만약 문자열에 숫자가 담긴 변수를 삽입하고 싶다면 + str(age) + 같이 str로 문자열로 변환시켜줘야 한다.
len(greeting)은 문자열 길이를 구하는 함수
greeting.find('o')는 처음 o가 나타나는 인덱스를 구함
find()와 index()함수는 둘다 문자열에서 특정 문자열을 검색하지만 검색대상이 존재하지 않는 경우 처리방식이 다름
+) 'find'함수는 찾는 문자열이 없다면 -1을 반환하고 'index'함수는 ValueError 예외를 발생시킴
greeting.count('l')는 l이 몇 번 나타나는 지를 구함 -
# 문자열 처리 함수 2
python = "We need Python"
print(python.lower()) # we need python
print(python.upper()) # WE NEED PYTHON
print(python[0].isupper()) #True
print(python.replace("Python", "Java")) # We need Java
- lower : 소문자 출력
- upper : 대문자 출력
- [].isupper : []안의 문자가 대문자인지
- replace : 단어 변경
+) 여러줄의 문자열 나타내는 법
a = """
Hello World!
We need Python
"""
print(a)
""" (또는 ''') : triple-quoted string 이라해서 여러 줄의 주석처리를 할 때 사용할 수 있고 변수값에 """을 사용한다면 여러줄의 문자열로 출력할 수 있다. 위 코드는 문자열 아래위로 개행이 되어서 출력된다.
< 참 / 거짓 구별 boolean>
# boolean (참 / 거짓)
print(10 > 2) #True
print(10 < 2) #False
print(False) #False
print(not True) #False
print(not (2 > 5)) #True
print((5 > 0) & (5 < 10)) #True
print((5 > 0) | (13 < 5)) #True
print((7 < 8 < 9)) #True
* &는 and로 |는 or로 바꿔쓸 수 있음 (의미 동일)
<숫자 처리 함수>
print(abs(-5)) #5
print(pow(2, 3)) #8
print(max(3, 5, 10)) #10
print(min(3, 5, 10)) #3
print(round(3.14)) #3
print(round(3.6)) #4
- abs : 절댓값 구하기
- pow: 지수제곱
- max: 최댓값
- min: 최소값
- round: 반올림
*math 라이브러리를 사용한다면 더 많은 숫자처리가 가능
<random 함수>
from random import *
print(random()) #0.0 ~ 1.0 사이 랜덤 값
print(int(random()*10) + 1) # 1~10 사이의 랜덤 값
print(int(random()*37) + 1) # 1~37이하의 랜덤 값
print(randrange(1, 45)) # 1~45미만의 랜덤 값
*random과 randrange의 차이
- random 부동소수점 랜덤 값 반환 (정수형 반환하려면 위 코드처럼 여러가지 추가해주면 됨)
- randrange 정수 랜덤 값 반환
<슬라이싱>
# 슬라이싱
a = "971234-2456789"
print(a[:6]) # 0~6직전까지
print(a[7:]) # 7부터 끝까지
print(a[-7:]) # -1에서 7번째부터 시작해서 끝까지
print(a[7]) # 2
print(a[0:2]) # 97
print(a[2:4]) #12
<문자열 포맷>
- 문자열 포맷(format)이란 문자열 내에 변수나 값을 넣어 문자열을 동적으로 생성함
1. f-strings (python 3.6 부터 지원)
문자열의 중괄호{} 내에 변수를 넣을 수 있음
name = "Harry"
age = 25
# f-string 사용
greeting = f"My name is {name} and I am {age} years old."
print(greeting)
2. format() 함수
greeting = "My name is {} and I am {} years old.".format("Harry", 25)
print(greeting)
greeting = "My name is {2} and I am {1} years old.".format("Harry", 25, "Sam")
print(greeting)
3. % 연산자 활용
name = "Harry"
age = 25
greeting = "My name is %s and I am %d years old." % (name, age)
print(greeting)
%s 는 문자열 %d는 정수 %c 는 문자를 넣을 수 있음 (%s로 모두 표현 가능)
=> 3가지 방법 중에선 f-strings 방법이 가장 직관적이고 편리하기 때문에 문자열 포맷 시 f-strings를 쓰는 것 권장
<탈출문자> ; escape 코드
탈출문자란..? 문자열 안에서 특수한 기능을 수행하도록 하는 문자
# 줄바꿈
print("Hello\nWorld")
# 탭 문자 출력
print("Python\tis\tawesome")
# 백스페이스 출력
print("Hello\bWorld")
# 캐리지 리턴
print("Python is awesome \rJava")
# 역슬래시 출력
print("\\\\ This is a backslash")
# 작은 따옴표 출력
print("Python\'s awesome")
# 큰 따옴표 출력
print("\"Python is awesome\" he said.")
# 벨 소리 출력
print("\aBeep!")
# 폼 피드 출력
print("Hello\fWorld")
# 수직 탭 출력
print("Python\vis\vawesome")