글
Python 공식 홈페이지의 Python Tutorial 중 기억해 둘 만한것...
파이썬
2006. 9. 20. 12:27
2.2.3 Source Code Encoding
파이썬 소스 파일에서는 ASCII 와는 다른 인코딩을 사용할 수 있다. 가장 좋은 방법은 소스 파일의 인코딩을 방법을 정의하는 특별한 주석을 추가하는 것이다.
이 선언이 되어 있으면, 소스 파일내의 모든 문자는 encoding 타입으로 인코딩된 문자로 다루어질 것이다. 그리고 선택된 인코딩 타입으로 부터 직접적으로 유니코드를 쓸 수 있다. 사용가능한 인코딩 리스트는 이곳을 참고하라.
예를들어, 유로화 심벌을을 포함하는 유니코드 문자를 쓰기위해서, 유로화 심벌의 서수값(ordinal value) 164 인 ISO-8859-15 인코딩을 사용할 수 있다. 다음 스크립트는 8364 (유로화 심벌에 해당하는 유니코드 값) 를 출력한다.
3.1.2 Strings
스트링을 표현하기 위해서 ` 나 " 를 사용할 수 있다.
` 내에서 ` 문자를 표시하기 위해서는 \` 사용하고 " 문자를 표시하기 위해서는 그냥 " 쓰면 된다.
반대로 마찬가지.
4.2 for Statements
반복문 내에서 리스트 a 의 내용을 바꿀 필요가 있을 때는,
위와 같이 쓰면 문제가 생길 수 있다. 이 경우에는 다음과 같은 표현으로
리스트 a 의 copy 를 사용한다.
4.1.7 Default Argument Values
default value 의 값은 defining scope 의 function definition 때 evaluate 된다.
즉 위의 코드의 결과는 5 가 출력된다.
주의! : default value 는 오직 한번 evaluate 된다. 이것이 list, dictionary 혹은 클래스의 객체와 같이 mutable(내용이 변할 수 있는) object 가 default 가 되는 경우 영향을 미친다.
예를들어, 아래의 코드는
다음과 같은 결과를 출력한다.
만약 연속적인 호출에서 default 를 공유하고 싶지 않다면, 함수 정의를 다음과 같이 해야 한다.
파이썬 소스 파일에서는 ASCII 와는 다른 인코딩을 사용할 수 있다. 가장 좋은 방법은 소스 파일의 인코딩을 방법을 정의하는 특별한 주석을 추가하는 것이다.
# -*- coding: encoding -*-
이 선언이 되어 있으면, 소스 파일내의 모든 문자는 encoding 타입으로 인코딩된 문자로 다루어질 것이다. 그리고 선택된 인코딩 타입으로 부터 직접적으로 유니코드를 쓸 수 있다. 사용가능한 인코딩 리스트는 이곳을 참고하라.
예를들어, 유로화 심벌을을 포함하는 유니코드 문자를 쓰기위해서, 유로화 심벌의 서수값(ordinal value) 164 인 ISO-8859-15 인코딩을 사용할 수 있다. 다음 스크립트는 8364 (유로화 심벌에 해당하는 유니코드 값) 를 출력한다.
# -*- coding: iso-8859-15 -*-
currency = u"€"
print ord(currency)
currency = u"€"
print ord(currency)
3.1.2 Strings
스트링을 표현하기 위해서 ` 나 " 를 사용할 수 있다.
` 내에서 ` 문자를 표시하기 위해서는 \` 사용하고 " 문자를 표시하기 위해서는 그냥 " 쓰면 된다.
반대로 마찬가지.
4.2 for Statements
>>> # Measure some strings:
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
반복문 내에서 리스트 a 의 내용을 바꿀 필요가 있을 때는,
위와 같이 쓰면 문제가 생길 수 있다. 이 경우에는 다음과 같은 표현으로
리스트 a 의 copy 를 사용한다.
>>> for x in a[:]: # make a slice copy of the entire list
... if len(x) > 6: a.insert(0, x)
...
>>> a
['defenestrate', 'cat', 'window', 'defenestrate']
... if len(x) > 6: a.insert(0, x)
...
>>> a
['defenestrate', 'cat', 'window', 'defenestrate']
4.1.7 Default Argument Values
i = 5
def f(arg=i):
print arg
i = 6
f()
def f(arg=i):
print arg
i = 6
f()
default value 의 값은 defining scope 의 function definition 때 evaluate 된다.
즉 위의 코드의 결과는 5 가 출력된다.
주의! : default value 는 오직 한번 evaluate 된다. 이것이 list, dictionary 혹은 클래스의 객체와 같이 mutable(내용이 변할 수 있는) object 가 default 가 되는 경우 영향을 미친다.
예를들어, 아래의 코드는
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
L.append(a)
return L
print f(1)
print f(2)
print f(3)
다음과 같은 결과를 출력한다.
[1]
[1, 2]
[1, 2, 3]
[1, 2]
[1, 2, 3]
만약 연속적인 호출에서 default 를 공유하고 싶지 않다면, 함수 정의를 다음과 같이 해야 한다.
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
if L is None:
L = []
L.append(a)
return L
반응형
'파이썬' 카테고리의 다른 글
The Python 3.3.2 Tutorial (2) (0) | 2013.08.07 |
---|---|
The Python 3.3.2 Tutorial (1) (0) | 2013.08.07 |
파이썬 GUI 툴킷 Tkinter 와 wxPython (0) | 2006.09.27 |
파이썬으로 파일 다운로드와 그 예외 처리 (0) | 2006.09.22 |
파이썬을 배워볼까나... (3) | 2006.09.20 |