본문 바로가기
자료분석 및 코딩/파이썬

[파이썬] 3-1. 기본문법 - 변수 만들기 & 변수 저장 & 데이터형식

by 아다콘다 2023. 3. 24.

 개발, 코딩, 프로그래밍은 매우 어렵게 느껴지지만, 내가 이해한바로 쉽게 표현해보면 일련의 '변수로 저장'하는 일의 반복이다. 이런 저런 숫자, 문자, 그림 등의 데이터를 변수로 저장해서 연산을 하거나 출력을 하거나 등의 과정이라고 보면 된다. 따라서, 대부분의 명령은 'A = B' 와 같이 뭐는 뭐다 라는 식의 형태가 된다. 여기서 A가 바로 내가 저장한 변수가 되고, A안에는 B라는 내용이 들어가는 것이다. 자료분석 및 코딩은 이러한 변수를 저장하고 각 변수를 연산하여 결과를 내는 과정이다. 따라서, 오늘은 파이썬의 가장 기본 문법이 되는 변수를 저장하는 규칙에 대해 설명해보겠다.

 

1. 변수 만들기 : '변수 = 데이터'

 할당연산자인 '=' 를 기준으로  좌측의 '변수'에  우측의 '데이터' 를 저장하는 것이다. 예를 들어 a = 20 이라고 입력하면 a에 20이라는 숫자가 저장되는 것이다. 이런식으로 여러 변수를 생성 또는 입력하여 연산을 할 수 있다. 

파이썬 - 스파이더 변수 저장
파이썬 - 스파이더 변수 저장

 변수를 만들때는 몇가지 규칙이 있는데, 대략 정리를 해보면 아래와 같다.

  • 특수문자나 공백 X (@ # % ^ & * ( ) - 등)
  • 숫자로 시작 X

 변수를 만들때는 나중에 활용하기 용이하도록 언더바 '_' 를 잘 이용하는 것이 좋다. 같은 계열, 유형끼리 동일한 약자로 시작하고 언더바 뒤에 세부변수명을 넣어 만드는 편이 좋다. 예를 들어 a, b, c라는 변수를 읽어서 연산 후에 저장한다면 input정보들은 i_a, i_b, i_c / 결과 변수들은 r_a, r_b, r_c와 같이 분류해야 확인하기도 편하다.

 또한, 보통 스크립트를 작성하거나 변수를 만들때 예제 또는 인터넷검색결과를 그대로 붙여넣는 경우도 있는데, 이럴 때 이전에 만들어놓은 변수명과 중복되도록 입력하는 경우가 있는데, 이전 변수 데이터에 새 데이터를 그대로 덮어써버리니, 변수명이 중복되지 않도록 주의해야한다.

2. 변수(데이터) 형식

변수를 저장할 때, 꽤나 신경써야 할 부분이다. 데이터 형식이 다르면 펑션이나 연산이 안먹힐 때가 많다. 일단, 데이터를 크게 분류해보면 숫자, 문자, Bool, 리스트, 튜플, 딕셔너리 등으로 나눌 수 있다.

2.1 숫자

말 그대로 숫자다. 보통 정수형(integer)과 실수형(float)으로 크게 나눌 수 있는데 말그대로 정수는 소수점 없는 숫자, 실수는 소수점 있는 숫자이다. 정수는 int, 실수는 float 함수로 변환하면 된다. 나중에 데이터를 읽고 쓸때, 숫자의 형식을 지정할 때가 있는데 정수형태는 %d (double), 실수형태는 %f (float) 로 지정하면 된다. 아래 그림처럼 30.8546이란 숫자로 변수를 만들때 int(정수형)는 30, float(실수형)는 30.86546으로 저장되는 것을 확인할 수 있다.

파이썬 - 스파이더 숫자 변수 저장
파이썬 - 스파이더 숫자 변수 저장

2.2 문자열

컴퓨터 언어를 처음 사용할 때 가장 혼돈되는 부분이기도 한데, 컴퓨터 언어에서는 숫자와 문자를 구분해줘야 한다. 숫자와 문자를 동일한 방식으로 펑션을 입력하거나 명령을 하면 오류가 발생하는데 이는 다른 개발 프로그램에서도 모두 동일할 것이다. 컴퓨터는 연산기기이므로 당연히 숫자가 디폴트다. 예를 들어, 1219라고 입력한다면 이는 숫자로 입력된다. 문자열로 입력을 할 때는 따옴표나(') 쌍따옴표(")로 이 명령이 문자라는 것을 표시해줘야한다. '1219'라고 입력하면 문자'1219', 1219라고 입력한다면 숫자 1219인 천이백십구로 입력이 된다. 당연히 어떤 값이나 연산이 필요한 데이터는 숫자로 입력해야하며, 이름 또는 텍스트일때는 문자열로 입력해줘야한다. 문자열의 연산은 숫자열과 다르게 받아들이는데 아래 예시처럼 숫자 1219와 100을 더하면 숫자 1319가 되지만 문자인 1219와 100을 더하면 1219100의 문자열이 된다. 

파이썬 - 스파이더 문자열 변수 저장
파이썬 - 스파이더 문자열 변수 저장

2.3 Bool

 불은 참과 거짓, True와 False 두가지 형태의 값을 가지는 데이터이다. 쉽게 말하면 이 데이터, 이 값, 이 로직이 맞는지, 틀린지를 표현하는 데이터형태인데, 초보자에게는 이해하기 난해하지만 꽤나 자주쓰는 형태이므로 알아둬야 한다. 특히 if문이나 for문 등 반복문을 통해 연산을 할 때, 어떤 값이 조건에 맞는지, 아닌지, 값이 있는지 없는지 등 조건에 따른 연산을 할 때, 이 True 또는 False 형태의 데이터를 많이 사용한다.

 예를 들어 어떤 연산의 결과물인 A가 없으면 a라는 명령을 수행하고, 이미 결과물인 A가 있으면 b라는 연산을 하는 로직을 짠다고 가정할 때, A의 유무(true/false)를 조건문으로 걸어서 연산을 해야한다. 

case = os.path.isfile('A')
if case == True:
	a 연산
else
	b 연산

 

2.4 리스트(list)와 튜플(tuple)

 먼저, 리스트는 숫자열과 문자열을 모두 저장할 수 있는 말 그대로 list 형태의 데이터이다. 숫자형 행렬에는 숫자만 입력될 수 있지만 리스트는 숫자와 문자 모두 행렬 데이터로 저장할 수 있다. 아래 그림과 같이 숫자행렬인 type_num과 리스트인 type_list를 만든 후 숫자행렬에 문자를 입력했을때는 오류가 발생하지만, 리스트에서는 문자, 숫자 모두 입력 가능한 것을 확인할 수 있다. 또한, 리스트는 각 열 데이터마다의 길이를 신경쓰지 않아도 된다. 보통 str 행렬은 각 열마다의 텍스트 길이를 맞춰야하지만 리스트행렬은 자유롭게 입력 및 저장이 가능하다. 

파이썬 - 스파이더 리스트형 변수 저장
파이썬 - 스파이더 리스트형 변수 저장

또한 리스트는 .append(뒤에 추가) .insert(특정열에 추가) .extend(뒤에 병합) 등 자유로운 가공이 가능하다.

파이썬 - 스파이더 리스트형 변수 extend
파이썬 - 스파이더 리스트형 변수 extend

리스트 데이터의 주요 메소드는 아래와 같으며 위의 예시처럼 '리스트데이터.메소드()' 와 같이 사용하면된다.

  • .append() : 리스트 끝에 요소 추가
  • .insert() : 특정 위치에 요소 추가
  • .extend() : 뒤에 다른 리스트 병합
  • .index() : 특정 값의 위치를 출력(중복 시 앞 데이터 출력)
  • .pop() : 특정 위치 요소 삭제
  • .remove() : 특정 값의 요소 삭제
  • .clear() : 모든 요소 삭제 
  • .count() : 특정 값의 요소 갯수 출력
  • .sort() : 정렬

 또 다른 데이터 형태인 튜플은 리스트와 매우 유사한 형태이다. 굳이 차이가 있다면 리스트는 []를 사용하지만 튜플은 ()를 사용하고, 변수 내의 데이터를 변경할 수 없다. 또한 연산속도가 리스트보다 조금 빠르다. 그 외에는 리스트처럼 활용하면 된다. 그 외에 딕셔너리 데이터 형태도 있는데 '단어'와 '뜻' 처럼 '키'와 '값'의 형태를 가진 형식이다. 테이블 형태의 다양한 정보를 처리할 때 유용하지만 나는 그리 자주 활용하지 않기에 자세한 설명은 추후 사용할 일이 있을 때 적어보도록 하겠다.

반응형