파이썬 기초1

매생이·2021년 10월 7일
0

파이썬 공부

목록 보기
1/8

변수

변수와 데이터는 엄연히 다른 개념입니다.
연관이 있지만 데이터는 값, 변수는 값을 담는 공간.
음식과 접시로 생각하면 좋습니다.

하지만 진짜 음식과 접시랑은 다른 점은 치킨이라는 이름의 접시에 치킨을 넣어놨다가 피자라는 접시에 내용물을 옮기면 그 내용물의 이름은 피자가 된다.

다른 예시를 들자면

"A의 나이" 라는 상자에 15라는 숫자를 넣어두고 "B의 나이" 라는 상자에 24라는 숫자를 넣어놨었는데 그 둘의 내용물이 바뀌면 A의 나이는 24가 되는 것이랑 같습니다.

이게 말이 되나 싶겠지만 컴퓨터는 이렇게 인식하기 때문에 이게 변수를 조심히 다뤄야하는 이유가 됩니다.

데이터를 조심히 다뤄야하는 이유, 데이터의 오염이 쉬운 이유중 하나입니다. 그렇기 때문에 Python 이나 R 을 사용해 데이터를 다룰때는 실수의 가능성 때문에 원본 데이터를 새로운 변수에 옮겨서 작업하는게 좋습니다.

이렇게 변수에 담은 데이터는 메모리에 저장됩니다.
메모리는 많은 데이터를 담고있는 저장소입니다. 변수는 집, 메모리는 아파트라고 생각해도 이해하는데에 좋습니다. 주인이 오랫동안 살지않은 집은 다른 주인이 들어와서 살듯이 사용되지않는 저장공간은 새 변수로 대체되어 저장되거나 하는 방식으로 교체됩니다.

우리가 입력하거나 불러온 데이터를 변수에 저장하고, 이름과 내용은 메모리에 저장되어 우리가 변수를 사용할 시 메모리에서 변수의 이름으로 위치를 찾고 해당 위치의 데이터를 꺼내와 사용하는 방식입니다.

변수명 선언

변수명을 선언하는 방식은 여러가지가 있습니다.
사실 선언 방식은 자유이고 회사같은 집단에서 선호하는 규칙이나, 담고있는 데이터를 간단히 식별할 수 있도록 명명하는 것이 가장 좋습니다.

그 중에서 하면 안되는 방식만 알고있으면 크게 문제될 일은 없습니다.
1. 숫자로 시작하는 이름
2. 기존에 이미 사용되고있는 이름
3. 특수기호가 들어가는 이름(_제외)

2번같은 경우는 예약어라는 사용언어에서 특정하게 사용되는 이름을 말합니다.


형변환

데이터 형변환이란, 데이터의 형태, 자료형이 바뀌는 것을 말합니다. 자료형은 정수형, 실수형, 문자형, 논리형이 있는데 각 자료형마다 데이터의 크기다 다르고, 이러한 자료형태가 바뀌는 것을 이야기합니다.

그럼 왜 형변환이 필요한가?
숫자가 문자형으로 저장되어있는 경우 연산을 하고 싶을때 정수형, 실수형으로 형변환을 하기 위해서 사용되는 경우도 있고, 출력문에 사용시 필요한 경우도 있습니다.

a = "Hello "
b = "I am "
c = 16
d = " years old"
print(a+b+c+d)

오류 결과 :

위 경우는 오류가 납니다. c가 정수형 변수이기 때문에 변수형이 다른 변수간의 연산으로 인한 오류가 생깁니다. 이러한 경우 형변환을 해주어서 해결할 수 있습니다.

a = "Hello "
b = "I am "
c = 16
d = " years old"
print(a+b+str(c)+d)

출력 결과 :

위에서 사용한 함수인 str() 함수가 바로 형변환을 해주느 함수입니다. 정수형, 실수형, 논리형을 문자형으로 바꾸어주는 함수이고, 정수형은 int() , 실수형은 float(), bool() 로 형변환을 해줄 수 있다.
대신, bool(논리형)은 0또는 1뿐이기 때문에 문자형 변수를 변환할때 ""빈 문자열일 경우 0으로, 그 외에는 1로 변환됩니다.("False"라는 문자열이 들어있는 변수도 1로 변환)


format함수

파이썬의 format함수는 변수를 출력문에 사용할 때 유용하게 쓸 수 있는 함수입니다.

간단한 예시를 보여드리자면
파이썬에서 출력문을 작성하다가 사이사이에 변수에 저장된 숫자를 섞어서 출력하려고하면

age_of_A = 10
print("A의 나이는",age_of_A,"입니다")

이러한 형식으로 출력해야합니다.
이는 간단한 예시이고 많약 중간에 넣어야하는 변수가 많으면 많을수록 이 작업은 불편해집니다.
게다가 여러줄을 써야할 경우도 있습니다.
그럴때 사용하는게 format함수입니다.

print("A의 나이는 {} 입니다".format(a))
# ,(comma)가 아니고 .(period)입니다

출력결과 :

이렇게 {}를 사용하여 뒤에오는 .format()함수로 {}의 위치에 변수 값을 넣어줄 수 있습니다.

물론 여러개의 변수 값을 사용할 수도 있습니다.

a = 10
b= 11
c= 12
print("A의 나이는 {} 입니다 내년에는 {} 내후년에는 {} 입니다".format(a,b,c))

출력결과 :

이렇게 여러개의 경우도 가능하고 인덱스를 주어 여러번 출력시킬수도 있습니다.

a = 123
b= 321
print("123은 {0} 입니다 거꾸로하면 {1} 다시 뒤집으면 {0} 입니다".format(a,b))

출력결과 :

이런식으로 한 출력문에서 여러번 사용이 가능하며 순서도 마음대로 지정할 수 있습니다.


형식문자

format함수 외에도 출력문에서 변수 이름들을 앞에서 대체하여쓰고 출력문 뒤에 명시해주어서 사용하는 방식이 있습니다.
형식문자를 사용한 방법인데, 형식문자는 자료형별로 다른 문자를 사용합니다.

a = 3
b = "hello"
c = 3.14
print("1 + 2 = %d , 안녕은 영어로 %s, PI는 %f" %(a,b,c))

실행결과 :

만약 실수인 3.14를 %d로 표현한다면 정수로 형변환이 되어 3만 출력되고, %s로 출력한다면 "3.14"가 출력됩니다.

여기서 d,f,s는 decimal, float, string을 의미합니다.
저렇게 %f만 주면 3.140000으로 소수점 6번째 자리까지가 default값이고, n번째 자리까지만 출력하고 싶으면 %.nf를 사용하여 정해줄 수 있습니다.

0개의 댓글