본문 바로가기

일별 학습일지

12/12 :: IF, for, while

리마인드할 것만 메모

IF

이론

  1. if 문 사용시, : 사용에 주의
  2. 조건문 이용 프로그래밍 > 의사결정 Decision making
  3. 조건 빠지는 것들이 없는지 항상 체크
    • edge case 에러
    • 예시 : list 처음과 끝의 원소 indexing (boundary condtion)

실습

Indentation 들여쓰기 너비로 구분하게 됨
들여쓰기 익숙해지면 표시 버리는게 편함

  • 비교연산, 논리연산
a == b
a != b
a > b
a < b
a >= b   # assignment 관점에서 = 이 먼저 오면 헷갈림 // 뒤로온다고 생각
a <= b

A and B
A or B

Hands-on.1

자판기에 들어갈 프로그램

  1. 자판기 입력된 돈 300원이면 커피를 주고,
  2. 300원보다 적은 경우엔 돈을 돌려주고
  3. 300원보다 많은 경우엔 거스름돈과 함께 커피를 줘야한다

My Solution

if 문 및 함수활용하여 machine 프로그램 함수고안 및 적용

nested if 구조도 가능함

자판기의 logic을 먼저 짜고 code를 구성했다는게 중요함


For, While

반복수행

  • 프로그래밍 가장 중요 요소 : 조건, 반복 cf. 컴퓨터는 반복에 최적화됨
  • For : 특정 횟수, sequence가 도달, 만족여부에 중점
    • or List 같은 sequence 처음부터 끝까지 반복 ok
    • 주어진 여러 개의 데이터를 순서대로 다룰 때 많이 사용

for iterator in interable_object: # 반복 가능한 객체, 반복 가능한 대상(range, list, tuple)
    <statement>
    <statement>
  • While :특정 조건 만족

while condition:
    <statement>
    <statement>

Key points

  1. : 콜론 사용 주의!
  2. 반복분을 사용하려면 하려는 일을 '반복 가능하게' 바꿔주어야 > decomposition 분해
  3. 조건문과 program의 로직(logic)을 구성

Hands-on.2

  1. 앞에 사용했던 커피 자판기 커피 5개 있음
  2. 커피가 다 떨어질 때까지 자판기를 운영한다면?

My Solution

기존 machine 함수 재활용하여 while 반복하는 limit_machine 함수

Feedback

  1. 금액을 입력할 수 있도록 하는 코드 넣으면 재밌음
    money = int(input("금액을 입력해주세요 : "))

이걸 적용하여 코드를 바꾼다면,

money = int(input("금액을 입력해주세요 : "))
limit_machine(money)

이렇게 가능할듯

  1. moeny 에 대한 조건을 넣으면 더 좋음
    • 금액의 상한/하한선
    • 예외 처리

for문 과 range()

range(a,b) : a 포함 b 미만 차례대로 생성 = index 처럼 활용할 수 있다

# 1. index 
for i in range(len(coffees)):  # len(리스트) 로 리스트 내 요소들의 길이만큼 range 생성
    if prices[i] - 500 <= 5000:
        print(coffees[i])

# 2. enumerate - 열거
for idx, price in enumerate(prices):  # enumerate 열거
    if prices[i] - 500 <= 5000:
        print(coffees[i])

# 3. zip 
for coffee, price in zip(coffee, prices):
    if prices[i] - 500 <= 5000:
        print(coffees[i])

break, continue

break : 더 이상 반복이 필요없을 때
continue : 특정조건에만 건너뛰기

infinite loop 영원히 코드 반복

Hand_on_3. logic 추가

만약 돈이 모자르면 돈을 더 넣어야할 떄

  • total_money 변수로 거스름돈 저장하는 만들어서 입력된 가격 저장하고 print 출력문 나오게 하면 됨
  • 정산 및 조건 및 상황에 따라 logic을 짜줘야함
  • 새로운 변수를 만들어 기존 변수와 활용하는 알고리즘을 알려주는 듯

플로우 차트를 만들면서 막히는 부분을 경험적으로 기억해두고, 설계에 반영해두면 좋다

구구단

for 중첩에서 돌아가는 숫자 변수를 각각 할당하면 됨

1st for : dan
2nd for : num

for dan in range(2, 10):
    print("-" * 10)
    for number in range(1, 10) : 
        print(" %d x %d = %d % (dan, number, dan*number))     

'일별 학습일지' 카테고리의 다른 글

12/20 :: Ideation  (0) 2023.12.20
12/18 :: 실시간  (0) 2023.12.18
12/13 :: 실시간  (0) 2023.12.13
12/11 :: Data type  (0) 2023.12.12
12/12 :: 특강  (0) 2023.12.12