Python

04. 연산자

til_t 2021. 1. 20. 16:15

4.1 대입 및 산술

  • 대인 연산자
변수 = 수식

형식으로 = 기호 왼쪽에 값을 저장할 변수를 적고 오른쪽에 이 변수에 저장할 값이나 수식을 적는다. 수식은 값이 결정되어 있어야 한다.

b = c * d * e -> c, d, e 값이 정의되지 않은 상태에서 읽기 시도 -> error
print(value) -> ~ is not defined error -> 정의하지 않고 읽기 시도
  • 산술 연산자

정수 / 정수 -> 실수 값

연산자 설명
** 거듭제곱
// 정수 나누기 (몫)
% 나머지
11 ** 2 -> 11^2
5 // 2 -> 2
8 % 4 -> 0 => 배수 판별에 쓰임
  • 복합 대입 연산자 (현재의 값을 조작해서 update하는 개념)

+=, -=, *=

C나 자바는 ++, -- 연산자가 있는 반면 파이썬은 이 연산자가 없으므로 a += 1 or a -= 1을 주로 사용한다.

4.2 타입 변환

  • 문자열 연산

산술 연산자는 수치형에 사용하는 일이 보통이지만 +와 * 연산자는 문자열에서도 사용 가능하다. 문자열에 + 연산을 수행하면 두 문자열을 연결한다. + 연산자로 문자열을 연결할 때 양쪽 피연산자는 모두 문자열이어야 한다. 문자열과 수치형은 연결하기 위해 변환이 필요하다.

print(s1 + s2)

문자열에 * 연산자로 정수를 곱하면 문자열을 정수 횟수만큼 반복한다. * 연산자의 좌변은 문자열이어야 하고, 우변은 정수여야 한다.

print("yes" * 5) # yesyesyesyesyes
  • 정수와 문자열

정수와 문자열을 연결하기 위해선 str 함수로 숫자를 문자열로 바꾼 후 연결해야 한다.

print("korea" + str(2002)) #korea2002

수학적 계산에 사용하기 위해서는 문자열을 숫자로 변형하면 된다.

print(10 + int("22")) # 32

int()는 문자열 안에 숫자만 들어있어야 변환할 수 있다. 실수 또한 소수점이 있으므로 정수가 아니다.

print(10 + int("2.2")) -> error

int(정수, 진법) -> 어떤 집법으로 해석할 지

int() 함수의 두 번째 인수로 진법을 지정하는데 생략하면 문자열을 10진수로 해석한다.

int("1a", 16) # 26
int("15", 8) # 13
  • 실수의 변환

실수의 변환은 float() 함수를 사용한다. 문자열 안에는 부호와 숫자, 소수점 등으로 구성된 고정 소수점 실수나 "314e-2" 등의 부동 소수점 형식으로 저장되어 있어야 한다.

float() -> 실수 변환 함수

round(숫자 [, 반올림 자리수]) -> 실수 반올림 함수
print(int(2.54)) # 2
print(round(2.54)) # 3
print(round(2.54, 1)) # 2.5
print(round(123456, -3)) # 123000

int(실수)는 소수점을 버리고, round(실수)는 반올림한다고 생각하면 될 것 같다.

음수의 자리도 지정할 수 있는데 -3은 1000의 자리까지 유효한 값으로 변환하라는 뜻이다.

str() -> 문자열로

float() -> 실수로

int() -> 정수로

이외에도 bool, list, tuple, dict 등의 변환 함수가 있으며 컬렉션끼리도 서로 형태를 바꿔가며 변환 가능하다.