티스토리 뷰

[1] 조건문

(1) 비교연산자

비교연산자 비교상태 설명 참고
x < y ~ 보다 작음 x가 y보다 작은지 검사 a=[1,2,3,4,5]
b=a[:] # 값만 복사
c=a # 주소 복사

print(a == b) # True
print(a is b) # False

print(a == c) # True
print(a is c) # True
x > y ~ 보다 큼 x가 y보다 큰지 검사
x == y 같음 값만 비교
x is y 메모리 주소 비교
x != y 같지 않음 값만 비교
x is not y 메모리 주소 비교
x >= y 크거나 같음 x가 y보다 이상인지 검사
x <= y 작거나 같음 x가 y보다 이하인지 검사

 

(2) if "abc"는 참 if "" 는 거짓 (값이 있거나 1이면 참, 값이 없거나 0이면 거짓)

 

(3) 논리키워드 

논리연산자 함수 예시
and all(list) boolean_list = [True, False, False, True]

all(boolean_list) # False

any(boolean_list) # True
or any(list)
not  

 

(4) 삼항 연산자 : 참일때 실행할거 if 조건 else 거짓일때 실행할거

(5) if와 elif, else

조건 특징  
if 모든 if문을 순차적으로 실행
→오류방지위해 elif와 else를 사용
def test(score): 
    if score >= 90:
        print('A')
    if score >= 80:
        print('B')
    if score < 80:
        print('C')

test(95) # A,B
print('-----')
test(85) # B
print('-----')
test(75) # C
elif  
else  

 

[2] 반복문

(1) 반복문 변수명

- 임시적인 반복 변수는 보통 i,j,k로 정함 (수학의 x,y,z처럼..)

 

(2) 0부터 시작하는 반복문

- 2진수가 0부터 시작하기 때문에 0부터 시작하는 걸 권장

 

(3) 무한 loop

- 반복 명령이 끝나지 않는 프로그램 오류

- CPU와 메모리 등 컴퓨터의 리소스를 과다하게 점유

 

(4) for문 : for i in range(0,10)

- 문자열을 한자씩 리스트로 처리(시퀀스 자료형) : for i in "abcdefg" :

- 각각의 문자열 리스트로 처리 : for i in ["abc","def","fgd"]:

- 간격을 두고 세기 : for i in range(1,10,2):

- 역순으로 반복문 수행 : for i in range(10,5,-1): # 10,9,8,7,6

- 반복 실행횟수를 명확히 알 때 사용

 

(5) while문 : 조건이 만족하는 동안 반복 명령문 수행 while 조건 : 

- 반복 실행횟수가 명확하지 않을 때 사용

 

(6) 반복의 제어  : continue, break, else

- break: 반복문 끝냄, continue 다음으로 올라감  

- else를 쓸 수도 있음(반복을 다 끝내면 실행해라)

- break로 종료된 반복문은 else block이 수행되지 않음

 

(7) 가변적인 중첩 반복문(variable nested loops) 

- 실제 프로그램에서 반복문은 사용자의 입력에 따라 가변적으로 반복되고, 하나의 반복이 아닌 중복되어 반복이 일어남

문제1. 숫자맞추기
Q. 숫자를 맞춰보세요 (1~100)
A. 
50 -> 숫자가 너무 큽니다
40 -> 숫자가 너무 작습니다
...
48 -> 정답입니다. 입력한숫자는 48입니다.
import random

answer = random.randint(0,101)

print("숫자를 맞춰보세요 1에서 100사이의 값입니다.")
num = 9999
while(num != answer):
    num = int(input("예상하는 숫자를 입력해주세요(1에서 100사이)"))

    if num > answer:
      print("너무 높은 숫자 입니다") 
    elif num< answer:
      print("너무 작은 숫자 입니다")
    else:
       break
    
print("정답입니다!")
문제2. 연속적인 구구단
1~9 입력받아 구구단 입력
0 입력시 종료
print("구구단 몇 단을 계산할까요?(1~9)")

while True:
=> True: 무한 루프에 빠질 경우가 있으니까 사용하면 좋지X
  dan = int(input())
  if 1 <= dan and dan <= 9:
    print(f"구구단 {dan}단을 계산합니다")
    for i in range(1,10):
      print(f"{dan} X {i} = {dan*i}")
  elif dan == 0:
    print("구구단 게임을 종료합니다") 
    break   
  else:
    print("잘못 입력하셨습니다")

 

[3] 디버깅 debugging

- 코드의 오류를 발견하여 수정하는 과정

- 오류의 '원인'을 알고 '해결책'을 찾아야 함 => 에러가 발생하면 인터프리터가 알려줌

- 문법적 에러를 찾기 위한 에러메시지 분석

   ex. 들여쓰기 indentationError, 오탈자 및 대소문자 구분안함 nameError, not defined

- 논리적 에러를 위한 테스트도 중요

  ex. 뜻대로 실행이 안되는 코드 => 중간 중간 프린터 문을 찍어서 확인( loop review처럼 해보기!)

*테스트 할 때 if__name__을 쓰면 shell에서 파이썬을 실행시킬때 main이 바로 실행되지 않음

def main():

   print(15)

if __name__ == "__main__":

    main()

- 모든 문제는 google + stackoverflow(전세계 개발자들의 코딩 Q&A 사이트)로 해결 가능

=> 유사질문을 보고 참고하고, 직접적인 답변은 X, 꼭 혼자 힘으로 끝까지 풀어보기

 

 

※ 출처 : 네이버 부스트코스 - 인공지능 기초 다지기(https://www.boostcourse.org/ai100)

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함