Python 변수

배추·2025년 11월 9일

🐍 Python

목록 보기
7/19

자료형의 값을 저장하는 공간인 변수에 대해 알아봅니다.


▶︎변수 생성

  • 변수_이름 = 변수에_저장할_값: 변수를 만들 때는 =(assignment) 기호를 사용한다.
  • 다른 프로그래밍 언어인 C나 JAVA에서는 변수를 만들 때 자료형의 타입을 직접 지정해야 하지만, 파이썬은 변수에 저장된 값을 스스로 판단하여 자료형의 타입을 지정한다.
a = 1
b = "python"
c = [1, 2, 3]

▶︎변수 명명 규칙

변수명 규칙

  1. 영문자, 숫자, 언더스코어(_)만 사용할 수 있다.
  2. 숫자로 시작할 수 없다.
  3. 예약어는 사용할 수 없다.
  4. 대소문자를 구분한다.
# 올바른 변수명 예시
name = "홍길동"
age = 25
user_name = "gildong"
userName = "gildong"  # 카멜 케이스
_private = "비공개"
count1 = 10

# 잘못된 변수명 예시
# 1name = "홍길동"      # 숫자로 시작 (오류)
# user-name = "홍길동"  # 하이픈 사용 (오류)
# if = 10             # 예약어 사용 (오류)

파이썬 예약어

  • 파이썬에서는 특별한 의미로 사용되는 예약어들이 있으며, 이를 변수명으로 사용할 수 없다.
False, None, True, and, as, assert, break, class, continue, def, 
del, elif, else, except, finally, for, from, global, if, import, 
in, is, lambda, nonlocal, not, or, pass, raise, return, try, 
while, with, yield

변수명 권장 사항

  • 의미가 명확한 이름을 사용한다.
  • snake_case (단어 사이에 언더스코어)를 권장한다.
  • 너무 짧거나 긴 이름은 피한다.
# 좋은 예
student_name = "김철수"
total_score = 95
user_age = 20

# 피해야 할 예  
a = "김철수"  # 의미 불명확
studentNameFromKorea = "김철수"  # 너무 긴 이름

▶︎변수란?

  • 파이썬에서 사용하는 변수는 객체를 가리키는 것이라고도 말할 수 있다.
a = [1, 2, 3]
id(a) # 4303029896
  • [1, 2, 3] 값을 가지는 리스트 데이터(객체)가 자동으로 메모리에 생성되고 변수 a는 [1, 2, 3] 리스트가 저장된 메모리의 주소를 가리키게 된다.
    • 메모리: 컴퓨터가 프로그램에서 사용하는 데이터를 기억하는 공간.
  • a 변수가 가리키는 메모리의 주소는 id(a)로 확인.
    • id: 변수가 가리키고 있는 객체의 주소 값을 반환하는 파이썬의 내장 함수.

▶︎복사

같은 객체 참조

a = [1, 2, 3]
b = a

id(a) # 4303029896
id(b) # 4303029896

# a와 b가 가리키는 객체가 같을까?
a is b  # True

a[1] = 4
a # [1, 4, 3]
b # [1, 4, 3]
  • b 변수에 a 변수를 대입하면 b는 a와 완전히 동일하다.
  • [1, 2, 3]이라는 리스트 객체를 참조하는 변수가 a 변수 1개에서 b 변수가 추가되어 2개로 늘어났다.
  • 동일한 객체를 참조.
    • is: 동일한 객체를 가리키고 있는지에 대해서 판단하는 파이썬 명령어.
    • 리스트의 두 번째 요소를 값 4로 바꾸었더니 a만 바뀌는 것이 아니라 b도 똑같이 바뀐다.

다른 객체 참조

  • b 변수를 생성할 때 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만드는 방법.

1. [:] 슬라이싱

  • 리스트 전체를 가리키는 [:]을 사용해서 복사.
a = [1, 2, 3]
b = a[:]

a[1] = 4
a # [1, 4, 3]
b # [1, 2, 3]
  • a 리스트 값을 바꾸더라도 b 리스트에는 아무런 영향이 없다.

2. copy 모듈

from copy import copy

a = [1, 2, 3]
b = copy(a)

b is a # False
  • b = copy(a)b = a[:]과 동일하다.
  • b = a.copy(): 리스트 자료형의 자체 함수인 copy 함수를 사용해도 copy 모듈을 사용하는 것과 동일한 결과를 얻을 수 있다.

▶︎변수를 만드는 여러 가지 방법

  • 튜플로 a, b에 값을 대입.
    • 튜플은 괄호를 생략해도 된다.
    a, b = ('python', 'life')
    (a, b) = 'python', 'life'
  • 리스트로 변수를 만들 수도 있다.
    [a, b] = ['python', 'life']
  • 여러 개의 변수에 같은 값을 대입.
    a = b = 'python'
    • 위 방법을 사용하여 두 변수의 값을 매우 간단하게 바꿀 수 있다.

      a = 3
      b = 5
      
      a, b = b, a
      	
      a # 5
      b # 3
profile
난 🥬

0개의 댓글