Python 기초 - 변수와 변수명

Kyung Jae, Cheong·2023년 3월 21일
0
post-thumbnail

데이터, 메모리, 변수

  • 데이터 : 관찰이나 측정을 통해 수집된 데이터
    • 숫자, 문자, 음원, 영상, 이미지 등...
    • 정보 : 데이터를 수집하고 가공한 것
  • 메모리 : 데이터를 저장하는 공간
    • 기본단위 : 1 bit 혹인 1 bite
      • 0 또는 1로 저장되는 메모리의 기본단위
    • 글자(Character)의 기본단위 : 1 byte
      • 일반적으로 1 byte는 8bit로 구성되어있고, 이는 28=2562^8=256개의 정보를 담고 있음
        • TMI : 컴퓨터 개발 초창기에는 4bit, 7bit 등으로 1byte가 구성되기도 했지만, 현재는 8bit로 표준화되어 있기 때문에 1byte는 8bit라 생각하면 됨
      • 1 byte로 숫자, 알파벳, 특수기호가 할당되어 하나의 글자를 표현하게 된다.
      • 참고로 한글이나 한자는 한글자당 2byte를 차지함
    • KB, GB, TB
      • 1KB는 2102^{10}byte=10241024byte를 의미
      • 1GB는 1024KB, 1TB는 1024GB를 의미
  • 변수 : 데이터가 저장되어 있는 메모리 공간
    • Python에서는 할당연산자 =로 변수를 정의할 수 있음
      • 변수명 = 변수값
      • 순서가 중요하므로 순서에 주의하도록 하자!
    • 변수를 할당하게 되면 변수를 통해 데이터를 재사용할 수 있게 됨
      • 이로인해 코드의 효율성을 높이고 자동화된 프로그래밍을 할 수 있게 됨
    • 프로그래밍에서는 변수를 메모리에 할당하고 할당된 메모리를 불러옴으로써 데이터를 이용하게 됨
# 변수를 할당하는 할당연산자 (=)
variable = 'Hello Python'

# 메모리에 할당된 변수를 불러와 코드를 실행
print(variable)

# 실행결과 (output)
'''
'Hello Python'
'''
# 변수에 값을 설정하지 않는다면?
variable

print(variable)

# 실행결과 (output)
'''
NameError: name 'variable' is not defined
'''

추천하는 변수명 설정법

  • 변수명을 지정하는 것은 반드시 지켜야하는 법칙이 존재하지는 않아서 맘대로 설정해도 무방하지만, 일반적으로 오류와 혼동을 줄이기 위해 추천되는 몇가지 방법들이 존재함

1. 변수명은 가능한 영문으로 설정하는 것을 권장

  • 한글을 사용해도 실행에는 크게 문제가 없지만, 한글 변수를 실행하기 위한 별도의 인코딩 과정이 필요한 경우가 간혹 발생할 수 있기 때문에 가능한 영문을 쓰는 것이 권장된다.
# 권장하는 방법
my_name = '홍길동'
print(my_name)
'''
'홍길동'
'''

# 실행은 되지만 권장하지 않는 방법
내이름 = '홍길동'
print(내이름)
'''
'홍길동'
'''

2. 첫번째 문자는 소문자로 설정하는 것을 권장

  • 첫 문자를 대문자로 설정해도 실행에는 큰 문제는 없지만, 대문자는 Class라는 자료구조를 표현할때 주로 사용되기 때문에 Class와 변수를 구분짓기 위해서 첫문자는 소문자로 설정하는 것이 권장된다. (혼동을 줄이기위한 일종의 약속 같은 것)
  • 중간에 대문자가 오는 것은 상관없음
# 권장하는 방법
myName = '홍길동'
print(my_name)
'''
'홍길동'
'''

# 실행은 되지만 권장하지 않는 방법
MyName = '홍길동'
print(MyName)
'''
'홍길동'
'''

3. 데이터의 의미를 파악할 수 있는 명사를 사용할 것을 권장

  • 이또한 큰 문제가 되진 않지만 본인만 알아보기 편하도록 변수명을 설정하는 경우, 코드가 복잡해질 경우 해당 변수가 무엇을 의미하는지 헷갈리는 경우가 발생할 수 있음.
  • 또한 변수명은 명사형을 사용하는 것이 일반적이지만, 필요에 따라선 다양한 품사를 사용해도 무방하긴 함.
  • 이건 어디까지나 권장사항이므로 실행에는 전혀 문제가 되지 않음.
# 권장하는 방법
user_weight = 66
print(user_weight)
'''
66
'''

# 실행은 되지만 권장하지 않는 방법
uw = 66
print(uw)
'''
66
'''

