티스토리 뷰
모든 프로그래밍 언어는 값에 대해서 연산을 취해서 다른 값(결과)를 얻게 된다. 파이썬에서도 사칙연산 같은 숫자에 적용되는 산술 연산과 참 거짓을 받아 참 거짓을 반환하는 논리 연산, 그리고 비교 연산이 있다.
논리 연산은 조건식에 사용되는 진위형 값을 돌려주고 비교 연산도 참 거짓을 반환한다. 비교는 비교 가능한 타입 끼리만 연산을 취할 수 있다. 예를 들어 ('3' < 5)와 같은 수식은 문자열과 숫자를 비교할 수 없으므로 타입 오류가 나게 된다.
산술연산에는 사칙연산과 나머지(%) 연산이 있다. 파이썬의 특징이라면 그냥 나누기 연산 /은 항상 실수를 돌려주고 정수 나누기 연산 //은 내림을 한 정수 결과를 돌려준다. 정수형은 자바 언어와 달리 자리수의 제약이 없어서 오버플로우가 발생하지 않는다는 점이 특징이다. 스트링에 대해서는 별도의 연산이 정의되는데, + 연산은 자바와 같고 추가로 스트링에 숫자 * 연산이 적용된다.
자바와 마찬가지로 float 타입의 경우 다른 언어와 마찬가지로 자리수 제약에 따른(precision 문제) 표현할 수 있는 값의 제약이 있으며, 이것은 다음과 같은 예상하지 못한 결과를 가져온다.
O Float 타입의 연산에서 예상하지 않은 결과 >>> (1.1 + 2.2) == 3.3 False >>> 1.1 + 2.2 3.3000000000000003그래서 이러한 문제를 해결하는 방법으로 decimal 모듈을 사용할 수 있다.
>>> from decimal import Decimal as D >>> D('1.1') + D('2.2') Decimal('3.3') >>> D('1.2') * D('2.50') Decimal('3.000')파이썬 연산의 또하나의 특징으로 모든 객체는 참/거짓 판별이 가능하다는 점을 들 수 있다. 즉 숫자 타입의 값이나 변수나 수식이 참거짓을 필요로 하는 자리에 사용되면 그 값이 0이 아니면 모두 참으로 해석된다.
c = 3.5 if (c): print(c)파이썬에서는 거짓이 되는 값이 다음과 같이 정의되어 있다. 즉 이러한 값 이외의 모든 값은 참으로 해석된다. (거짓으로 해석되는 값은 기억해 두어야 한다.)
- None
- False
- 0(Zero) 값을 가지는 수치값, 수식 또는 변수
- 빈 나열형 : ‘’, (), []
- ‘’ : 빈 스트링
재학생이고 3학년 이상이거나 4학년 휴학생이면 신청 가능
(학적==재학생 and 학년 >= 3) or (학년 == 4 and 학적==휴학생)
또한 and, or의 결과가 참일 때는 참(True)를 돌려주는 것이 아니라 참이 되는(거짓이 아닌) 값을 돌려준다. 그 결과 논리식의 단축계산 방식에 의해 and는 참일 경우 뒤의 결과를 돌려주고 or는 참일 경우 앞의 결과를 돌려준다.
>>> print(3 and 8) 8 >>> print(3 or 8) 3
'파이썬 프로그래밍' 카테고리의 다른 글
파이썬 스트링 (0) | 2019.01.27 |
---|---|
파이썬 시작하기 (5) - 문장 if와 for (1) | 2019.01.25 |
Python 시작하기 (3) - 입출력 기본 (0) | 2017.01.02 |
Python 시작하기 (2) - 프로그램 구조, 타입과 변수 (0) | 2017.01.02 |
Python 시작하기 (1) - 대화모드와 소스파일 실행 (0) | 2017.01.01 |
- Total
- Today
- Yesterday
- 이터레이터
- TypeError
- CompareTo
- Camel Style
- contentEquals
- 동적바인딩
- 이터러블
- follow
- indexof
- 스트링
- contains
- 콜렉션
- sort key
- 지연계산
- comparable
- rust
- 자바regex
- 스트링 +
- python example
- format
- zip
- ToString
- python exercise
- C++ 클래스
- APPEND
- max
- Iterator
- Lazy evaluation
- 패턴
- typedef
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |