여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. Python - 변수

Python – 변수

3주전 작성

Python 변수

변수는 데이터를 저장하는 컨테이너다. Python에서 변수를 생성하는 것은 매우 간단하며, 별도의 선언 명령이 필요하지 않다. 변수에 값을 할당하는 순간 변수가 생성된다.

변수 생성하기

Python에서는 변수에 값을 할당하면 자동으로 변수가 생성된다.

기본 변수 생성

x = 5
y = "John"
print(x)
print(y)

위 코드에서 x는 정수 5를, y는 문자열 “John”을 저장한다.

변수는 선언이 필요 없다

다른 프로그래밍 언어와 달리 Python에서는 변수를 사용하기 전에 선언하거나 특정 타입으로 정의할 필요가 없다.

x = 4       # x는 int 타입
x = "Sally" # x는 이제 str 타입
print(x)

형 변환 (Casting)

변수의 데이터 타입을 지정하고 싶다면 형 변환(casting)을 사용할 수 있다.

x = str(3)    # x는 '3'
y = int(3) # y는 3
z = float(3) # z는 3.0
print(x)
print(y)
print(z)

형 변환 예제

# 문자열을 숫자로 변환
age_str = "25"
age_int = int(age_str)
print(f"나이: {age_int}")
# 숫자를 문자열로 변환
score = 95
score_str = str(score)
print(f"점수: {score_str}")
# 실수를 정수로 변환
pi = 3.14159
pi_int = int(pi)
print(f"정수로 변환된 파이: {pi_int}")

변수 타입 확인하기

type() 함수를 사용하여 변수의 데이터 타입을 확인할 수 있다.

x = 5
y = "John"
print(type(x))
print(type(y))

실행 결과는 다음과 같다.


다양한 데이터 타입 확인

a = 10          # 정수
b = 3.14 # 실수
c = "Hello" # 문자열
d = True # 불린
e = [1, 2, 3] # 리스트
f = {"name": "John"} # 딕셔너리
print(f"a의 타입: {type(a)}")
print(f"b의 타입: {type(b)}")
print(f"c의 타입: {type(c)}")
print(f"d의 타입: {type(d)}")
print(f"e의 타입: {type(e)}")
print(f"f의 타입: {type(f)}")

문자열 변수

문자열 변수는 작은따옴표나 큰따옴표로 둘러싸인 문자들의 집합이다.

문자열 변수 생성

[code lang="python"]x = "John"
# 위와 동일함
x = 'John'
print(x)

여러 줄 문자열

삼중 따옴표를 사용하여 여러 줄 문자열을 변수에 할당할 수 있다.

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

문자열은 배열

Python에서 문자열은 문자의 배열처럼 취급되므로 인덱스를 사용하여 개별 문자에 접근할 수 있다.

a = "Hello, World!"
print(a[1]) # 'e' 출력
print(a[0]) # 'H' 출력
print(a[-1]) # '!' 출력 (뒤에서 첫 번째)
# 문자열 슬라이싱
print(a[2:5]) # 'llo' 출력
print(a[:5]) # 'Hello' 출력
print(a[7:]) # 'World!' 출력

변수명 규칙

Python에서 변수명을 정할 때 따라야 하는 규칙들이 있다.

변수명 규칙

  • 변수명은 문자나 언더스코어(_)로 시작해야 한다
  • 숫자로 시작할 수 없다
  • 영문자, 숫자, 언더스코어만 포함할 수 있다 (A-z, 0-9, _)
  • 대소문자를 구분한다
  • Python 예약어는 사용할 수 없다

올바른 변수명 예제

myvar = "John"
my_var = "John"
_my_var = "John"
myVar = "John"
MYVAR = "John"
myvar2 = "John"

잘못된 변수명 예제

2myvar = "John"    # 숫자로 시작
my-var = "John" # 하이픈 사용
my var = "John" # 공백 사용

대소문자 구분

Python은 대소문자를 구분하므로 다음 변수들은 모두 다른 변수다.

a = 4
A = "Sally"
print(a) # 4 출력
print(A) # Sally 출력

여러 변수에 값 할당하기

Python에서는 한 번에 여러 변수에 값을 할당하는 다양한 방법을 제공한다.

여러 변수에 같은 값 할당

x = y = z = "Orange"
print(x)
print(y)
print(z)

여러 변수에 다른 값 할당

x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)

리스트에서 값 추출하여 할당

리스트나 튜플의 값들을 여러 변수에 한 번에 할당할 수 있다. 이를 언패킹(unpacking)이라고 한다.

fruits = ["apple", "banana", "cherry"]
x, y, z = fruits
print(x)
print(y)
print(z)

출력 변수

Python의 print() 함수는 변수를 출력하는 데 사용된다.

기본 출력

x = "Python is awesome"
print(x)

여러 변수 출력

print() 함수에서 여러 변수를 출력할 때는 쉼표로 구분한다.

x = "Python"
y = "is"
z = "awesome"
print(x, y, z)

+ 연산자로 출력

+ 연산자를 사용하여 변수를 연결할 수도 있다.

x = "Python "
y = "is "
z = "awesome"
print(x + y + z)

숫자의 경우 + 연산자는 수학적 연산자로 작동한다.

x = 5
y = 10
print(x + y)

