CodeGym /행동 /Python SELF KO /중요한 보충 내용

중요한 보충 내용

Python SELF KO
레벨 5 , 레슨 6
사용 가능

6.1 변수는 참조다

Python에서 변수는 객체에 대한 참조를 나타내며, 변수 자체는 아니다. 즉, Python에서 변수를 생성하면 메모리의 객체에 대한 참조를 생성하는 것이다.

이 언어의 특징은 특히 함수로 객체를 전달하거나 다른 변수에 할당할 때 변수를 다루는 방법에 중요한 영향을 미친다.

변수를 생성하고 값을 할당할 때, Python은 그 값을 위한 메모리의 객체를 할당하고 그 객체에 대한 참조를 변수에 부여한다. 한 변수를 다른 변수에 할당하면, 새 변수는 원래 변수와 동일한 객체를 참조한다. 이는 객체가 변경 가능한 경우, 한 변수를 통해 이루어진 변경 사항이 다른 변수에서도 반영됨을 의미한다.

예시:


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # 출력: [1, 2, 3, 4]

우리는 4를 변수 b에 추가했지만, 이 숫자는 a 변수에 있는 리스트에도 추가되었어요. 왜냐하면 사실 두 변수 모두 리스트 [1, 2, 3]에 대한 참조일 뿐이에요.

6.2 변경 불가능한 객체

Python에서는 객체가 변경 가능한 객체와 변경 불가능한 객체로 나뉜다. 리스트나 딕셔너리와 같은 변경 가능한 객체는 생성 후에 수정할 수 있다.

문자열이나 숫자와 같은 변경 불가능한 객체는 생성 후 수정할 수 없다. 변경 불가능한 객체를 사용할 때는 변경사항이 새로운 객체를 생성하게 된다.

할당은 결코 객체를 변경하지 않는다:


a = 5  # a는 5 객체에 대한 참조를 저장합니다
b = a  # b도 5 객체에 대한 참조를 저장합니다
b = 3  # 이제 b는 3 객체에 대한 참조를 저장합니다
print(a)  # 출력: 5               

객체는 함수를 호출하여 변경될 수 있다:


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # 출력: [1, 2, 3, 4]                              

하지만 함수가 있는 변경 불가능한 객체도 있어요. 이 함수들은 원본 객체를 변경하지 않고 새로운 결과를 포함하는 새 객체를 반환해요.


name = "Alex"
print(name)  # 출력: Alex
name2 = name.lower() 
print(name2)  # 출력: alex               

문자열은 변경 불가능한 객체야. 그리고 메서드를 가지고 있지만, 이 메서드들은 객체를 절대 변경하지 않아 — 대신 항상 새로운 문자열(새 객체)을 반환하지. 원래 객체는 그대로야.

6.3 None 타입 다루기

Python에는 값의 부재를 나타내는 특별한 데이터 타입인 None이 있어. 주로 빈 변수를 표시하거나 아무 것도 반환하지 않는 함수의 반환값으로 사용되지. None을 이해하는 것은 조건문 컨텍스트와 데이터 처리에서 프로그램 동작을 관리하는 데 중요해.

None 사용의 기본

NoneNoneType 클래스의 유일한 인스턴스야. 이는 변수가 값을 가지지 않는다는 것을 나타내는데 사용되지. 조건문에서는 None False로 평가된다.


a = None
if a:
    print("a is True")
else:
    print("a is None or False")

None과의 비교

변수에 대한 None 비교는 ==가 아닌 is 연산자를 사용해 이루어져야 해. is 연산자는 값의 동일성을 확인하지, 값의 동등성을 확인하지 않아.


a = None
if a is None:
    print("a is None")
else:
    print("a has value")

함수에서의 None

None은 명시적으로 값을 반환하지 않아야 하는 함수에서 자주 사용돼. 만약 함수가 값을 반환하지 않으면, 암시적으로 None을 반환해.


def func():
    print("This function returns None")

result = func()
print(result)  # 출력: None

None과 리스트

None은 리스트, 튜플 또는 다른 컬렉션에서 특정 위치에 요소가 없음을 나타내기 위해 사용될 수 있어.


my_list = [1, None, 3]
print(my_list)  # 출력: [1, None, 3]
1
Опрос
형 변환,  5 уровень,  6 лекция
недоступен
형 변환
형 변환
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION