Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL][240716] 파이썬 문법 빈틈을 메꾸자! 본문

WHAT I LEARN/TIL

[TIL][240716] 파이썬 문법 빈틈을 메꾸자!

노네임드개발자 2024. 7. 16. 20:30
어떤 문제가 있었나?

요즘 스쿼드 세션에서 파이썬 문법을 배우고 있다. 이미 배웠다고 대충 들을 내용이 아니었다. 그동안 내 파이썬 학습은 빈틈 투성이였다. 세션 중 나오는 퀴즈의 절반은 틀렸거나 답을 내놓지 못하였다. 이번 세션에서 많은 빈틈을 발견했고 복습을 통해서 채워야겠다고 생각했다. 


무엇을 시도했나?

세션 내용을 필기한 후에 복습을 했다. 대부분 '알고 있다'고 생각한 문법이지만, 역시나 '재대로' 알지 못한다면 모르는 것이었다. 

 


어떻게 해결됐는가?

조금이나마 재대로 이해하기 위해 복습한 내용을 TIL에 기록하고 궁금한 부분은 튜터님께 질문하여 채울 예정이다.


새로 알게 된 점은 무엇인가?

이런게 있구나~ 하고 넘어간 다음 한번도 쓰지 않은 문법들을 정리해보자

 

삼항연산자: 꼭 필요한 연산자는 아니지만 if else로 해결할 수 있는 연산을 한 줄로 간결하게 작성할 수 있다.

value = true_value + if + condition + else + false_value
ex) value = num if num >= 0 else -num ➡️ 절대값(abs)를 나타내는 조건

 

반복문

- while: 조건에 따라 반복할 때 사용

- for: 반복 횟수를 알 때 사용

        순회 가능한 객체(iterable)의 요소를 모수 순회

         ㄴ list, sort, range, string, tuple...etc

- 딕셔너리: key, value 따로 따로 반복할 수 있으며 둘 다 하고 싶다면 .item()을 이용

- List comprehension(이라 쓰고 독극물이라 읽는다): 한 줄로 조건문을 작성(읽을 줄만 알면 됨)

- dict comprehension(상동)

- break 반복문 종료 ↔️ return 함수 종료

- contiue: 다음 반복으로 넘어간다(다시 while로 올라가서 새로운 반복 시작)

- pass: 아무것도 하지 않음(보통 if문을 쓰려는데 빈자리를 채울 때 사용)

- for-else: 끝까지 반복을 하고 else를 실행(알고만 있자)

 

함수

- docstring: """ 에 둘러싸혀진 문자열. 함수, 클래스, 모듈의 목적과 이를 이용할 때 필요한 세부 정보를 입력

def func_name():
'''
docstring
'''
# code block

- return

인풋/아웃풋이 없는 함수는 있다! 두둥!

def func_name():
	print('헤헤')
    # return 100 return이 나온다면 리턴값 100 출력
    
rlt = func_name()
print(rlt)

"""
헤헤
None < return이 없을 땐 retuen할 값이 없으므로 None 출력
"""

  def func_name()에서 받아와서 rlt로 보내고 print 순으로 식이 진행

- 파이썬은 2개 이상 값을 반환 받기 위해서는 튜플을 이용

a = 1, 2
print(a)
# (1, 2)

- 파라미터(parameter)

  positinal arguments: 내 위치에 해당하는 파라미터(키워드를 지정하지 않으면 자동 positional)

  keyword arguments: 키워드를 지정하는 파라미터(ex. b=20, a=10)

 

파이썬의 범위(scope)

- global scope: 코드 전체에서 사용 가능

- local scope: 함수 내부에서 참조 가능

- global variable: global scope 안에 정의된 변수

- local variable: local scope 안에 정의된 변수

- 파이썬에서 사용되는 이름(식별자)은 이름 공간에 저장

- 이름 검색 규칙(LEGB rule)

  • Local scope: 지역 범위
  • Enclosed scope: 지역에서 한단계 위 범위
  • Global scope: 최상단 범위
  • Built-in scope: 모든 것을 담고 있는 범위(정의하지 않고 사용할 수 있는 모든 것) (ex. print())

- 파이썬의 범위(scope)를 이해하기 위한 예제

# scope 이해
a = 0
b = 1

# Enclosed---------- Enclosed scope에 a=10, c=3가 있다.
def enclosed():
    a = 10
    c = 3
  # local-------------- local scope에 a, b가 없다. Enclosed scope에 a=10가 있으므로 가져오고
  #                     Enclosed에 b가 없으므로 Global scope에서 b=1를 가져온다.
    def local(c):
        print(a, b, c)  # 10 1 300 출력
  # local-------------- c의 값을 local(300)으로 가져올 수 있다.

    local(300)
    print(a, b, c) # 10 1 3 출력
# Enclosed---------- Enclosed scope에 b가 없으므로 Global scope에서 b=1을 가져온다.


enclosed()
print(a, b) # Global scope에 a=0, b=1이 있으므로 0 1 출력
"""
10 1 100
10 1 3
0 1
"""

무엇을 느꼈고 내일은 무엇을 할까?

하나도 모르는 상태에서 파이썬 조금 배웠다고 오만에 빠지지 않았나 생각이 들었다. 스쿼드 세션에서 알고리즘으로 빨리 넘어갔으면 하는 마음이 반이었지만 문법 세션을 듣지 않았으면 후회할 뻔 했다. 말 그대로 빈틈 투성이인 파이썬 지식에 틈을 메꾸는 좋은 시간이었다.