Skip to content

Latest commit

 

History

History
174 lines (124 loc) · 4.32 KB

점프 투 파이썬 정리(변수 및 연습문제).md

File metadata and controls

174 lines (124 loc) · 4.32 KB

점프 투 파이썬 정리(변수 및 연습문제)

  • 우리가 python에서 변수를 지정할 때는,
a = 1
b = "python"
c = [1,2,3]
변수 이름 = 변수에 저장할 값
  • 이런식으로 =(assignment) 기호를 사용하면 된다. 다른 프로그래밍 언어인 C나 JAVA에서는 변수를 만들 때 자료형을 직접 지정해야 하지만, 파이썬은 변수에 저장된 값을 스스로 판단하여 자료형을 지정하기 때문에 더 편리하다.
a = [1,2,3]
print(id(a))

4338445120
  • 이렇게 a라는 리스트가 있다고 하면, [1, 2, 3] 값을 가지는 리스트 자료형(객체)이 자동으로 메모리에 생성되고 변수 a는 [1, 2, 3] 리스트가 저장된 메모리의 주소를 가리키게 된다.
  • 그리고 id() 함수를 사용하면 -> a 변수가 가리키고 있는 메모리의 주소값을 돌려받을 수 있다. 즉, id() 함수는 변수가 가리키고 있는 객체의 주소 값을 돌려주는 파이썬 내장 함수라고 볼 수 있다.

리스트를 복사하고자 할 때

a = [1,2,3]
b = a

print(a)
print(b)
print(id(a))
print(id(b))

[1, 2, 3]
[1, 2, 3]
4351110336
4351110336
  • 위와 같은 상황처럼 b 변수에 a 변수를 대입하면 b는 a와 완전히 동일하다고 할 수 있다. 즉, [1, 2, 3] 리스트를 참조하는 변수(메모리에 저장되어있는 해당 리스트를 가리키는 변수)가 a 변수 1개에서 b 변수가 추가되어 2개로 늘어났다는 의미이다.
    • id 함수로 확인해 봤을때도, a가 가리키는 대상과 b가 가리키는 대상이 동일하다는 것을 알 수 있다.
...
print(a is b)

True
  • 동일한 객체를 가리키고 있는지에 대해서 판단하는 파이썬 명령어 is 를 다음과 같이 실행해도 역시 참(True)을 돌려준다.
a = [1,2,3]
b = a

a[1] = 4

print(a)
print(b)

[1, 4, 3]
[1, 4, 3]
  • a 리스트의 두 번째 요소를 값 4로 바꾸었더니 a만 바뀌는 것이 아니라 b도 똑같이 바뀌었다. 그 이유는 앞에서 살펴본 것처럼 a, b 모두 동일한 리스트를 가리키고 있기 때문이다.

b 변수를 생성할 때 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 하는 방법

a = [1,2,3]
b = a[:]
a[1] = 4
print(a)
print(b)
print(id(a))
print(id(b))

[1, 4, 3]
[1, 2, 3]
4306267008
4306266816
  • 이렇게 리스트 전체를 가리키는 [:]을 사용해서 a의 값을 b에다가 모두 복사해서 가져올 수 있다.
    • 그러면 a 리스트의 값을 바꾸더라도 b 리스트에는 영향을 끼치지 않는다.
from copy import copy
a = [1,2,3]
b = copy(a)
print(a)
print(b)
print(id(a))
print(id(b))

[1, 2, 3]
[1, 2, 3]
4365860416
4373146688
  • 또한, copy 함수를 사용해서 b = copy(a)라고 해주면, b = a[:]과 동일한 코드가 된다. id 함수로 확인해보면, 서로 다른 값을 가르키는 것을 확인할 수 있다.

변수를 만드는 여러 가지 방법

a, b = ('python', 'life')
a, b = 'python', 'life'
[a, b] = ['python', 'life']
a = b = 'python'
  • 위와 같이 튜플로 변수를 설정하거나, 리스트로 변수를 설정할 수 있다. 그리고 여러 개의 변수에 같은 값을 대입할 수 있다.

연습문제

자연수 13이 홀수인지 짝수인지 판별하기

print(1 % 2)
print(2 % 2)
print(3 % 2)
print(4 % 2)

1
0
1
0
  • 위와 같이 자연수를 2로 나누었을 때의 나머지가 -> 자연수가 홀수일 때는 1을 짝수일 때는 0을 돌려주는 것을 확인할 수 있다.

['Life', 'is', 'too', 'short'] 리스트를 Life is too short 문자열로 만들기

a = ['Life', 'is', 'too', 'short']
result = " ".join(a)
print(result)

Life is too short
  • join 함수를 사용해서 a 리스트의 각 단어들을 한 문장으로 조립할 때 단어들 사이마다 공백을 넣어 주어야 한다. 1개의 공백문자(" ")를 사용하여 join한다.

딕셔너리 a에서 'B'에 해당되는 값을 추출하기

a = {'A':90, 'B':80, 'C':70}
result = a.pop('B')
print(a)
print(result)

{'A': 90, 'C': 70}
80
  • pop() 함수를 사용해서 B에 해당하는 값을 추출할 수 있다.