티스토리 뷰

👉 조건문 - if문
if 조건식 :
명령문
✔ 조건문은 특정 조건에 코드를 실행하는 문법이다.
✔ 파이썬은 세미콜론도 중괄호도 사용하지 않으니 들여 쓰기를 통해 구분해주어야 한다.
✔ 조건문에는 비교 연산자 ( >, <, >=, <=, ==, != )와 논리 연산자 (and, or, not)을 사용한다.
✔ 다른 프로그래밍 언어와는 달리 논리 연산자를 기호로 표현하지않고 직접 입력하니 주의하자.
x = 10
if x==10:
pass
elif x==20:
print(20)
else :
print('x!=10, x!=20')
✔ if문 명령문에 pass라는 키워드를 사용하면, 아무 일도 하지 않고 그냥 넘어간다는 의미로 사용된다.
✔ if문의 다음 줄에 아무런 코드를 입력하지 않으면 에러가 발생하므로, 조건문 형태를 유지하기 위해 사용한다.
✔ 파이썬에서는 else if 문을 elif 라고 표현한다.
num = int(input('정수 입력 : '))
if num>0 :
print('입력한 정수 %d = 양수' %num)
elif num==0 :
print('입력한 정수 = 0')
else :
print('입력한 정수 {} = 음수' .format(num))
✔ if-elif-else문을 사용해서 입력받은 정수가 양수인지 음수인지 아니면 0인지를 판별해 출력
if not 0:
print('참') # not 0은 참
if not None:
print('참') # None은 참
if not '':
print('참') # not 빈 문자열은 참
✔ 0, None, 빈 문자열 '' 을 not으로 반전시키면 참(True)이 된다.
✔ 파이썬에서는 0, None, 빈 문자열 ''을 False로 취급하기 때문이다.
✔ 이 외에도 0, 0.0, 비어있는 문자열, 리스트, 튜플, 딕셔너리, 세트 ("", '', [], (), {}, set() )를 False로 취급한다.
name = input('이름 입력 : ')
if not name :
print('이름을 입력하지 않았습니다')
else :
print('이름 : {}'.format(name))
✔ 입력 함수를 통해 입력하지 않고 개행한 경우 입력은 끝난다.
✔ 이 경우 변수에는 null이 입력되고, 이를 not으로 반전시켜주어 True로 바꾸어 준다.
✔ if문의 조건이 참이되고 내부의 명령문이 실행된다.
#방법1
if x > 0:
if x < 20:
print('20보다 작은 양수입니다.')
#방법2
if x > 0 and x < 20:
print('20보다 작은 양수입니다.')
#방법3
if 0 < x < 20:
print('20보다 작은 양수입니다.')
✔ 여러 조건을 확인해야 한다면, 중첩 for문을 사용해 확인할 수 있다 (방법 1)
✔ 혹은 논리 연산자 and, or, not을 사용해 조건을 중첩 확인할 수도 있다 (방법 2)
✔ 마지막으로 0 < x < 20처럼 부등호를 연달아 사용할 수 있다.
👉 반복문 - for문
for i in range(n) :
반복할 명령문
✔ for문도 마찬가지로 반드시 들여 쓰기에 주의하자.
✔ 명령문을 n번 반복한다는 의미로, 0부터 n-1까지 변수 i에 저장하고 명령문을 실행한다.
✔ 이처럼 for문은 반복 횟수가 정해져 있을 때 주로 사용한다.
for i in range(10) :
print('{}번째 출력'.format(i+1))

✔ 변수 i의 값을 위와 같이 확인할 수 있다. 이렇게 반복문 내부에서 사용하는 변수를 루프 인덱스라고도 부른다.
#파이썬 2.7
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#파이썬 3
>>> range(10)
range(0, 10)
>>> list(range(10)) # range 객체를 리스트로 만듦
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
✔ 파이썬 2.7과 파이썬 3에서의 range() 결과는 조금 다르다.
✔ 파이썬 2.7에서는 실제로 연속된 숫자가 들어있는 리스트를 만들어 내지만
✔ 파이썬 3에서는 range 객체 (반복 가능한 객체)를 만들어 낸다
#range(start, end, step)
# 0부터 8까지 2씩 증가
for i in range(0, 10, 2):
print('{}번째 출력'.format(i))

