Python:Variables

aiden·2023년 6월 2일
0

Python

목록 보기
2/14

변수는 값을 저장하는 공간이다. 변수는 컴퓨터 메모리에 생성된다.
하지만 파이썬의 변수는 다른 언어들과는 다르다.
교수님께서 아직 이해할 수 없으니 그냥 넘어가라고 하시면서도 이 점을 계속 강조하셨던 기억이 난다.

파이썬을 공부하다보면 알게되는데, 다른 언어들과 달리 변수를 선언할 때 변수 앞에 자료형을 명시하지 않는다. 값을 그 공간에 저장하는 것이 아니라 변수 이름이 그 공간을 참조한다. 주소값을 가리키는 것이다.

파이썬에서 모든 데이터는 객체이다. 각 객체는 id와 type을 가진다. 같은 종류의 객체는 type이 동일하다. id()함수와 type()함수를 통해 객체에 대한 정보를 확인할 수 있다.

Variable

파이썬에서 변수 생성 시 변수 이름에 대입 연산자 =를 이용해 값을 저장하면 된다.
이러한 구문을 할당문(assignment statement) 또는 대입문이라 한다.

만약 n = 3 명령문을 통해 n에 3이라는 값을 할당하는 경우, 실제로는 변수 n에 의해 참조되는 int 객체에 3을 할당하는 것으로 볼 수 있다.

파이썬에서 변수는 어떤 종류의 데이터든지 저장할 수 있는데, 정수, 실수와 같은 수와 문자열을 저장할 수 있다.
다음과 같이 자료형과 상관 없이 변수를 사용할 수 있다.

value = 10
value = 3.14
value = 'string'

❗파이썬 변수 개념 이해

다음 코드의 결과는 아래와 같다.

a = 10
b = a
c = 10
d = c
e = 10

print(id(a))
print(id(b))
print(id(c))
print(id(d))
print(id(e))

140730318120008
140730318120008
140730318120008
140730318120008
140730318120008

❗파이썬에서는 다음과 같은 문법을 허용한다.

x = 10
y = 20
x, y = y, x // x, y 값 swap

Name of Variable

변수 이름 규칙은 다음과 같다.

  • 소문자와 대문자는 서로 다르게 취급
  • 변수의 이름은 영문자와 숫자, _로 이루어진다.
  • 변수 이름에 공백이 들어갈 수 없다.
  • 변수 이름은 숫자로 시작할 수 없다.

파이썬에서도 Camel Case를 사용한다.

Constant

상수는 한 번 값이 저장되면 변경되지 않는 변수이다. 다른 변수에서는 상수를 선언하는 별도의 방법이 제공되고 있지만 파이썬은 그렇지 않다. 상수는 지원되지 않으며 변수명 전체를 대문자로 표기한 변수는 상수임을 약속하여 사용하고 있다.

Comment

주석은 #을 붙여 쓴다.
블록 주석은 '''(comment)''' 또는 """(comment)""" 사이에 내용을 적으면 된다.

수식과 연산자

연산자와 피연산자들의 조합으로 수식을 만든다.

파이썬의 산술 연산자는 다음과 같다.

지수를 계산할 때에는 연산자를 사용한다.
지수 연산자
는 다른 산술 연산자들보다 높은 우선순위를 가진다.

print(5**2) //5^2

25

Function

함수는 명령어들의 모임이라고 할 수 있다. 그 중 print() input()과 같은 함수들은 파이썬에서 기본으로 제공하는 내장함수이다.
abs() 함수는 인자로 전달된 값의 절대값을 반환한다. round() 함수는 반올림 함수이며 max(), min() 함수는 각각 인자로 주어진 수들 중 최대값과 최소값을 반환한다.

다른 언어들과 마찬가지로 라이브러리를 제공하는데, 파이썬에서는 이를 모듈(module)이라 부른다.
예를 들어 math 모듈에서는 제곱근 함수 sqrt(), sin(), cos(), log() 등 다양한 수학 관련 함수를 제공하고 있다.
math 모듈의 함수를 사용하고 싶다면 from math import *를 작성해 import하면 된다.

input()

print() 함수는 인자로 전달된 값을 화면에 출력하는 함수이다. input() 함수는 입력 장치로부터 데이터를 입력받는 함수이다. 다음과 같은 구조를 가진다.

input()은 입력을 받기 전에 사용자에게 출력할 프롬프트 문자열을 가질 수 있다. input 함수가 호출되면 사용자가 입력할 때까지 프로그램의 실행이 잠시 중지된다. 사용자가 값을 입력하고 엔터키를 누르면 프로그램의 실행이 다시 진행된다.

input 함수가 입력받는 것은 문자열이다. 따라서 정수값을 입력 받았다면 다음과 같이 int() 함수를 이용해 문자열을 정수로 변환한 후 변수에 저장하여 사용하면 된다. 실수값의 경우 float() 함수를 이용한다.

a = input("정수를 입력하시오 : ")
a = int(a)
b = int(input("정수를 입력하시오 : "))

print(a + b)

정수를 입력하시오 : 5
정수를 입력하시오 : 10
15

Data Type

파이썬의 자료형에는 3가지가 존재한다.

앞서 언급한 바와 같이 type() 함수를 통해 변수의 자료형을 확인할 수 있으며 파이썬 변수에는 어떤 자료형의 데이터든지 저장할 수 있다. 중간에 다른 자료형의 데이터를 저장하는 것도 가능하다.

문자열을 정수로 변환할 때에는 int() 함수, 실수로 변환할 때에는 float() 함수를 사용하고, 정수나 실수를 문자열로 변환할 때에는 str() 함수를 사용하면 된다.

String

문자열은 문자의 집합이다. 큰 따옴표" "나 작은 따옴표' '로 텍스트를 감싸면 문자열이 된다.
따옴표를 이와 같이 """ """ ''' ''' 세 개 사용하면 여러 줄에 걸쳐 문자열을 작성할 수 있다.

파이썬의 이스케이프 문자는 다음과 같다.

  • \\ : \
  • \' : '
  • \" : "
  • \n : 줄 바꿈
  • \t : 탭

만약 print() 함수 사용 시 \이 붙은 문자를 특수 문자로 취급하고 싶지 않은 경우 다음과 같이 문자열 앞에 r을 추가하면 된다.

print(r'my\name')

my\name

r을 붙이지 않은 경우, 다음과 같은 결과를 얻게 된다.

my
ame

len()

len() 함수는 인자로 전달된 문자열의 길이를 반환한다.

문자열의 연결

파이썬 쉘에서 2개 이상의 문자열이 나열되어 있으면 자동으로 연결된다. 이는 리터럴의 경우에만 해당된다.

변수나 수식은 이에 해당하지 않으며, 변수와 변수, 변수와 리터럴을 연결하려면 다음과 같이 + 연산자를 사용해 문자열 접합(string concatenation)을 하면 된다. 이는 물론 리터럴에도 적용된다.

👉🏻리터럴(literal)

리터럴은 직접적으로 입력된 값 자체를 가리키는 말이다. 예를 들어 프로그램에 작성된 정수 10은 정수 리터럴이 되고, 'Hello'는 문자열 리터럴이 된다.

❗연산 시 자료형의 일치

  • 연산자로 문자열을 합치거나 정수를 더할 수 있지만 문자열과 정수를 합칠 수는 없다. 두 피연산자의 자료형이 다르면 안된다. 따라서 동일한 자료형의 피연산자끼리 연산하던지 자료형을 변환하여 일치시켜줘야한다.

문자열의 반복

파이썬에서는 * 연산자를 이용해 간단하게 한 문자열을 반복하여 새로운 문자열을 생성할 수 있다.
다음과 같이 활용한다.

문자열의 출력

문자열에 변수의 값을 삽입하여 출력하려면 서식문자 %s, %c, %d, %f와 %를 사용한다.

price = 10000
print("상품의 가격은 %s원입니다." % price)

상품의 가격은 10000원입니다.

message = "현재 시간은 %s입니다."
time = "2:00pm"
print(message % time)

현재 시간은 2:00pm입니다.

한 문장에서 여러 값을 전달할 수도 있다. 이 때에는 전달하는 값을 괄호로 묶어 쉼표로 구분하여 전달한다.

print("오늘은 %s월 %s일 입니다." % (6, 2))

오늘은 6월 2일 입니다.

인덱싱

인덱싱은 리스트나 다양한 자료구조에서 사용할 수 있는데, 문자열에서도 인덱싱을 할 수 있다.
string에서 인덱스는 각각의 문자에 순차적으로 매겨진 번호이다. 인덱스는 0부터 시작하고 파이썬에서는 음수 인덱스를 사용할 수 있다.

위의 예시에서, 순서대로 -6, -5, -4, -3, -2, -1의 인덱스를 가진다.

다음과 같이 활용할 수 있고, 파이썬에서 한 번 작성된 문자열는 변경이 불가하므로 인덱스를 통해 문자열의 일부 글자를 변경하려고 하면 오류가 발생한다.

List

c언어에 배열이 있다면 파이썬에는 리스트가 있다. [ ]안에 값을 나열하고 값 사이의 쉼표로 구분한다. 파이썬의 리스트는 유동적인데, 리스트 항목을 삭제하거나 교체할 수 있으며 길이 조정 문제를 걱정할 필요가 없다. 인덱스를 통해 리스트 내 개별 요소에 접근한다. 인덱스는 역시 0부터 시작한다. 리스트는 변경 가능한 객체이다. 인덱스를 이용해 항목을 변경할 수 있다.

👉🏻문자열은 변경 불가, 리스트는 변경 가능


❗파이썬에서의 변수 개념

파이썬에서의 변수는 값을 저장하는 공간이 아니다. 값을 저장하는 공간은 메모리 상에 따로 존재하고, 변수는 그 위치를 가리킨다.
변수는 객체를 참조하는 이름표이고, 실제 데이터는 객체에 저장된다. 객체는 어떤 타입의 데이터도 될 수 있다.


서식 지정자에 대해 더 알고 싶으면 https://dojang.io/mod/page/view.php?id=2300 참고

profile
파인애플 좋아하세요?

0개의 댓글