02_파이썬 기초(2)

ryu·2023년 5월 5일

연산자

곱셈

  • 숫자끼리 가능
  • 문자열 - 정수 가능
    • 문자열을 곱한 정수만큼

나눗셈

  • 숫자끼리 가능
  • 0으로는 나누면 ZeroDivisionError 발생
  • 정수끼리 나눗셈 연산을 할 때 나누어 떨어져도 결괏값은 실수형이 됨

나머지

  • % 연산자 사용

  • // 연산자 사용

나머지와 몫

  • divmod(num1, num2) 함수 사용
  • num1num2로 나눈 몫 - 나머지를 튜플로 반환함

거듭제곱 연산자

  • ** 연산자 사용
  • 2 ** 3은 2의 3제곱을 의미
  • n제곱근을 구하기 위해서는 (1/n) 제곱을 이용하면 됨
    • ex) 2의 3제곱근: 2 ** (1/3)
  • math 모듈의 sqrt() 함수와 pow() 함수도 사용 가능
    • sqrt(num): num의 제곱근, pow(num, n): num의 n제곱
    • sqrt()는 2제곱근만 구할 수 있음

복합 연산자

할당 연산자

  • =
  • 오른쪽의 값을 왼쪽에 할당(대입)한다는 의미

복합 연산자

  • +=, -=, *=, /=, %=, //=, **=

  • 모두 앖의 연산자 작업을 수행후 값을 할당하는 것

    num1 = 10
    num1 //= 3 # num1을 3으로 나눈 몫을 num1에 할당
    print(num1)	# 3

비교 연산자

  • >, <, >=, <=, ==, !=
  • 연산 결과는 bool

문자 비교

  • 아스키코드를 이용한 비교 연산
    • 아스키코드: 문자를 숫자로 정의한 표
  • ord(문자): 문자에 해당하는 아스키코드 값 반환
  • chr(숫자): 숫자에 해당하는 아스키코드 값을 가진 문자를 반환

논리 연산자

  • 피연산자의 논리(True, False)를 이용한 연산

and 연산

  • A and B: A와 B 모두 True여야 True

or 연산

  • A or B: A와 B 둘 중 어느 하나만 True이면 True

not 연산

  • not A: A의 상태를 부정하는 결과. A가 True이면 False, False이면 True

operator 모듈

산술 연산자 관련

  • + -> operator.add()
  • - -> operator.sub()
  • * -> operator.mul()
  • / -> operator.truediv()
  • % -> operator.mod()
  • // -> operator.floordiv()
  • ** -> operator.pow()
  • 모두 인자로 2개의 숫자를 받음

비교 연산자 관련

  • == -> operator.eq()
  • != -> operator.ne()
  • > -> operator.gt()
  • >= -> operator.ge()
  • < -> operator.lt()
  • <= -> operator.le()

논리 연산자 관련

  • and -> operator.and_()
  • or -> operator.or_()
  • not -> operator.not_()

조건식

  • 어떤 조건에 따라 실행이 분기되는 식
    • (조건문이 참일 때의 값) if (조건문) else (조건문이 거짓일 때의 값)
    • numResult = True if num1 > num2 else False
  • 조건식 결과에 따라서 바로 실행을 하도록 작성할 수도 있고, 바로 위의 경우처럼 결과를 변수에 할당하는 것도 가능

조건문

  • if문: 단일조건
  • if ~ else문: 양자택일
    • 모든 조건식은 if ~ else문으로 변경할 수 있음
    • 하지만 모든 if ~ else문을 조건식으로 변경할 수 있는 것은 아님. 조건에 따라 추가적인 변수가 생기거나 추가적인 작업이 수행되는 경우 변경이 어려운 경우가 있음
  • if ~ elif문: 다자택일
    • 마지막 else는 생략이 가능
if 조건식:
  실행문
  
# if문
if 10 < 5:
  print('10은 5보다 크다.')
  

# if ~ else문
passScore = 80
myScore = 90

if myScore >= passScore:
  print('PASS!')
else:
  print('FAIL!')
  

# if ~ elif문
grade = ''
myScore = 87

if myScore >= 90:
  grade = 'A'
elif myScore >= 80:
  grade = 'B'
else:
  grade = 'C'

다자택일 사용시 주의점

  • 조건식의 순서가 매우 중요
  • 조건의 범위를 명시

중첩 조건문

  • 조건문 안에 또 다른 조건문이 있을 수 있음

  • 보통 3중 중첩 이상은 사용이 권장되지 않음

    • 가독성이 떨어지기 때문에 다른 구조를 선택하는 것이 효율적
    if 조건문:
      실행문1
    else:
      if 조건문:
        실행문2
      else:
        실행문3

반복문

반복문이란?

  • 특정 실행을 반복하는 것
  • 적절히 사용하면 프로그래밍이 간결하고 유지 보수가 쉽다는 장점이 있음
    • 대량의 메일/문자 발송, 인사말 반복, 구구단 출력 등등

반복문의 종류

  • 횟수에 의한 반복: 횟수를 지정하고, 그 횟수만큼 반복실행
    • for
  • 조건에 의한 반복: 조건을 지정하고 조건을 만족할 때까지 반복
    • while

0개의 댓글