파이썬 Remind (Variables)

황정성·2026년 4월 16일

파이썬의 변수..
이미 알고 있는 내용이라 넘어갈까 고민중..

변수

  • 가장 기초적인 프로그래밍 문법 개념
  • 데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름

간단한 계산이다

컴퓨터에서 연산을 한 과정은

  1. professor = "JeongseongHwang"
  2. professor는 JeongseongHwang 이다
  3. professor는 JeongseongHwang는 같다
  4. professor에 JeongseongHwang를 넣어라

정확히는 L value와 R value를 알아야 하긴 하는데 기초니까..

프로그래밍에서 변수는 값을 저장하는 장소
변수는 메모리 주소를 가지고 있고 변수에 들어가는 메모리 주소에 할당됨

컴퓨터는 기본적으로 폰 노이만 아키텍처를 가지고 있다
폰 노이만 아키텍처에서는 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행할 경우 그 정보를 먼저 메모리에 저장시키고 CPU가 순차적으로 그 정보를 해석하고 계산하여 사용자에게 결과값전달

  • 변수 - 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간
  • 선언 되는 순간 메모리 특정영역에 물리적인 공간이 할당됨
  • 변수에는 값이 할당되고 해당 값은 메모리에 저장됨
  • A = 8 의 의미는 "A는 8이다"가 아닌 A라는 이름을 가진 메모리 주소에 8을 저장하라 임

변수 이름 작명법

  • 알파벳, 숫자, 언더스코어로 선언 가능
  • 변수명은 의미 있는 단어로 표기하는 것이 좋다
  • 변수명은 대소문자가 구분된다.
  • 특별한 의미가 있는 예약어는 쓰지 않는다.

Basic Operation

  • 복잡한 프로그램을 작성하기 앞서 간단한 사칙연산과 문자열 처리 등의 기초적인 연산을 알아야 함
  • 이를 위해 아래 내용을 습득
    1) 기본 자료형 (primitive data type)
    2) 연산자와 피연산자
    3) 데이터 형변환

기본 자료형 (primitive data types)


이건 Integer로 선언된 변수다

해당변수의 타입을 알아 보려면

type(a)


이렇게 나온다

연산자(Operator)와 피연산자(Operand)

  • +, -, *, / 같은 기호들을 연산자라고 칭함
    -연산자에 의해 계산이 되는 숫자들은 피연산자라 칭함
  • 수식에서 연산자의 역할은 수학에서 연산자와 동일
  • 연산의 순서는 수학에서 연산 순서와 같음
  • 문자간에도 + 연산이 가능함 -> concatenate
    파이썬에서는 증감연산자로 ++, --가 안된다

캐스트 연산자도 가능하다

형변환이 되었다.
하지만, 이것은 반환만 하는 캐스트 연산자(함수)이므로 실제 a의 데이터 타입은 int이다

형변환 상태로 넣고싶으면 그냥 대입 하자

실수형에서 정수형으로 형변환을 하면 소숫점 아래 자리는 다 버린다고 생각하자 (내림)

List 또는 Array

  • 시퀀스 자료형, 여러 데이터들의 집합
  • int, float 같은 다양한 데이터 타입 포함

list 특징

  • 인덱싱

  • 슬라이싱

  • 리스트 연산

  • 추가 삭제

  • 메모리 저장 방식

  • 패킹과 언패킹

  • 이차원 리스트

  • list에 있는 값들은 주소(offset)을 가짐
    -> 주소를 사용해 할단돈 값을 호출

  • list의 값들을 잘라서 쓰는 것이 슬라이싱

  • list의 주소 값을 기반으로 부분 값을 반환

cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']


print(cities[0:6], " AND ", a[-9:1])  # a 변수의 0부터 5까지, -9부터 끝까지
print(cities[:])                     # a 변수의 처음부터 끝까지
print(cities[-50:50])               # 범위를 넘어갈 경우 자동으로 최대 범위를 지정
print(cities[::2], " AND ", a[::-1]) # 2칸 단위로, 역으로 슬라이싱
  • concatenation, is_in, 연산 함수들
color = ['red', 'blue', 'green']
color2 = ['orange', 'black', 'white']

print(color + color2) # 두 리스트 합치기
len(color) # 리스트 길이
color[0] = 'yellow' # 0번째 리스트의 값을 변경
print(color * 2) # color 리스트 2회 반복
'blue' in color2 # 문자열 'blue'가 color2 존재 여부 반환
total_color = color + color2

color.append("white")
를 하게 되면 해당 리스트에 "white"가 추가되고,
color.extend(["black", "puple"])
는 배열을 추가한다.

Python 리스트만의 특징

다양한 Data Type이 하나에 List에 들어감

a = ["color", 1, 0.2]
color = ['yellow', 'blue', 'green', 'black', 'purple']

a[0] = color # 리스트 안에 리스트도 입력 가능
print(a)
[['yellow', 'blue', 'green', 'black', 'purple'], 1, 0.2]
a =[1, 2, 3, 4, 5]
b = [2, 3, 4, 5, 6]
b = a;

이렇게 하면 b는 a와 같은 메모리 주소를 갖게 된다.
그래서 a를 변화시키면 b도 같이 변화 되고 b를 변화 시키면 a도 변화 시킨다
이게 내키지 않으면

[['yellow', 'blue', 'green', 'black', 'purple'], 1, 0.2]
a =[1, 2, 3, 4, 5]
b = [2, 3, 4, 5, 6]
b = a[:];

이렇게 하면 a안에 값들이 복사가 된다

이차원 리스트

  • 리스트 안에 리스트를 만들어 행렬(Matrix) 생성
kor_score = [49, 79, 20, 100, 80]
math_score = [43, 59, 85, 30, 90]
eng_score = [49, 79, 48, 60, 100]

midterm_score = [kor_score, math_score, eng_score]

print(midterm_score[0][2])

midterm_copy = midterm_score[:]

이렇게 복사를 하여도 one demention은 복사가 되지만 two demention은 복사가 안된고 주소를 같이 공유하게 된다

모든 차원을 카피 하고 싶으면

import copy
kor_score = [49, 79, 20, 100, 80]
math_score = [43, 59, 85, 30, 90]
eng_score = [49, 79, 48, 60, 100]

midterm_score = [kor_score, math_score, eng_score]

print(midterm_score[0][2])

midterm_copy = copy.deepcopy(midterm_score)

이렇게 라이브러리 호출과 함께 해당 함수를 쓰면 된다

0개의 댓글