리마인드할 것만 메모
IF
이론
- if 문 사용시,
:
사용에 주의 - 조건문 이용 프로그래밍 > 의사결정 Decision making
- 조건 빠지는 것들이 없는지 항상 체크
- 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
자판기에 들어갈 프로그램
- 자판기 입력된 돈 300원이면 커피를 주고,
- 300원보다 적은 경우엔 돈을 돌려주고
- 300원보다 많은 경우엔 거스름돈과 함께 커피를 줘야한다
My Solution
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
:
콜론 사용 주의!- 반복분을 사용하려면 하려는 일을 '반복 가능하게' 바꿔주어야 >
decomposition
분해 - 조건문과 program의 로직(logic)을 구성
Hands-on.2
- 앞에 사용했던 커피 자판기 커피 5개 있음
- 커피가 다 떨어질 때까지 자판기를 운영한다면?
My Solution
Feedback
- 금액을 입력할 수 있도록 하는 코드 넣으면 재밌음
money = int(input("금액을 입력해주세요 : "))
이걸 적용하여 코드를 바꾼다면,
money = int(input("금액을 입력해주세요 : "))
limit_machine(money)
이렇게 가능할듯
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 |