✔ range()는 최대 3개의 인수를 가진다. 각각 순서대로 시작점, 끝나는 지점, 증가폭을 의미한다.
✔ 인수를 하나만 작성하면 end로 인지하고, 두 개를 입력하면 start와 end로 사용된다.
✔ step을 입력하지 않고 생략하면 1씩 증가한다.
# 10부터 1까지 1씩 감소
for i in range(5, 0, -1):
print('range() 활용 : {}번째 출력'.format(i))
#reversed 키워드 사용
for i in reversed(range(5)):
print('reversed() 사용 : {}번째 출력'.format(i))

✔ step에는 음수를 넣어 값을 감소시킬 수 있고, 이를 사용해서 값을 역순으로 출력할 수 있다.
✔ range()와 인수를 사용하지 않고 reversed 키워드를 사용하면 숫자의 순서를 뒤집을 수 있다.
✔ 다만 출력 범위가 다르므로 유의하자.
test = { 10, 'hi', 30 }
j=0
for i in test :
print('arr[{0}] : {1}'.format(j,i))
j+=1

✔ range() 대신 배열의 이름을 넣으면 변수 i에 배열의 요소 값을 하나하나 순서대로 대입해 사용할 수 있다.
👉 반복문 - while문
x = 0
while x < 5 :
print('hello world')
x += 1

✔ while 반복문은 조건식으로만 동작하며 반복할 코드 안에 조건식에 영향을 주는 변화 식이 들어간다.
✔ while문의 조건식이 거짓이 되면 반복을 멈춘다.
import random #random모듈 가져오기
i = 1
n = 0
while n != 7 :
n = random.randint(1,10)
print('%02d번째 랜덤 숫자 : %d' %(i,n))
i+=1

✔ 난수를 생성하는. randint(start, end) 함수를 사용해서 7이 나올 때까지 반복하는 함수이다.
✔ 실행할 때마다 난수가 바뀌므로 반복 횟수 또한 상이하다.
#(+) 21.03.18
#while-break-else문 만들기
list = input('문자열 입력 : ')
i = 0
while(i<len(list)) :
if i==10 :
print('> break문 통해서 while문 종료')
break
print(list[i],end='')
i+=1
else :
print('> while문 조건식을 통해 종료')


✔ while문 내부에 break문이 있다면 else문을 덧붙여 사용할 수 있다.
✔ 조건식을 통해 while문이 종료되었다면 else문을 실행한다.
✔ break문을 통해 while문이 종료되었다면 else문은 실행되지 않는다.
👉 break문
import random #random모듈 가져오기
i = 1
n = 0
while 1 :
n = random.randint(1,10)
print('%02d번째 랜덤 숫자 : %d' %(i,n))
if n==7 : break
i+=1

✔ break문은 제어 흐름을 바꾸어 반복에서 벗어나기 위해 사용한다.
✔ while문의 난수 관련 예제를 break문을 사용해 같은 결과를 도출하도록 수정해보았다.
✔ while문뿐만 아니라 for문에서도 반복에서 벗어나기 위해 사용한다.
👉 continue문
for i in range(10):
if i % 2 == 0:
continue
print(i,end=' ')

✔ continue문은 일부 코드를 생략하고 건너뛸 수 있다.
✔ for문에서 continue문을 사용하면, continue문 이하의 코드는 생략하고 반복 변수를 증감한다.
✔ while문에서 continue문을 사용하고 싶다면, 반드시 증감 식이 continue문의 위쪽에 자리해야 한다.
[참고] 엘리스 트랙-혼자 공부하는 파이썬 / 길벗-파이썬 코딩 도장 / 엘리스 트랙 - 예제 중심의 파이썬 입문 / 위키백과
'BackEnd > Python' 카테고리의 다른 글
[파이썬 기초] 02-2. (튜플) (0) | 2021.03.18 |
---|---|
[파이썬 기초] 02-1. [리스트] (0) | 2021.03.16 |
[파이썬 기초] 01-4. 비트 연산자 / 논리 검증 (0) | 2021.03.16 |
[파이썬 기초] 01-3. 문자열 / 문자열 메소드 / 입출력함수 (0) | 2021.03.16 |
[파이썬 기초] 01-2. 데이터형 / 변수의 의미 / 연산자 (0) | 2021.03.16 |