코야온니의 티스토리 :)

3-2. 파이썬 - 기초 문법 본문

데이터 분석 부트 캠프/기타 정리

3-2. 파이썬 - 기초 문법

이-다은 2023. 7. 9. 18:11

1. 사칙연산

  • 더하기 + , 빼기 - 
  • 나눗셈 / , 곱하기 * 
  • 몫 // , 나머지 % ( 몫, 나머지 한번에: result = divmod(10, 3) 이라면 result[0] → 3, result[1] → 1 )
  • 거듭제곱 ** ( 2**2  → 4 )

2. 조건문 *

  • 조건에 따라 참과 거짓을 판단하는 문장
  • 비교 연산자를 기준으로 참/거짓을 판단 → 조건문 안에 있는 동작문을 순차적으로 실행
    • 비교 연산자: >, <, >=, <=, ==, !=
    • 논리 연산자: A and B, A or B, not A    (A, B: 비교 연산자를 사용한 조건문)
    • 그 밖의 연산자: A in / not in  " 리스트 / 튜플 / 문자열 "
#1. 비교 연산자
sleepy = True     # 조건문
if sleepy == True:
    print("커피를 마신다")    # 동작문 A
else:
    print("차를 마신다")      # 동작문 B
>>> 커피를 마신다

#2. in 연산자
status = ['happy', 'angry', 'sleepy']
if 'sleepy' in status:
    print("커피를 마신다")
elif 'sad' in status:
   print("술을 마신다")
else:
    print("차를 마신다")
>>> 커피를 마신다

3. 반복문 *

  • 조건문이 거짓이될 때 까지 반복을 명령하는 구문

1. for 문: 변수를 받아 반복

# for문
for a in [1,2,3]:
    print(a)
>>> 1 2 3

drink = ['커피', '차', '물']
for item in drink:
    print('{} 을(를) 마셨습니다!'.format(item))
    if item=='차':
        break

>>> 커피 을(를) 마셨습니다!
차 을(를) 마셨습니다!

2. while 문: 일정 조건까지 반복

# while문
a = 0
while a < 3:
    a = a + 1
    print(a)
>>> 1 2 3

sleepy = True
awake_point = 3       # 잠이 깨는 시점
num_coffee = 0
while sleepy==True:                    # 조건 1 : 잠이 오면, 아래 실행
    num_coffee = num_coffee + 1
    print('커피를 {} 잔 마셨습니다!'.format(num_coffee))

    if num_coffee >= awake_point:      # 조건 2 : 잠이 깨는 시점이 되면, 아래 실행
        sleepy = False
        print('더이상 잠이 오지 않습니다')
    if num_coffee >= max_coffee:       # 조건 3 : 커피가 떨어지면, 아래 실행
        print('커피가 다 떨어졌습니다')
        break

>>> 커피를 1 잔 마셨습니다!
커피를 2 잔 마셨습니다!
커피를 3 잔 마셨습니다!
더이상 잠이 오지 않습니다

4. 함수

  • 입력 값을 받아서 일정한 처리를 진행하고 출력값을 반환하는 장치
  • 반복되는 작업을 묶어서 재사용 할 수 있도록 해주기 때문에 매우 중요
    • 함수의 구조화 ↑ → 가독성↑, 유지보수하기 쉬워짐 (재사용성 향상) → 코드의 생산성 향상
  • 기본 문법
    • def 함수명(입력인수):
      return 출력인수
  • 함수 만드는 법
    • 기존 코드를 설계할 때부터 함수로 작성
    • 재구조화 (refactoring): 기능을 하는 코드 만들고, 잘 실행되는 것을 확인한 후 보충해감
def drink_beverage(drink):
    for item in drink:
        print('{} 을(를) 마셨습니다!'.format(item))

# function call (정의된 함수를 사용해 code block 내의 코드를 실행하는 것)
drink_beverage(['커피', '차', '물'])    ''' 함수 사용 1
drink_beverage(['콜라', '사이다', '우유'])    ''' 함수 사용 2  

>>> 커피 을(를) 마셨습니다!
차 을(를) 마셨습니다!
물 을(를) 마셨습니다!
콜라 을(를) 마셨습니다!
사이다 을(를) 마셨습니다!
우유 을(를) 마셨습니다!

# return 추가하여 출력값 활용하기
return len(drink), drink[-1]
num_drink, last_drink = drink_beverage(['커피', '차', '물'])
print('총 {} 잔 마셨습니다'.format(num_drink))
print('마지막으로 {} 을(를) 마셨습니다'.format(last_drink))

>>> 총 3 잔 마셨습니다
마지막으로 물 을(를) 마셨습니다

5. 이외 파이썬 고급 기능

1. List Comprehension

  • 리스트를 빠르고 쉽게 생성할 수 있음
  • 기본 문법
    • 리스트형 = [변수 for 변수 in [변수1, 변수2, 변수3, ...]]
    • 리스트형 = [변수 for 변수 in [변수1, 변수2, 변수3, ...] if 조건문 ]
new_list = [elem for elem in range(10) if (elem % 2) == 1]
new_list
>>> [1, 3, 5, 7, 9]

 

2. 예외 처리

  • 오류가 발생할 때 오류를 무시하거나, 오류 유형에 따라 이후 조치를 추가해 주는 기능
  • 기본 문법
    • try문: 우선적으로 실행할 구문 ...
    • except문 : 오류 발생 시 실행할 구문 ...
def error_function(input):
    for i in range(10):
        try:
            result = input / i
            print(result)

#1. 오류 무시
        except:
            pass
error_function(10)    >>> 10/0 이라는 오류는 무시하고, 10/1부터 실시됨.

#2. 예상되는 예외만 지정하여 처리
        except ZeroDivisionError:       # 0으로 나누었을 때 발생하는 에러만 무시
            pass
error_function('10')     >>> 1번 방법과 달리 문자열을 넣어 발생하는 오류도 감지할 수 있음.

 

3. 프로그램 모듈화

  • 작성한 Python 코드를 실제 동작할 수 있는 프로그램처럼 만드는 방법
  • 모듈화된 코드 → 다른 외부 장치에서도 import / 실행 가능
  • 기본 모듈화 과정
    1. 프로그램 내용이 담긴 main() 함수를 만들어 줍니다
    2. if __name__=="__main__": 구문을 코드 가장 하단에 추가해 줍니다
    3. main() 함수를 추가된 구문에 들여쓰기를 맞춰서 실행될 수 있도록 합니다
    4. .py 파일을 만들어 주고, 프로그램 내용을 붙여넣습니다
    5. .py 파일을 실행합니다
# 모듈화 샘플 코드 (1~3 과정)
def main():
    item = input('당신이 가장 좋아하는 것은 무엇입니까?')
    print('저도 {} 을(를) 참 좋아합니다!'.format(item))
if __name__=="__main__":
    main()

# module_sample.py 파일 만든 이후 프로그램 실행 (4~5 과정)
!python module_sample.py