코딩테스트를 위한 파이썬 문법 (3) (조건문, 반복문, 함수)

Jane·2020년 11월 26일
4
post-thumbnail

이 포스팅은 이것이 취업을 위한 코딩테스트다 APPENDIX A 코딩테스트를 위한 파이썬 문법 파트를 읽고 공부한 내용을 정리하는 용도로 작성되었습니다.
APPENDIX A에 수록된 문법 외에 개인적으로 알고리즘 문제를 풀다가 막힌 부분 및 고민했던 지점들도 정리해 두었습니다.

조건문

pass 연산자

  • 아무것도 처리하지 않고 넘기고 싶을 때는 pass를 지정해주면 된다.
>>> score = 90
>>> if score >= 80: pass
... else: print("시험을 통과하지 못했습니다.")
... print('종료')
종료

>>> score = 60
>>> if score >= 80: pass
... else: print("시험을 통과하지 못했습니다.")
시험을 통과하지 못했습니다.

조건부 표현식(Conditional Expression)

  • 조건부 표현식을 사용하면 조건문을 한 줄에 작성할 수 있다.
>>> score = 100
>>> result = "Success" if score >= 80 else "Fail"
>>> result
'Success'

반복문

특정 인덱스 값에 해당하는 요소 제외하고 출력하기

  1. 제외하고 싶은 항목의 순서를 remove_set에 저장한다.
>>> scores = [90, 35, 67, 79, 100]
>>> remove_set = {3, 5} # 67, 100
  1. index값에 1을 더한 값이 remove_set에 존재한다면 continue를 사용해서 밑의 if 조건식의 실행을 건너뛴다.
>>> for i in range(5):
...     if i+1 in remove_set:
...         continue
...     if scores[i] >= 70:       
...         print("Student Number", i+1, ": Pass")
  1. 이렇게 하면 remove_set에 지정되지 않았으면서 70점이 넘는 학생들의 목록을 출력할 수 있다.
# result        
Student Number 1 : Pass
Student Number 4 : Pass

함수

함수의 구조

  • 매개변수와 return문은 존재하지 않을 수도 있다.
def 함수명(매개변수):
    실행할 소스코드
    return 반환 값

매개변수 직접 지정

  • 매개변수를 직접 지정해서 값을 넣으면 순서와 상관없이 지정한 대로 값이 출력된다.
>>> def printa(a,b):
...     print(a)
...     
>>> printa(4,5)
4
>>> printa(b=7, a=9) # 매개변수 직접 지정
9

🌟 global 변수

  • 함수 안에서 함수 밖의 데이터를 변경하고 싶으면 함수 안에 global 키워드를 사용해주어야 한다.
>>> a = 0
>>> def func():
...     global a
...     a += 2
... for i in range(10):
...     func()
... print(a)
20
  • 이미 a는 전역 변수로 선언되었으므로 함수 안에서도 a의 값을 수정할 수 있을 것 같지만 함수 내부에서 global로 선언해주지 않으면 UnboundLocalError가 발생한다.
a = 0
def func():
...     a += 2
... for i in range(10):
...     func()
... print(a)
Traceback (most recent call last):
  File "<input>", line 4, in <module>
  File "<input>", line 2, in func
UnboundLocalError: local variable 'a' referenced before assignment
  • 그러나 신기하게도 수정이 아닌 접근은 global 선언 없이도 가능하다.
a = 5
def func():
...     print("a의 값은", a, "입니다.")
... func()
a의 값은 5 입니다.

local 변수

  • 함수 내에서 전역 변수와 동일한 이름의 지역 변수를 선언해 줄 때에도 에러는 발생하지 않는다.
  • 그러나 이 경우에는 전역 변수 a에 접근하는 것이 아니라 함수가 호출되어 실행될 때마다 새로운 지역 변수가 만들어지는 것이다.
  • 지역 변수는 그 변수가 속한 함수의 밖에서는 호출될 수 없으며 함수의 실행이 종료되면 모두 삭제된다.
>>> a = 5
>>> def func():
...     a = 3
...     print("local a:", a)
... func()
local a: 3
>>> print("global a:", a)
global a: 5
operationgloballocal
함수 안에서 읽기OO
함수 안에서 수정XO
함수 밖에서 읽기OX
함수 밖에서 수정OX

람다 표현식

  • 사용 방법
lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
print((lambda a, b: a+b)(3, 5))
8
  • lambda() 함수 정리 (람다 표현식에 대하여 심화 예제와 함께 더 자세하게 정리해 두었으니 필요하신 분들은 확인하셔요😎)

이 시리즈가 코딩테스트를 공부하시는데 조금이나마 도움이 되었다면 💚를 눌러주세요😉

0개의 댓글