티스토리 뷰

모든 프로그래밍 언어는 값에 대해서 연산을 취해서 다른 값(결과)를 얻게 된다. 파이썬에서도 사칙연산 같은 숫자에 적용되는 산술 연산과 참 거짓을 받아 참 거짓을 반환하는 논리 연산, 그리고 비교 연산이 있다. 

논리 연산은 조건식에 사용되는 진위형 값을 돌려주고 비교 연산도 참 거짓을 반환한다. 비교는 비교 가능한 타입 끼리만 연산을 취할 수 있다. 예를 들어 ('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) 값을 가지는 수치값, 수식 또는 변수 
  • 빈 나열형 : ‘’, (), [] 
  • ‘’ : 빈 스트링 
파이썬의 논리 연산은 and와 or, not이라는 키워드를 이용한다.

재학생이고 3학년 이상이거나 4학년 휴학생이면 신청 가능 

(학적==재학생 and 학년 >= 3) or (학년 == 4 and 학적==휴학생) 

또한 and, or의 결과가 참일 때는 참(True)를 돌려주는 것이 아니라 참이 되는(거짓이 아닌) 값을 돌려준다. 그 결과 논리식의 단축계산 방식에 의해 and는 참일 경우 뒤의 결과를 돌려주고 or는 참일 경우 앞의 결과를 돌려준다.

>>> print(3 and 8) 
8 
>>> print(3 or 8) 
3



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함