파이썬 기초 - 흐름제어(Flow Control)

LSH·2023년 5월 12일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 파이썬 프로그래밍
  • 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
  • 강의 계획:
    1. 파이썬 언어 기초 프로그래밍
    2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
    3. 탐색적 데이터 분석, 분석 실습
    - 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
    4. 통계기반 데이터 분석
    5. 미니프로젝트

1. 조건문

  • 조건에 따라 다른 동작을 수행
    ex. 범위 외 값을 입력시 에러를 출력하는 경우 등에 사용

1.1 if문(if,elif,else)

  • 조건문은 if문을 기본으로 필요시 elif 혹은 else를 같이 사용한다.
  • 기본 형태
if 조건식:
	조건식 충족시 실행할 코드
#조건식은 Boolean값을 리턴해야 함 
#수행되는 코드는 반드시 들여쓰기 규칙을 지켜 작성

1.1.1 용례

  • if만 사용하는 경우
    - if 조건문이 True인 경우 해당 코드를 실행하고 조건문을 마친다.
if a > b:
  print("a is gereater than b")
  • if와 elif를 사용하는 경우
    - 각 조건문을 순서대로 검증하여 True인 경우 해당 코드를 실행하고 조건문을 마친다.
if a < b:
  print("a < b")
elif a == b:
  print("a = b")
elif a > b:
  print("a > b")
  • if와 else를 사용하는 경우
    - if 조건문이 True인 경우 해당 코드를 실행하고 조건문을 마치지만 False인 경우 else 코드를 실행한다.
    - else는 조건문을 가지지 않는다.
if a < b:
    print("a is less than b")
else:
    print("a is not less than b")
  • if와 elif와 else를 사용하는 경우
    - 각 조건문을 순서대로 검증하여 True인 경우 해당 코드를 실행하고 조건문을 마치며, 모든 조건문이 False인 경우 else 코드를 실행한다.
if a < b:
  print("a < b")
elif a==b:
  print("a=b")
else:
  print("a > b")

1.2.1 조건문의 코드 생략

  • 조건문이 True 일때 코드가 공란이면 에러 발생
  • 코드를 추후 삽입하고자 할때 임시로 pass를 사용할 수 있음
    ■ elif절에서 에러 발생
if a > b:
    print("a is greater than b")
elif a < b:
    # TODO: a가 b보다 클 때 처리 필요 ❗️에러 발생 포인트
else:
    print("a is not greater than b and not less than b")

■ elif절에 pass를 넣어서 elif절 진입시 조건문을 빠져나가 다음 코드가 실행됨

if a > b:
    print("a is greater than b")
elif a < b:
    pass
    # TODO: a가 b보다 클 때 처리 필요
else:
    print("a is not greater than b and not less than b")

1.3.1 삼항표현식

  • 조건문을 한 줄로 작성하는 방법
  • 중간의 조건절이 True이면 조건문의 앞쪽 코드를 실행하고 False이면 조건문의 뒤쪽 코드를 실행함
print("a = b") if a == b else print("a != b")
  • 가독성이 떨어져 권장하지 않음

2. 반복문

  • 정해진 동작을 반복적으로 수행

2.1 for문

  • 반복 범위를 지정하여 수행
  • 기본 형태
for 변수 in 시퀀스:
	코드

2.1.1 반복 범위 지정 방법

  1. 상수 혹은 변수
#상수
for _ in range(3):
	코드
#변수
a = 27
for _ in a:
	코드
  1. range() 함수
  • 시작부터 끝 전까지 증가폭만큼 증가시켜서 숫자를 만들어 내는 함수
    • 시작 포함, 끝 제외
    • 시작과 증가폭은 생략 가능 (default 시작=0, step=1)
    • 음수 증가폭 가능
range(시작,, 증가폭)
  • for문에서 range 함수가 값을 리턴하면 for 문이 작동하며, 이때 리턴된 값이 value가 된다.
for value in range(3):
    print(number)  
for value in range(1, 7, 2):
    print(number)
  1. 시퀀스
  • list 등의 시퀀스
for value in 시퀀스:
    코드
  • 시퀀스의 요소 수 만큼 반복
  • 시퀀스의 요소값이 value가 됨
veges = ["carrot", "tomato", "pumpkin"]
for vege in veges:
  print (f"I like {vege}.")

■ 참고: random 함수

  • 난수를 발생시키는 함수
  • import random 후에 사용 가능
  • random.random() : 0.0 ~ 1.0 사이의 실수 중에서 난수 발생
  • random.randint(n,m) : n ~ m 사이의 정수 중에서 난수 발생
import random
for i in range(5):
    print(random.random())
for i in range(5):
    print(random.randint(1,20),end=' ')

2.2 while문

  • 조건식이 만족하는 동안 반복 수행 (반복 횟수를 명확히 알 수 없을 때)
#1부터 시작하는 정수 변수 number의 값을 1씩 증가하면서 number*3의 값이 20을 초과하면 종료되는 반복문 
number = 1
while number * 3 <20 :
  number +=1

2.3 반복문의 제어

2.3.1 break

  • break문을 만나면 반복문을 종료
for i in range(5):
    if i == 2:
        break
    print(i)
i= 0
while i < 6:
  if i ==2:
    break
  print(i) 
  i+=1

2.3.2 countinue

  • 해당 반복 차례를 종료하고 다음 반복 차례를 수행
  • 해당 반복 차례에서 continue 뒤에 남은 코드를 건너뜀
while i<6:
  i+=1
  if i< 3 or i > 5:
    continue
  print(i)

2.4 중첩 반복문

  • 두가지 이상의 수준에서 반복을 해야 하는 경우 반복문 안에 반복문이 들어감
alist = [[1,2,3],[4,5,6],[7,8,9], [10,11,12]]
for i in alist:
#  print (i)
  for j in i:
    print(j, end = " ")
#
#결과창
1 2 3 4 5 6 7 8 9 10 11 12 

참고

  • 외부 요소를 while문의 조건으로 설정 할 수 있다.
profile
:D

0개의 댓글