티스토리 뷰
4.14 조건식(Conditional Expressions)
- 조건식(Conditional Expressions)이란 조건에 기반한 표현식을 말한다.
- 특정한 조건에 제약을 받는 변수를 설정해 그 변수에 값을 넣을 수 있다.
* 예시
if x > 0:
y = 1
else
y = -1
위 예시 코드와 아래의 코드는 같은 의미이다. 아래의 코드가 바로 조건식을 이용해 만든 코드이다.
y = -1 if x > 0 else -1
조건식은 완전히 다른 스타일의 문법형태이다.
* 조건식 형태
expression1 if boolean-expression else expression2
- expression1 은 boolean-experession 이 참(True)일 경우의 결과 값이며, 거짓(False)의 경우 expresstion2의 결과가 도출된다.
- 만약에 두 개의 숫자 중에 큰 숫자를 변수 max에 넣고 싶다면 아래와 같이 작성하면 된다.
max = number1 if number1 > number2 else number2
- 짝수, 홀수 구분하는 프로그램은 다음과 같이 조건식을 이용해 작성 할 수 있다.
print("number is even " if number % 2 == 0 else "number is odd")
4.15 연산자 우선순위와 결합법칙(Operator Precedence and Associativity)
- 연산자우선순위와 결합법칙은 연산자의 계산될 순서를 결정한다.
예를 들어, 아래와 같은 식이 있다고 하자.
3 + 4 * 4 > 5 * (4 + 3) - 1
위의 식에서 어떤 부분이 먼저 연산을 수행할지 예상해보면 괄호 부분의 연산부터 시행될 것이라는 걸 알 수 있다. 하지만 만약에 이런 괄호가 없다면 파이썬은 연산자의 우선순위와 결합법칙에 따라 연산순서를 정한다.
우선순위 |
Operator |
Description |
|
** |
지수 (전원으로 인상) |
~ + - |
비트 반전 ,부호 +, - | |
* / % // |
곱하기, 나누기, 나머지, 몫 | |
+ - |
덧셈과 뺄셈 | |
>> << |
좌우 비트 시프트 | |
& |
비트 'AND' | |
^ | |
비트 전용 'OR'와 정기적 인 'OR' | |
<= < > >= |
비교 연산자 | |
<> == != |
평등 연산자 | |
= %= /= //= -= += *= **= |
할당 연산자 | |
is is not |
식별 연산자 | |
in not in |
맴버 연산자 | |
not or and |
논리 연산자 |
- 논리 연산자(logical operators)는 관계연산자(relational operators) 보다 낮은 우선순위이며, 관계 연산자(relational operators)는 산술 연산자(arithmetic operators) 보다 낮은 우선순위를 가지고 있다.
- 똑같은 우선순위를 가지고 있는 연산자들이 나열되어 있는 경우에는, 왼쪽부터 연산을 차례로 진행한다.
ex) a - b + c – d 와 ((a - b) + c) - d의 연산순서는 서로 같다.
*연산순위 예제
True or True and False → True
True and True or False → True
4.16 객체의 위치 파악하기(Detecting the Location of an Object)
- 게임프로그래밍에서 한 개체가 다른 개체 안에 속해있는지 판단하는 일반적인 작업이 있다.
- 이번 섹션에서는 한 점이 원 안에 속해있는지 아닌지를 판단하는 프로그램을 예로 설명한다.
- 만약 점이 원 안에 속해있다면, 원의 중심과 점사이의 거리는 원의 반지름 보다 작거나 같을 것이다.
거리구하는 공식 :
*점의 위치 파악 프로그램
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 |
import turtle as t
x1, y1 = eval(input("Enter the center of circle: "))
radius = eval(input("Enter the radius of circle: "))
x2, y2 = eval(input("Enter the point: "))
distance = ((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1))**0.5
t.hideturtle()
t.penup()
t.goto(x1,y1-radius)
t.pendown()
t.circle(radius)
t.penup()
t.goto(x2,y2)
t.pendown()
t.dot(6,"red")
if distance > radius:
t.write("The point is outside the circle")
else:
t.write("The point is intside the circle")
t.done() |
cs |
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]중첩 루프, 최대공약수, 몬테카를로 시뮬레이션 (0) | 2017.07.21 |
---|---|
[파이썬]루프(while문 for문) (0) | 2017.07.21 |
[파이썬]논리 연산자(or, and, not), 윤년 계산, 복권 프로그램 (0) | 2017.07.18 |
[파이썬]중첩 if문, if-elif-else문, 선택문 오류들 (0) | 2017.07.18 |
[파이썬]단일 if문, 이중 if-else 문, 생일 맞히기 (0) | 2017.07.15 |
- Total
- Today
- Yesterday
- 파이썬 단계적 개선
- 자바
- 백준 1874
- 파이썬 연산자
- 파이썬 객체
- 자바스크립트 자료구조
- 파이썬 진수 변환
- 파이썬 문자열
- 자바 에센셜 실습문제
- 자료구조
- 파이썬 예제
- 자바스크립트 그래프
- 파이썬 함수
- 파이썬
- 백준 10451
- 웹
- 파이썬 선택문
- css 박스
- 파이썬 클래스
- css 그리드
- 파이썬 if문
- 백준
- css
- 버츄어박스
- 명품 c++ 실습
- 파이썬 터틀
- 파이썬 while
- 파이썬 for
- 백준 11501
- 파이썬 리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |