2020년 5월 11일
[파이썬] 문장 처리 (변수 값 할당, pass문)
I. 변수에 값 할당
가. 단일 변수에 값 할당
- 변수를 정의하면 이름 공간에 변수의 이름을 키(Key)로 만들고 객체를 값으로 저장
- [예제] 변수에 값 할당
a = 10
print("변수검색 : ", globals()['a'])
def func(x, y) :
return x + y
print("함수검색 : ", globals()['func'])
print("함수실행 : ", globals()['func'](1, 2))
[결과]
변수검색 : 10
함수검색 : <function func at 0x00DE50B8>
함수실행 : 3
a = 10
print("변수검색 : ", globals()['a'])
def func(x, y) :
return x + y
print("함수검색 : ", globals()['func'])
print("함수실행 : ", globals()['func'](1, 2))
[결과]
변수검색 : 10
함수검색 : <function func at 0x00DE50B8>
함수실행 : 3
a = 10 print("변수검색 : ", globals()['a']) def func(x, y) : return x + y print("함수검색 : ", globals()['func']) print("함수실행 : ", globals()['func'](1, 2)) [결과] 변수검색 : 10 함수검색 : <function func at 0x00DE50B8> 함수실행 : 3
나. 여러 변수에 값 할당
- 변수의 개수와 원소의 개수가 같아야 1:1 맵핑으로 할당 가능
a, b, c = [1, 2, 3]
x, y, z = "일이삼"
print(a)
print(b)
print(c)
print(x)
print(y)
print(z)
[결과]
1
2
3
일
이
삼
a, b, c = [1, 2, 3]
x, y, z = "일이삼"
print(a)
print(b)
print(c)
print(x)
print(y)
print(z)
[결과]
1
2
3
일
이
삼
a, b, c = [1, 2, 3] x, y, z = "일이삼" print(a) print(b) print(c) print(x) print(y) print(z) [결과] 1 2 3 일 이 삼
- 변수와 원소의 개수가 일치하지 않을 경우 “ValueError” 에러 발생
II. 사용하지 않는 문장(pass) 작성
가. 기능 없는 문장 작성
- 조건문, 순환문, 함수, 클래스 등은 몸체부에 기능을 작성해야 하며, 내용이 없을 경우 pass 문을 작성해야 함
- [예제] pass 문장 작성
for i in range(10) :
pass # 내용이 아직 정해지지 않았을 경우 pass 문 작성
print(i)
[결과(에러 발생하지 않음)]
9
for i in range(10) :
pass # 내용이 아직 정해지지 않았을 경우 pass 문 작성
print(i)
[결과(에러 발생하지 않음)]
9
for i in range(10) : pass # 내용이 아직 정해지지 않았을 경우 pass 문 작성 print(i) [결과(에러 발생하지 않음)] 9
나. 사용하지 않는 변수 처리
- 변수의 이름을 지정하지 않고 할당 시 밑줄(_)을 사용
- [예제] 미사용 변수 처리
a, _ = 10, 20
print(a)
print(_) # 실제 조회하면 값이 저장된 것을 알 수 있으나 재사용하지 않음
[결과]
10
20
a, _ = 10, 20
print(a)
print(_) # 실제 조회하면 값이 저장된 것을 알 수 있으나 재사용하지 않음
[결과]
10
20
a, _ = 10, 20 print(a) print(_) # 실제 조회하면 값이 저장된 것을 알 수 있으나 재사용하지 않음 [결과] 10 20
IV. map 클래스
- 리스트를 받아 원소를 변경할 때 map 클래스를 사용
- 파이썬3부터 map 클래스에 리스트를 전달하면 반복자 객체가 반환
- 반복자 객체로 리스트 내부 원소의 변경 결과 확인 가능
- [예제] 객체 내 원소 변경
import math
m = map(math.sqrt, [1, 3, 9]) # 리스트를 전달해서 sqrt(제곱근)로 변형
print(type(m))
print([*m]) # "*"를 이용하여 map 객체를 자동으로 처리
[결과]
<class 'map'>
[1.0, 1.7320508075688772, 3.0]
import math
m = map(math.sqrt, [1, 3, 9]) # 리스트를 전달해서 sqrt(제곱근)로 변형
print(type(m))
print([*m]) # "*"를 이용하여 map 객체를 자동으로 처리
[결과]
<class 'map'>
[1.0, 1.7320508075688772, 3.0]
import math m = map(math.sqrt, [1, 3, 9]) # 리스트를 전달해서 sqrt(제곱근)로 변형 print(type(m)) print([*m]) # "*"를 이용하여 map 객체를 자동으로 처리 [결과] <class 'map'> [1.0, 1.7320508075688772, 3.0]
- 대괄호와 함께 별표(*)를 사용하면 모든 원소를 자동으로 하나씩 추출해서 리스트의 원소로 저장 (Unpacking 기능)
[참고]
- 잇플, “한 권으로 개발자가 원하던 파이썬 심화 A to Z”, 2019.11