서로 다른 타입 결합

문자열과 숫자를 + 연산자로 결합하려고 하면 오류가 발생한다.

x = 5
y = "John"
print(x + y) # 오류 발생

이런 경우 쉼표를 사용하거나 형 변환을 해야 한다.

x = 5
y = "John"
print(x, y) # 쉼표 사용
print(str(x) + y) # 형 변환 사용

전역 변수

함수 외부에서 생성된 변수는 전역 변수로, 함수 내부와 외부 모든 곳에서 사용할 수 있다.

전역 변수 예제

x = "awesome"  # 전역 변수
def myfunc():
print("Python is " + x)
myfunc()

함수 내부에서 같은 이름의 변수 생성

함수 내부에서 전역 변수와 같은 이름의 변수를 만들면, 해당 변수는 지역 변수가 되어 함수 내부에서만 사용된다.

x = "awesome"  # 전역 변수
def myfunc():
x = "fantastic" # 지역 변수
print("Python is " + x)
myfunc()
print("Python is " + x) # 전역 변수 출력

global 키워드

함수 내부에서 전역 변수를 생성하거나 수정하려면 global 키워드를 사용한다.

def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)

또한 global 키워드를 사용하여 함수 내부에서 전역 변수를 수정할 수 있다.

x = "awesome"  # 전역 변수
def myfunc():
global x
x = "fantastic" # 전역 변수 수정
myfunc()
print("Python is " + x)

변수 활용 예제

실제 프로그램에서 변수를 활용하는 다양한 예제를 살펴보자.

사용자 정보 관리

# 사용자 정보를 변수에 저장
name = "홍길동"
age = 25
email = "hong@example.com"
is_student = True
# 정보 출력
print(f"이름: {name}")
print(f"나이: {age}")
print(f"이메일: {email}")
print(f"학생 여부: {is_student}")
# 나이 계산
birth_year = 2024 - age
print(f"출생년도: {birth_year}")

계산기 프로그램

[code lang="python"]# 계산할 숫자들
num1 = 10
num2 = 3
# 다양한 연산 수행
addition = num1 + num2
subtraction = num1 - num2
multiplication = num1 * num2
division = num1 / num2
# 결과 출력
print(f"{num1} + {num2} = {addition}")
print(f"{num1} - {num2} = {subtraction}")
print(f"{num1} * {num2} = {multiplication}")
print(f"{num1} / {num2} = {division:.2f}")

변수를 이용한 문자열 포맷팅

# 개인 정보
first_name = "길동"
last_name = "홍"
age = 30
city = "서울"
# 다양한 포맷팅 방법
full_name = first_name + " " + last_name
print("이름:", full_name)
# f-string 사용 (Python 3.6+)
message = f"안녕하세요! 저는 {full_name}이고, {age}세입니다. {city}에 살고 있습니다."
print(message)
# format() 메서드 사용
template = "이름: {}, 나이: {}, 거주지: {}"
info = template.format(full_name, age, city)
print(info)

변수 스코프와 생명주기

변수의 스코프(범위)와 생명주기를 이해하는 것은 중요하다.

지역 변수와 전역 변수

# 전역 변수
global_var = "전역 변수"
def my_function():
# 지역 변수
local_var = "지역 변수"
print(f"함수 내부 - 전역 변수: {global_var}")
print(f"함수 내부 - 지역 변수: {local_var}")
my_function()
print(f"함수 외부 - 전역 변수: {global_var}")
# print(local_var) # 오류 발생: 지역 변수는 함수 외부에서 접근 불가

변수 섀도잉

지역 변수가 전역 변수와 같은 이름을 가질 때 발생하는 현상이다.

x = "전역"
def test_function():
x = "지역" # 전역 변수를 가림
print(f"함수 내부: {x}")
test_function()
print(f"함수 외부: {x}")

💡 변수 사용 모범 사례:
• 의미 있는 변수명을 사용하자 (x보다는 user_name)
• 변수명은 소문자와 언더스코어를 사용하자 (snake_case)
• 상수는 대문자로 작성하자 (MAX_SIZE = 100)
• 전역 변수 사용을 최소화하자
• 변수의 스코프를 명확히 이해하고 사용하자

변수 명명 규칙 권장사항

좋은 변수명을 만들기 위한 권장사항들이다.

좋은 변수명 예제

# 의미가 명확한 변수명
user_name = "홍길동"
total_price = 15000
is_logged_in = True
max_retry_count = 3
# 상수는 대문자로
PI = 3.14159
MAX_FILE_SIZE = 1024 * 1024 # 1MB
DEFAULT_TIMEOUT = 30

피해야 할 변수명

# 의미가 불분명한 변수명
a = "홍길동" # 무엇을 나타내는지 불분명
temp = 15000 # 임시? 온도?
flag = True # 어떤 플래그?
# 예약어와 유사한 이름
list_ = [1, 2, 3] # list는 내장 함수명
str_ = "hello" # str은 내장 타입명

Python에서 변수는 프로그램의 핵심 구성 요소다. 적절한 변수 사용과 명명 규칙을 따르면 읽기 쉽고 유지보수하기 좋은 코드를 작성할 수 있다.

참고
Mingg`s Diary
밍구
공부 목적 블로그