카테고리 없음

aio3기 오프라인강의 회고 3

doomrender 2026. 9. 21. 18:07

29.
task1 = [1, 4]
task2 = [1, 4]
task3 = task1
일때,


print(task1 == task2)  # True
print(task1 is task2)  # False
print(task3 == task1)  # True
print(task3 is task1)  # True

왜냐면 task1 과 task3는 같은 하나의 객체를 가르키고 있기 때문.
task1 ───→ [1, 4]
task3 ───↗
task2 ───→ [1, 4]

==는 값이 같은가를 물어보는 것이고
is는 같은 객체인가를 물어보는 것이다.



30.
질문:
    def position(self) -> tuple[int, int]: 
        return (0, 0)

여기서 왜 tuple(int,int)가 아니라 tuple[int,int]인지


답:
()는 함수 호출 관련임.
그래서 tuple(int,int)는 인자에 int, int를 넣어서 tuple 라는 함수를 호출하겠다는 의미여서 안됨

왜 하필 []냐고 하면, 이건 Python 문법 설계에서 **"어떤 객체/타입에 구체적인 매개 정보를 붙인다"**는 표현으로 []를 사용하기로 정했기 때문입니다.


31. 컴프리핸션 문법으로 list, set, dict, tupple, generator 형태로 만들고 싶을때 표현법:

[number * number for number in numbers]           # list
tuple(number * number for number in numbers)     #tuple
{number for number in numbers}                   # set
{number: number * number for number in numbers}  # dict
(number * number for number in numbers)          # generator


32. 반복문 for는 ~에 대해, ~마다 의 뜻이어서
for x in y는 y에 있는 x마다(=에 대해) 반복하라 라는 뜻임.

33.
Python에서는

if 조건:
    여기가 if 블록
for x in something:
    여기가 for 블록
def 함수():
    여기가 함수 블록
try:
    여기가 try 블록

처럼 : 다음에 들여쓰기된 코드 묶음을 블록이라고 합니다.



34.try 안에서 return을 만나도 finally는 실행됩니다.
단, finally 안에도 return을 쓰면 원래 return 값을 덮어씀

def test():
    try:
        return 10
    finally:
        return 20

이 경우 결과는 20입니다.
그래서 보통 finally 안에는 return을 넣지 않고, 파일 닫기나 정리 작업 같은 것을 넣습니다.