BASEMENT
Python 2주차 - 1 본문

조건문
1. 기본 if 문
조건식이 참일 경우에 실행
일반적으로 참(True) 또는 거짓(False)의 결과가 나오는 식을 사용
또는 in 연산자를 이용하여 데이터의 존재 유무를 확인할 수 있도록 작성
if 에 종속되어 참일 경우 실행해야할 코드는 들여쓰기(indent)로 작성
기본 if문 예제
2. if ~ else 문
조건식이 참이 아닌 경우에 실행해야 할 문을 별도로 else 를 통해 제시
else 다음에는 조건식을 작성하지 않음
else는 반드시 if와 한 쌍을 이룸, 단독으로 사용 불가
3. if ~ else ~ if ~ else 중첩 if문
cf) if 의 조건식이 참 또는 거짓인 경우에 실행해야하는 문장이 없는 경우
-> pass 사용
반복문
for : range 함수 또는 list 등과 같은 자료형과 함께 반복 횟수 또는 반복에 사용될 데이터가 확실한 경우 사용while : 반복 횟수가 미정일 경우, 조건식의 참/거짓 여부에 따라 반복실행 할 때 사용 (조건식이 참일 동안 반복문 실행)
1. for
for <변수1, 변수2, 변수3...> in iterable:
for문의 iterable은 주로 range와 list 사용
iterable
- 반복의 의미, 한 번에 하나씩 값을 반환할 수 있는 데이터(객체)를 의미
- 순회가 가능하다라는 가능 여부이며 iterator로 변환할 수 있는 자료형
- 집합형 자료형인 list, tuple, dictionary, set 등과 문자열, range 등
iterator
- 값을 순차적으로 꺼낼 수 있는 객체
- next() 함수로 데이터를 순차적으로 호출 가능
- 호출할 값이 없는 경우 StopIteration Exception 발생
- iterable은 iter() 또는 __iter__()을 통해 iterator로 변환
range 함수
- iterable인 range()의 사용은 iterator로 변환하여 range()를 통해 생성된 값을 하나씩 반환
- range()의 자료형은 <class range>
- range(start=0, end, step=1) -> end값은 생성값에서 제외, 각 값은 정수
for문에서 range() 작동 방식
2. while
변수 = start 값
while 변수 < end값:
반복문
변수 = 변수 + step값
상태 기반으로 while문 작성
in 연산자 뒤의 데이터 중에 특정항목이 존재하면 True, 아니면 False
무한루프
무한 while 문을 stop 할 수 있는 식이 반드시 필요
시간을 기반으로 조건을 사용 시 while문 이용
# 5초 동안 반복 수를 출력하는 코드 작성
import time # 시간 관련 모듈
number = 0
tick = time.time() + 5 # .time() : 현재 컴퓨터 시스템의 시간
while time.time() < tick:
number += 2
print(f'5초동안 {number}번 반복했습니다.')
중첩 루프(nested loop)
- 루프의 본체 내에 다른 루프를 포함
- ex) while루프 내 while루프, for루프 내 for루프, while루프 내 for루프 등
- 바깥 루프의 각 반복에 대해서 안쪽 루프가 완전히 실행되므로 이차원의 반복적인 일 수행 가능
# for문 중첩루프 사용
for i in range(5):
for j in range(i,5):
print("*", end='')
print()
# while문 중첩루프 사용
i = 0
while i < 5:
j = i
while j < 5:
print("*", end='')
j += 1
print()
i += 1
3. break, continue
반복문을 제어하는 구문
break : 반복문 탈출
continue : 반복해야 할 코드 일부를 실행하지 않고 반복문을 이어나가도록 해주는 구문
반드시 반복문 안에다 작성
# break 예제
fact, n = 1, 0
n = int(inpute("factorial 정수입력>> " ))
for n in range(1,n+1):
fact *= n
print("n: %d, 누적곱: %d" % (n,fact))
break
# continue 예제
for i in range(10):
print("i: %d" % i)
continue # countinue 다음의 코드는 실행되지 않음
print("%d의 거듭제곱: %d" % (i,i**2))
turtle 모듈
파이썬 내장 모듈 (turtle.py)
import turtle 로 사용
# 예제 - 정사각형 그리기
import turtle
turtle.shape('turtle')
for i in range(4):
turtle.foward(200)
turtle.right(90)
turtle.done()
# 예제 - random 모듈을 이용하여 그리기
import turtle
import random # random 모듈 호출
pSize = 10
r,g,b = 0.0, 0.0, 0.0
turtle.title("Sketch Conch with Turtle")
turtle.shape("turtle")
turtle.pensize(pSize)
turtle.goto(0,0)
for i in range(0,100,1):
turtle.pencolor((r,g,b))
r = random.random() # 0.0~1.0 사이의 랜덤값 발생
g = random.random()
b = random.random()
turtle.left(30)
turtle.forward(i+5)
turtle.done()
# turtle모듈을 사용하여 1을 입력하면 원, 2를 입력하면 태극문양 그리기
import turtle as t
def turtle_circle(n):
t.bgcolor("black")
t.color("pink")
t.speed(0)
for x in range(n):
t.circle(100)
t.left(360/n)
def turtle_taegeuk():
t.bgcolor("black")
t.speed(0)
t.shape("turtle")
for x in range(200):
if x % 3 == 0:
t.color('red')
elif x % 3 == 1:
t.color('yellow')
else:
t.color('blue')
t.forward(x*2)
t.left(119)
if __name__ == "__main__":
select = int(input("번호를 1,2번 중 선택 >> "))
if select == 1 :
turtle_circle(100)
elif select == 2:
turtle_taegeuk()
else:
print("Error")
random 모듈
random 모듈의 함수
- random() : 0.0 ~ 1.0 사이의 랜덤값
- uniform(2.5, 10.0) : 2.5 ~ 10.0 사이의 랜덤값 (10.0 미포함)
- randrange(10) : 0~9 사이의 정수 랜덤값
- randrange(0,101,2) : 0~100 사이 중 짝수 정수 랜덤값
- choice(['win', 'lose', 'draw']) : 집합형 자료형 중 랜덤하게 항목 하나 선택
- suffle(항목) : 항목들을 랜덤하게 섞음. 리스트에만 사용 가능, 리스트 자체가 변함
- sample(항목, k=<숫자>) : 항목들 중에서 k개 선택
-> choice, suffle, sample 함수는 집합형 자료형에만 사용 가능
'Programming > Python' 카테고리의 다른 글
Python 3주차 - 2 (0) | 2020.07.12 |
---|---|
Python 3주차 - 1 (0) | 2020.07.12 |
Python 2주차 - 2 (0) | 2020.07.11 |
Python 1주차 - 2 (0) | 2020.07.09 |
Python 1주차 - 1 (1) | 2020.07.05 |