4. 카멜 표기법 혹은 스네이크 표기법을 사용할 것을 권장

  • 변수명이 여러개의 단어로 조합되는 경우 이를 구분 짓지 않으면 코드의 가독성이 상당히 떨어질 수 있으며, 이를 해결하기 위한 표기법은 크게 두가지가 있음
    • 카멜 표기법 : 낙타 모양을 의미하고, 각 단어의 첫문자를 대문자로 구분짓는 방법, 주의할 점은 가장 앞의 첫문자는 소문자로 해줘야한다는 점
    • 스네이크 표기법 : 뱀 모양을 의미하고, 각 단어 사이에 언더바_로 구분짓는 방법, 개인적으로는 스네이크 표기법을 더 추천함
  • 이또한 어디까지나 권장사항이므로 실행에는 전혀 문제가 되지 않음.
# 실행은 되지만 권장하지 않는 방법
customerphonenumber = '010-1234-5678'
print(customerphonenumber)
'''
'010-1234-5678'
'''

# 카멜 표기법
customerPhoneNumber = '010-1234-5678'
print(customerPhoneNumber)
'''
'010-1234-5678'
'''

# 스네이크 표기법
customer_phone_number = '010-1234-5678'
print(customer_phone_number)
'''
'010-1234-5678'
'''

5. 예약어 및 함수명을 변수로 사용하는 것은 금지

  • 이는 상당히 중요한 내용인데, 예약어나 존재하는 함수명을 변수명으로 사용하는 경우엔, 오류가 발생하거나 해당 함수 기능을 사용하지 못하게 되는 경우가 발생하기 때문에 사용하지 않도록 하는 것이 매우 중요함.
    • 예약어 : 파이썬에서 특정 기능을 위해 사용하도록 예약된 단어
  • 코딩을 배워가다 보면 자연스럽게 알게 되거나 웬만해선 경고창이 뜨기 때문에 이를 암기할 필요까진 없음
# 예약어 리스트 확인
import keyword
print(keyword.kwlist)
'''
['False', 'None', 'True', 'and', 'as', 'assert', 
'async', 'await', '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']
'''

6. 특수문자(언더바 제외) 및 공백문자를 사용하는 것은 금지

  • 언더바 _를 제외한 특수문자와 공백문자는 오류를 발생시키기 때문에 변수명에는 포함되지 않도록 주의하도록하자
  • 공백의 경우엔 맨뒤에 오는 것은 문제가 되지 않음
  • 맨앞에 공백문자가 오는 것은 Error가 뜨는 경우가 있고 뜨지 않는 경우가 있긴 하지만, 권장하지는 않는 방법임
# 특수문자 금지
$user_weight = 66
print($user_weight)
'''
    $user_weight = 66
    ^
SyntaxError: invalid syntax
'''

# 맨 앞에 공백 문자 사용 (권장하지 않음)
 user_weight = 66
print(user_weight)
'''
66
'''

# 중간에 공백 문자 사용 금지
user weight = 66
print(user weight)
'''
    user weight = 66
              ^
SyntaxError: invalid syntax
'''

# 맨 뒤에 공백 문자 사용 (아무리 써도 문제 없음)
user_weight  = 66
print(user_weight )
'''
66
'''

7. 맨앞에 숫자를 사용하는 것은 금지

  • 숫자를 중간이나 뒤에 붙이는 것은 자유롭게 써도 문제가 전혀 없지만, 맨앞에 쓰는 경우에는 오류가 발생하므로 숫자를 맨앞에 쓰지 않도록 조심하도록하자
# 맨 앞에 숫자 사용 금지
1user_weight = 66
print(1user_weight)
'''
    1user_weight = 66
               ^
SyntaxError: invalid syntax
'''

# 중간에 숫자 사용 (아무리 써도 문제 없음)
user1weight = 66
print(user1weight)
'''
66
'''

# 맨 뒤에 숫자 사용 (아무리 써도 문제 없음)
user_weight1 = 66
print(user_weight1)
'''
66
'''

마무리

  • 파이썬 프로그래밍에 앞서 변수의 개념과 변수명 설정방법을 살펴보았음
    • 변수 : 데이터가 저장되어 있는 메모리 공간, 할당연산자=로 설정
    • 추천 변수명 설정 방법
        1. 변수명은 가능한 영문으로 설정하는 것을 권장
        1. 첫번째 문자는 소문자로 설정하는 것을 권장
        1. 데이터의 의미를 파악할 수 있는 명사를 사용할 것을 권장
        1. 카멜 표기법 혹은 스네이크 표기법을 사용할 것을 권장
        1. 예약어 및 함수명을 변수로 사용하는 것은 금지
        1. 특수문자(언더바 제외) 및 공백문자를 사용하는 것은 금지
        1. 맨앞에 숫자를 사용하는 것은 금지
  • 다음 글에서는 자료구조 및 자료형에 대해서 다루어보도록 하겠음
profile
Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

0개의 댓글

관련 채용 정보