데이터 2주_파이썬 기초7~10

ka02·2023년 3월 12일

data, python

목록 보기
2/3
  • 3/6(월)~3/12(일)

기초7
25.조건식 ~ 28. if~else문과 조건식

25. 조건식

조건식: 어떤 조건에 따라 실행이 분기 되는 식
A if 조건식 else B: 조건식의 결과가 True면 A 실행, 아니면 B 실행

num1 = 10
num2 = 100

numResult = True if num1 > num2 else False
print('num1>num2 : {}'.format(numResult))

print('num1은 num2보다 크다.') if numResult else print('num1은 num2보다 크지 않다')

결과:
num1>num2 : False
num1은 num2보다 크지 않다

26. 조건문(if문)

  • 특정조건에 따라 프로그램을 분기한다.

  • 특정조건이 True -> 실행문 / False -> 실행문

  • 조건문 종류:
    if문 -> 단일조건
    if ~ else문 -> 양자택일
    if ~ elif문 -> 다자택일(다중조건)

  • if문

27. 양자택일 조건문(if~else문)

  • 조건식 결과에 따라 둘 중에 하나가 실행됨
seniorAge = 65
passengerAge = int(input('나이 입력 : '))

if passengerAge >= seniorAge:
    print('무료 대상')
else:
    print('유료 대상')
  • pass 키워드
    실행문에 pass를 입력하면 나중에 코딩하겠다는 의미

28. if~else문과 조건식

# 조건식 결과에 따른 실행만 하는 경우
print('포인트 사용 가능') if userPoint >= minPoint else print('포인트 사용 불가능')

# 조건식 결과를 변수에 할당하는 경우
result = '가능' if userPoint >= minPoint else '불가능'
print('포인트 사용 가능 여부: {}'.format(result))
  • 조건식 -> if~else문: 모든 조건식(삼항연산자)은 if~else문으로 변경할 수 있다.
print('포인트 사용 가능') if userPoint >= minPoint else print('포인트 사용 불가능')

-> if~else문

if userPoint >= minPoint:
	print('포인트 사용 가능')
else:
	print('포인트 사용 불가')
  • 조건식 vs if~else문
    if~else문 -> 조건식: 모든 if~else문은 조건식으로 변경할 수 있는 것은 아님

기초8
29. 다자택일 조건문(if~elif문) ~ 32. 반복문

29. 다자택일 조건문(if~elif문)

  • if~elif문: 여러가지 조건식 결과에 따라 실행문이 결정
examScore = int(input('시험 성적 입력 : '))
grade = ''

if examScore >= 90:
    grade = 'A'
elif examScore >= 80:
    grade = 'B'
elif examScore >= 70:
    grade = 'C'
elif examScore >= 60:
    grade = 'D'
else:
    grade = 'F'

print('성적: {} \t 학점: {}'.format(examScore, grade))

결과:
시험 성적 입력 : 98
성적: 98 학점: A

30. 다자택일 조건문 사용 시 주의할 점

  • 조건식 순서가 중요하다.
  • 조건 범위를 명시한다.

31. 중첩 조건문

  • 조건문 안에 또다른 조건문이 있을 수 있다.
examScore = int(input('시험 점수 입력 : '))

if examScore < 60:
    print('재시험 대상입니다')
else:
    if examScore >= 90:
        print('A')
    elif examScore >= 80:
        print('B')
    elif examScore >= 70:
        print('C')
    elif examScore >= 60:
        print('D')

32. 반복문

  • 반복문: 특정 실행을 반복하는 것.
  • 반복문을 사용하면 프로그래밍이 간결하고 유지보수가 쉽다.(효율적)

ex: 대량 메일 또는 문자 발송, 인사말 반복, 타이머, 구구단 등

기초9~10
33. 횟수에 의한 반복(for문) ~ 40. 중첩 반복문

33. 횟수에 의한 반복(for문)

  • 횟수에 의한 반복: 정해놓은 반복 횟수에 따라 반복 실행
    ex. 대량 메일 또는 문자 발송, 인사말 반복, mp3 반복 재생
  • 횟수에 의한 반복은 for문이 주로 사용

for문 사용 방법

  • fir ~ in
  • pass
    실행문에 pass 사용하면 나중에 코딩하겠다.
  • :(코드블록), 들여쓰기

34. 반복 범위 설정(range() 함수)

  • range() 기본 사용 방법:
    for i in range(1, 11, 1):
    -> 1부터 10까지 1씩 증가 // 1: 시작, 11: 끝, 1: 단계

  • 단계 매개변수 생략: 단계가 1인 경우 생략 가능
    for i in range(1, 11):

  • 시작 매개변수 생략
    for i in range(11):
    시작이 0인 경우 생략 가능, 0부터 10까지 1씩 증가

35. 조건에 의한 반복(while문)

  • 조건에 만족하면 반복 실행한다. 그렇지 않으면 반복을 중단한다.
    ex. 매일 아침 기상 알람, 게임 반복 실행, 타이머 등

  • 조건에 의한 반복은 while문을 주로 사용

while문 사용 방법

  • while

  • pass: 실행문에 쓰면 나중에 코딩

  • :(코드블록), 들여쓰기

36. for문과 while문 비교

for문이 적합한 경우

  • 횟수에 의한 반복이라면 for문이 while문 보다 적합하다.
    ex. 1~10까지의 합은? for문이 간결

while문이 적합한 경우

  • 조건에 의한 반복이라면 while문이 for문보다 적합하다.
    ex. 1부터 시작해서 7의 배수의 합이 50이상인 최초의 정수 출력

37. 무한 루프

  • 반복문을 빠져나올 수 없는 경우
    while문에서 조건식의 결과가 항상 true인 경우 무한 루프에 걸려서 마지막에 예) n += 1 을 실행문에 추가하면 무한루프를 벗어날 수 있다.
  • 논리형 데이터를 사용해서 무한 반복 실행할 수 있다.
flag = True
num = 0
sum = 0

while flag:
    num += 1
    sum += num
    print('{}까지의 합 : {}'.format (num, sum))

    if sum >= 1000:
        flag = False

38. 반복문 제어(continue)

  • 반복 실행 중 continue를 만나면 실행을 생략하고 다음 반복 실행문으로 넘어간다.
  • else의 실행문은 반복문이 종료된 후 실행된다.
cnt = 0
for i in range(1, 100):
    if i % 7 != 0:
        continue #이하 반복 실행 생략

    print('{}는 7의 배수입니다.'.format(i))
    cnt += 1
else: # 반복문이 종료된 후 실행
    print('7의 배수는 총 {}개입니다.'.format(cnt))

39. 반복문 제어(break)

  • 반복 실행 중 break를 만나면 반복문을 빠져나온다.
sum = 0
searchNum = 0
for i in range(100):
    sum += i

    if sum > 100:
        searchNum = i
        break # 반복문 종료 

print('searchNum : {}'.format(searchNum))

40_중첩 반복문

  • 반복문안에 또다른 반복문을 선언한다.
for i in range(1, 10):
    for j in range(i): #반복문 안에 또다른 반복문
        print('*', end='') 
    print()

결과:

0개의 댓글