[파이썬] 문장 처리 (변수 값 할당, pass문)

I. 변수에 값 할당

가. 단일 변수에 값 할당

  • 변수를 정의하면 이름 공간에 변수의 이름을 키(Key)로 만들고 객체를 값으로 저장
  • [예제] 변수에 값 할당
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 맵핑으로 할당 가능
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 문장 작성
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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

나. 사용하지 않는 변수 처리

  • 변수의 이름을 지정하지 않고 할당 시 밑줄(_)을 사용
  • [예제] 미사용 변수 처리
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 클래스에 리스트를 전달하면 반복자 객체가 반환
  • 반복자 객체로 리스트 내부 원소의 변경 결과 확인 가능
  • [예제] 객체 내 원소 변경
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^