일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바
- 독서리뷰
- Head First Design Pattern
- math
- 오라클
- Singleton
- 후기
- 매핑
- 우아한테크코스
- 알고리즘
- 인강리뷰
- javascript
- Oracle
- study
- 에러
- 프로그래머스
- 인프런
- 회고
- Java
- 람다
- 카카오톡1차
- 독서
- 공부
- 이펙티브자바
- 인코딩
- JPA
- Design Pattern
- 디자인패턴
- spring
- Eclipse
- Today
- Total
Lee's Grow up
[Python/파이썬] 제어 - 조건문, 반복문 / if, for, while 본문
해당 내용은 Pythone
공식 문서를 참조하여 작성하였습니다. 작성 기준 버전은 3.8.6
입니다.
공식문서 : docs.python.org/3/tutorial/index.html
1. if 문
파이썬도 타 언어와 마찬가지로 조건을 판단하기 위해 if 문법을 제공해준다. 기본문법은 아래와 같다.
x = int(input("Enter Integer : "))
if x % 2 == 0:
print("even")
else:
print("odd")
내용은 입력 받은 값을 단순하게 홀수냐, 짝수이냐 판별해주는 조건문이다.
파이썬은 조건문 뒤에 :
을 붙이며, 수행할 코드를 들여쓰기로 구분해줘야한다 ( 띄어쓰기 4칸 또는 tab )
해당 규칙을 지키지 않으면 SyntaxError가 발생한다.
위 내용을 조건부 표현식으로 가독성 좋게 아래와 같이 표현이 가능하다.
x = int(input("Enter Integer : "))
print("even") if x % 2 == 0 else print("odd")
다중 조건
위 예제에서는 조건이 참이냐, 거짓이냐 2가지로만 판별 가능하다. 파이썬도 타 언어와 마찬가지로 다중 조건을 줄 수 있으며, 키워드로는 elif
를 사용한다. else if의 줄임말이다. 이는 파이썬이 지향하는 간결한 문법이며 과도한 들여 쓰기를 방지해 가독성을 향상 시켰다고 문서는 말한다.
menu = int(input("Select Menu 1. 아메리카노, 2. 라떼, 3. 카페모카 (번호로 선택 ): "))
if menu == 1:
print("아메리카노")
elif menu == 2:
print("라떼")
elif menu == 3:
print("카페모카")
else:
print("없는 메뉴입니다.")
또한, elif
로 대체가 가능하기 때문에 타 언어처럼 switch
문이 존재하지 않는다.
번외로 조건이 너무 길어지면, 가독성이 안좋아 지기 때문에 아래처럼 딕셔너리를 활용한 사용도 가능하다. 결과는 동일하다
def switch(menu):
return {1:"아메리카노", 2:"라떼", 3:"카페모카"}.get(menu,"없는 메뉴입니다.")
print(switch(4))
이러한 조건문에서 사용되는 비교 연산자는 ( <
, >
, ==
, !=
, <=
, >=
)가 있으며 조건을 판단하는 연산자로는 ( and
, or
, not
)가 있다.
마지막으로 리스트
, 튜플
, 문자열
, 딕셔너리
인 경우 in
키워드를 통해 조건문을 쉽게 작성할 수 있다.
x = int(input("Select Menu 1. 아메리카노, 2. 라떼, 3. 카페모카 (번호로 선택 ):"))
menu = {1:"아메리카노", 2:"라떼", 3:"카페모카"};
if x in menu:
print(menu[x])
else:
print("없는 메뉴입니다.")
for 문
반복을 위한 구문입니다. 기본적으로 for
와 in
키워드를 사용하며 아래와 같은 기본 구조를 가집니다.
for w in words : print(w)
일련의 숫자를 반복해야 하는 경우 range()
내장함수를 같이 사용합니다.
3개의 인수를 넘겨줄 수 있으며, 각각 시작 값, 종료 값, 단계로 구분됩니다. 인수로 음수도 가능합니다.
range(5, 10) # 5, 6, 7, 8, 9
range(0, 10, 3) # 0, 3, 6, 9
range(-10, -100, -30) # -10, -40, -70
다만 range()
를 통해 반환된 객체는 list
처럼 동작하지만, 실제론 리스트가 아니기 때문에, 공간을 절약할 수 있습니다. 그래서 때로는 enumerate()
기능을 사용하는 것이 편리합니다.
ranage()
가 반환해주는 객체를 반복 가능하다고 표현하며, 반복 가능한 함수에서 바로 사용 가능합니다.
sum(range(5)) # 0 + 1 + 2 + 3 + 4
리스트로 만들기 위해선 아래와 같이 사용합니다.
list(range(5)) # [0, 1, 2, 3, 4]
반복문은 리스트 안에 사용(List comprehension)이 가능합니다. 또한 리스트 내포에는 조건문도 사용 가능합니다.
numbers = [1, 2, 3, 4, 5]
odd = [num for num in numbers if num % 2 != 0]
break, continue, else
파이썬은 반복문에서도 else
키워드가 사용 가능합니다. else
구문의 실행문장은 break
문에 의해서 루프가 종료되는 경우에는 실행하지 않습니다. 아래와 같이 사용 가능합니다. ( 소수 판별 )
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n // x)
break
else:
print(n, 'is a prime number')
# 2 is a prime number
# 3 is a prime number
# 4 equals 2 * 2
# 5 is a prime number
# 6 equals 2 * 3
# 7 is a prime number
# 8 equals 2 * 4
# 9 equals 3 * 3
continue
는 break
문처럼 반복문 전체를 탈출하는게 아닌, 다음 요소로 넘어갈 때 사용하는 키워드입니다.
while 문
while
도 for
처럼 반복문으로 사용됩니다. 조건이 참일 경우 반복하는 반복문입니다.
a = 0
result = 0
while a < 10:
result += a
a += 1
print("sum :", result)
마찬가지로 break
,continue
를 사용할 수 있습니다.