[패스트캠퍼스python] 조건문과 반복문
파이썬의 흐름제어 : 조건문과 반복문
파이썬은 정말 문법에 자유로운 언어인 것 같다.
조건문, 반복문에도 ()를 넣지 않아도 된다.
점점 내 스타일이다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
1. 조건문
1. 조건문의 Boolean
조건문에서 가장 중요한건 boolean이다
1 | if None: |
만약 Yes1을 출력하고 싶다면 if 의 조건을 True 값을 넣어야한다
그렇다면 True 와 false 에는 뭐가 있을까?
참 거짓 종류
참 : “내용” [내용] (내용) {내용} 1
거짓 : “” [] () {} 0
1 | if 1: |
2. 관계연산자
다양한 예가 있다.
수학에서의 부등호와 비슷하기 때문에 직관적으로 의미를 알수있다.
==, !=, >, >=, <, <=
3. 논리연산자 : and or not
js에서 and와 or 연산자만 배웠었는데
python에서 not 연산자를 처음 봤다.
not이란 연산자는 되게 흥미로워서 조금 더 찾아봤다
논리연산자진리표를 보면 쉽게 이해가 간다.
아래 이미지는 논리연산자의 쉬운 예시이다
아래 코드의 의미는 참이 아닌 것을 출력하시오이다.
1 | print(not True) |
4. 산술 > 관계 > 논리 순서대로 적용.
위에서 배웠던 세 가지의 연산자들이 동시에 쓰이게 되면 우선순위대로 처리가 이루어진다
1 | print('ex1 : ', 5+10 > 0 and not 7+3 == 10) |
관계연산자와 논리연산자를 함께 쓰면 아래와 같다
1 | score1 = 80 |
5. 다중조건문 :
다중조건문은 위의 점수조건문을 응용해서 만들어볼 수 있다
num이 82이기에 B값이 터미널에 출력되는 것을 확인 할 수 있다.
2. 파이썬 흐름제어(반복문) : while, for
1. while과 for문
while문은 아래와 같이 나타낼수있다
while문과 for문이 자유자재로 바꿔 생각할 수 있어야 코딩 초짜를 뗄 수있다.
1 | v1 =1 |
이걸 for 문으로 바꾼다면 어떻게 될까?
1 | for v2 in range(1, 11): |
2. 1부터 100까지의 합을 구하는 두 가지 방법
첫번째 방법 while문사용
1
2
3
4
5
6
7
8
9
10sum1 = 0
cnt1 = 1
while cnt1 <= 100:
sum1 += cnt1
cnt1 += 1
print(' 1 ~ 100합은 : ', sum1)
# 출력값은
1 ~ 100합은 : 5050두번째 방법 range()함수사용
1
2
3
4print(' 1 ~ 100합은 : ', sum(range(1,101)))
# 출력값은
1 ~ 100합은 : 5050위의 range 함수 활용
range()함수는 3번째 매개변수까지 받을 수 있다.
range(시작값, 끝값, 넘어가는숫자))
예를 들어 1~100까지의 짝수의 합은?
1 | print(' 1 ~ 100까지 짝수의 합은 : ', sum(range(1,101, 2))) |
3. 시퀀스
순서가 있는 자료형을 반복 (매우중요)
문자열, 리스트, 튜플, 집합, 사전 이 데이터들은 다 시퀀스 가능
iterable 리턴함수 : range, reversed, enumerate, filter
예제 1 : 값을 하나씩 가져오시오
1 | names = ['kim', 'park', 'lee'] |
예제 2 : ‘word’를 한 글자씩 가져오시오
1 | word = 'word' |
예제 3
1 | my_info = { |
예제 4 : 대문자는 소문자로, 소문자는 대문자로 바꾸시오
1 | name = 'GoodbYe' |
4. break
정말 중요한 break!
사소하지만 효율을 올려준다
1 | numbers = [14,3,4,7,10,33,24,17] |
위의 코드로 하면 원하는 값을 찾은 뒤에 2번 더 실행되는 것을 볼 수 있다.
효율이 떨어지므로 break걸어주면 좋다
1 | for num in numbers: |
5. for - else 구문
흥미롭게도 python에는 for문에도 else가 있다 (중요)
반복문이 정상적으로 수행 된 경우 else 블럭 수행
블럭안에 break가 들어간 경우 반복문 전체가 실행되지않기에 for-else문이 출력되지않는다
1 | for num in numbers: |
6. continue
break의 반대이다
아래는 continue를 가장 이해하기 쉬운 예시이다
1 | lt = ["1", 2, 5, True, 4.3, complex(4)] |
만약 찾은 float빼고 나머지를 보고싶다면?
이때 continue사용하면 좋다!
for v in lt:
if type(v) is float:
continue
print('타입 : ', type(v))
# 출력값은
타입 : <class 'str'>
타입 : <class 'int'>
타입 : <class 'int'>
타입 : <class 'bool'>
타입 : <class 'complex'>
float만 빼고 출력된 것을 확인할 수있다
개이득!