파이썬에서 Python Shell "IDLE (Python GUI)"을 처음 봤을 때...
메모장인가? 하는 생각이 들었다.

허연... 화면에, 글꼴도 꾸지고...
그래서 어떻게 바꿔볼까 생각해보다가

메뉴를 뒤적이기 시작했다.
그리고... 설정도 뒤적뒤적 수정하기 시작했다.

그러다가... 뒷걸음질 치다가 쥐를 잡았다.... ^^;

하나 하나 차근차근 설명을 드릴테니...
잘 보고 따라하시길 바란다.
참고로, 취향따라 다를 수 있으므로,
반드시 본인의 취향에 잘 맞춰 사용하시길...

>>> 첫번째

Options - Configure IDLE 를 클릭한다.



>>> 두번째
 
글꼴을 바꾼다. (Fonts/Tabs 에서...)
Courier 도 좋은 글꼴이긴 하지만 좀 식상한데다가... 보기도 싫다. ^^;
그래서 "나눔고딕코딩"으로 바꿨다.
"나눔고딕코딩"의 장점은 영문 O와 숫자 0(zero)의 차이가 확실하다는 것과
Courier 처럼 들쭉 날쭉하지 않다는 거다.
그래서 쭉~ 선호하고 있는 중이다.



>>> 세번째

드디어 색상을 바꾸본다. (Highlighting 에서...)

설정화면 구성이 좀... 그렇다.
하지만 나름의 아이디어가 묻어있는 것이므로 욕하지 말고 그냥 쓰자...

(1) Choose Color for : 버튼을 클릭해서 색상을 지정해자.
  이미 Normal Text 가 선택되어져있으므로
  기본 글자의 색상을 바꾸는 것이 되겠다.
  (색상은 바꿔가면서 본인이 좋아하는 색상을 찾길 바란다.)

(2) 그러고 나면 "New Custom Theme" 라는 작은 창이 뜨게 된다.
  이건 지정된 설정을 저장하겠다는 거다.
  본인은 tso_type 이라고 정했다. 왜냐하면 검정배경의 tso와 닮게 만들고 싶었기 때문에...
  (LCD도 보호하고, 전기도 적게 소모될 것만 같은 느낌 때문에...
   인류의 평화와 우주의 발전을 기원하는 마음이라고나 할까...)

(3) 아래에 보면 "Background"가 있다. 이게 배경이다.
  "Foreground"는 앞에 보이는 글씨를 말한다.
  "Foreground"와 "Background" 를 같이 바꿔주는 쎈쓰...~

(4) 아래가 본인이 설정한 세팅이다.
  나름 한다고 했는데... 어떠실런지...
  보이시는가... 날짜를 보게되면 숫자 0 안에 점 하나 더 들어있는 거...
  영문 O와 확실하게 구분되는 거다.
  글꼴도 참 좋은 것 같다.

여기에다가.... 조금더 발전시킨... 것이...
어떤가...!! 좀 더 보기 좋아졌지 않은가???

ㅎㅎㅎ 요정도에서 마무리하도록 하겠습니다.


시간이 많이 없어서 그냥...
시간이 조금이라도 나는대로 하나씩 해볼까 한다.

(한컴 오피스 2010에서는 블로그로 올리기기능을 제공한다.
그래서 간편하게 올릴 수 있다....
하지만 줄 간격이 너무 벌어져서 좀 그렇다.
아쉽지만... 쉽고 빠르게 올릴 수 있으므로
계속 이걸로 파이썬 강좌를 올려보고자 한다.
 
편리한 점은 화면 캡쳐를 해서 일일이 올릴 필요가 없다는 것이다.
한방에 올라간다.
그림이든, 내용이든...
물론 몇가지는 수동으로 해야하지만,
그정도 불편이야 감수할 수 있다.

블로그 포스팅의 든든한 조력자가 아닐 수 없다
.)



프로그래밍에서 가장 기본 되는 if 절이 나왔다.
대충 간단하다만...
if와 elif, else 가 세트를 이루게 된다.

elif는 좀... 어색한 감이 없지 않으나...
else if 나 elif 나.... 줄여쓰는 거라 생각하고, 좋게 생각하자.
짧으니, 더 좋다고...


>>> x = int(input("제발 정수를 입력하고 엔터쳐주세요!:"))

제발 정수를 입력하고 엔터쳐주세요!:42

>>> if x < 0:

        x = 0

        print('마이너스값이면 0로 바꿉니다.Negative changed to zero')

elif x == 0:

        print('0입니다.Zero')

elif x == 1:

        print('1입니다.Single')

else :

        print('더 큰 숫자입니다More')


        

더 큰 숫자입니다More

>>> 



>>> x = -2

>>> if x < 0:

        x = 0

        print('마이너스값이면 0로 바꿉니다.Negative changed to zero')

elif x == 0:

        print('0입니다.Zero')

elif x == 1:

        print('1입니다.Single')

else :

        print('더 큰 숫자입니다More')


        

마이너스값이면 0로 바꿉니다.Negative changed to zero

>>> x

0

>>> 


생각보다 간단하다는 생각이 든다.
물론 if절이야... 어려울 것이 없지...


수행했던 내용을 그대로 갈무리 한거다...
그러면서 설명을 간단히 곁들여볼까 한다.
그냥 해보시라...


1. if 문...

Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> the_world_is_flat = 1
>>> if the_world_is_flat:
 print("Be careful not to fall off!")

 
Be careful not to fall off!


위엣것을 설명하자면... (필요할지 모르겠지만)

the_world_is_flat 에다가 1을 세팅하는 것이다.
그리고는 if the_world_is_flat 이면은... 아래의 print를 수행하라는... 극히 기본적인....
그래서 그러니까, 아래에...  Be careful not to fall off! 라는 문구가 프린트된 것이다.

>>> if not the_world_is_flat:
 print("Falled off!!")


 


not 이냐고 물었더니... 아무 반응 없었다. ㅋㅋㅋ


2. 계산기 기능...

2.1 단순 산수...
 
>>> 2+2
4
>>> # This is a comment
 2+2
4
>>> 2+2  # and a comment on the same line as code
4
>>> (50-5*6)/4
5.0
>>> 8/5 # Fractions aren't lost when dividing integers
1.6

( / 와 // 의 차이점을 설명하시는 것이겠다...)

>>> 7//-3 # Integer division returns the floor
-3
>>> 7//3
2
>>> 7.//-3
-3.0
>>> 7.//-3.
-3.0

(혹시나.... -2.3 정도가 나올 수 있을까? 하는 심정으로 해봤으나... 아니다...)


>>> x=y=z=0
>>> x
0
>>> y
0
>>> z
0

(한방에 변수에다가 initial 시키는 거겠다.)



>>> # try to access an undefined variable
>>> n
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    n
NameError: name 'n' is not defined

(변수에 아무것도 세팅하지 않고, 그냥 실행하면 에러를 맛보게 된다.
 이건 아니잖아... 하면서...)

>>> 7/3
2.3333333333333335
>>> 7/-3
-2.3333333333333335
>>> 7.0/2
3.5

2.2 복소수였던가.... 그놈이다...

>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
>>> a = 1.5 + 0.5j
>>> a.real  #실수부겠지...
1.5
>>> a.imag #허수부겠지...
0.5
>>>
>>> a=3.0+4.0j
>>> float(a)
Traceback (most recent call last):
  File "<pyshell#33>", line 1, in <module>
    float(a)
TypeError: can't convert complex to float

(복소수를 float로 바꿀 수 없다는 것이겠지...)

>>> a.real
3.0
>>> a.imag
4.0
>>> abs(a)
5.0
>>> tax = 12.5 /100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> price + tax
100.625
>>> _
100.625
>>> round(_,2)
100.62
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_,2)
113.06
>>> round(113.0625,2)
113.06
>>> price + 12.5625
113.0625

( _ 가 뭔지 한참 헤맸다. 그러나... 바로 직전의 계산결과값이란 걸 알게됐다...)

2.3 문자열 처리...

>>> 'spam eggs'
'spam eggs'
>>> 'doesn\'t' # single quotation 이겠지...
"doesn't"
>>> "doesn't"
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said." # double quotations 이겠지...
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
>>> hello = "This is a rather long string containing\n\ # 줄바꿈 이겠지...
several lines of text just as you would do in C.\n\
    Note that whithespace at the beginning of the line is\
 significant."
>>> print(hello)
This is a rather long string containing
several lines of text just as you would do in C.
    Note that whithespace at the beginning of the line is significant.

>>> print("""\    triple quotations 은 줄바꿈이나 탭마져도 그대로 살려주는 기능 되시겠다....
Usage : thingy [OPTIONS]
       -h     Display this usage message
       -H hlostname    Hostname to connect to
""")
Usage : thingy [OPTIONS]
       -h     Display this usage message
       -H hlostname    Hostname to connect to

>>> hello = r"This is a rather long string continaing\n\
several lines of text much as you yould do in C."
>>> print(hello)
This is a rather long string continaing\n\
several lines of text much as you yould do in C.

( "raw" 문자열은 있는 그대로 보여주게된다. 그냥 문자로만 인식하게 하는 거겠다.)

이렇게 변수에 넣어서 print 해도 잘 된다는 걸 보여준거겠다.
물론 차이는 그냥... 그대로 들어갔고, 그대로 나왔다는 것이 차이점이겠다...)



아래부터는 문자열 지지고 볶는 부분이다.
tutorial에 나와있는 것보다 몇개 더 해봤다.
이유는 잘 이해가 되질 않아서였다.
그래서 좀 더 해보니... 이해가 좀 되었다.

천천히 들여다보거나, 직접 해보게되면 이해되는 부분 되시겠다...(모르면 pass....)



>>> word = 'Help' + 'A'
>>> word
'HelpA'
>>> '<' + word*5 + '>'
'<HelpAHelpAHelpAHelpAHelpA>'
>>> '<' + (word-1)*5 + '>'
Traceback (most recent call last):
  File "<pyshell#72>", line 1, in <module>
    '<' + (word-1)*5 + '>'
TypeError: unsupported operand type(s) for -: 'str' and 'int'
>>> '<' + (word-'A')*5 + '>'
Traceback (most recent call last):
  File "<pyshell#73>", line 1, in <module>
    '<' + (word-'A')*5 + '>'
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>> '<' + word[0:4]*5 + '>'
'<HelpHelpHelpHelpHelp>'
>>> '<' + word[0:4] + ' ' *5 + '>'
'<Help     >'
>>> '<' + (word[0:4] + ' ') *5 + '>'
'<Help Help Help Help Help >'
>>> word[4]
'A'
>>> word[0:6]
'HelpA'
>>> word[2:4
     ]
'lp'
>>> word[:2]
'He'
>>> word[2:]
'lpA'
>>> word[2] = 'x'
Traceback (most recent call last):
  File "<pyshell#83>", line 1, in <module>
    word[2] = 'x'
TypeError: 'str' object does not support item assignment
>>> 'x'+word[1:]
'xelpA'
>>> 'Splat'+word[4]
'SplatA'
>>> word[:2]+word[2:]
'HelpA'
>>> word[0]
'H'
>>> s='supercalifragilisticexpialidocious'
>>> len(s)
34
>>> "Äpfel".encode('utf-8')
b'\xc3\x84pfel'
>>> b'\xc3\x84pfel'.encode('
        
SyntaxError: EOL while scanning string literal
>>> a = ['spam','eggs',100,1234]
>>> a
['spam', 'eggs', 100, 1234]
>>> a[0]
'spam'
>>> a[1]
'eggs'
>>> a[2]
100
>>> a[3]
1234
>>> a[4]
Traceback (most recent call last):
  File "<pyshell#98>", line 1, in <module>
    a[4]
IndexError: list index out of range
>>> a[-2]
100
>>> a[-1]
1234
>>> a[-3]
'eggs'
>>> a[-4]
'spam'
>>> a[-5]
Traceback (most recent call last):
  File "<pyshell#103>", line 1, in <module>
    a[-5]
IndexError: list index out of range
>>> a[1:-1]
['eggs', 100]
>>> a[:2] + ['bacon',2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3]+['Boo!
 
SyntaxError: EOL while scanning string literal
>>> 3*a[:3]+['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']
>>> a
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]
>>> a[2] =a[2] - 24
>>> a
['spam', 'eggs', 99, 1234]
>>> a[2] = a[2] + 1
>>> a
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]
>>> a[0:2] = [1,12]
a
>>>
>>> a
[1, 12, 123, 1234]
>>> a[0:2]=[]
>>> a
[123, 1234]
>>> a[1:1] = ['bletch','xyzzy']
>>> a
[123, 'bletch', 'xyzzy', 1234]
>>> a[:0]=a
>>> a
[123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]
>>> a[:]=[]
>>> a
[]
>>> a = ['a','b','c','d','e']
>>> a
['a', 'b', 'c', 'd', 'e']
>>> len(a)
5
>>> a[-1:]=['k']
>>> a
['a', 'b', 'c', 'd', 'k']
>>> a[-1:]=['e','f']
>>> a
['a', 'b', 'c', 'd', 'e', 'f']
>>> a=a[:]
>>> a
['a', 'b', 'c', 'd', 'e', 'f']
>>> a[:0]=['go']
>>> a
['go', 'a', 'b', 'c', 'd', 'e', 'f']
>>> len(a)
7
>>> q=[2,3]
>>> p=[1,q,4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[0]
1
>>> p[1][0]
2
>>> p[1][1]
3
>>> p[1].append('xtra')
>>> p
[1, [2, 3, 'xtra'], 4]
>>> q
[2, 3, 'xtra']

※ 피보나치 수열 되시겠다.
너무 재밌는 부분 중의 하나였다.
간단하면서도, 산수의 수열을 순식간에 표현할 수 있다니...
퍼헐~

>>> a,b = 0,1
>>> a
0
>>> b
1
>>> while b < 10:
 print(b)
 a,b=b,a+b

 
1
1
2
3
5
8
>>> while b < 100:
 print(b)
 a,b=b,a+b

 
13
21
34
55
89
>>> a,b=0,1
>>> while b < 100:
 print(b)
 a,b=b,a+b

 
1
1
2
3
5
8
13
21
34
55
89
>>> a,b=0,1
>>> while b < 601:
 print(b)
 a,b=b,a+b

 
1
1
2
3
5
8
13
21
34
55
89
144
233
377
>>> a,b=0,1
>>> while b < 611:
 print(b)
 a,b=b,a+b

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610

피보나치 수열을 좀 더 쉽게 보고 싶었다.
제대로 보고싶었다.
하지만 C, PYTHON이 짧아서 잠시 삽질한다....

>>> a,b=0,1
>>> while b < 1000:
 print(++1,b)
 a,b=b,a+b

 
1 1
1 1
1 2
1 3
1 5
1 8
1 13
1 21
1 34
1 55
1 89
1 144
1 233
1 377
1 610
1 987
>>> a,b=0,1
>>> i=0
>>> while b < 1000:
 print(++i,b)
 a,b=b,a+b

0 1
0 1
0 2
0 3
0 5
0 8
0 13
0 21
0 34
0 55
0 89
0 144
0 233
0 377
0 610
0 987
>>> a,b=0,1
>>> i=1
>>> while b < 1000:
 print(i,b)
 a,b=b,a+b
 ++i

 
1 1
1
1 1
1
1 2
1
1 3
1
1 5
1
1 8
1
1 13
1
1 21
1
1 34
1
1 55
1
1 89
1
1 144
1
1 233
1
1 377
1
1 610
1
1 987
1

이제 제대로 모양을 갖췄다. 크헐헐...

>>> a,b=0,1
>>> i=1
>>> while b < 1000:
 print(i,b)
 a,b=b,a+b
 i=i+1

 
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987

요게 완성판이다....
근데.... 여기서는 탭이 제대로 안보이게 되네....
여하튼 파이썬에서는 잘 나왔다. 에잇... 캡쳐때려야겠다....

>>> a,b=0,1
>>> i=1
>>> while b < 1000:
 print(i,b,sep='\t')
 a,b=b,a+b
 i=i+1

 
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987
>>>
<the Fibonacci series>


ㅎㅎㅎ 일단 강좌 두번째를 성공적으로 마무리한 것 같다.
실력은 없어도...
처음 하시는 분들과 동등한 수준(?) 이므로...
보시면서 바로~ 이해되실 것 같다.

사람들이 이래서 파이썬, 파이썬 하는구나 생각한다.
생각보다 쉽기 때문이다. ^^;


파이썬을 배워보기로 했다. 사실, 오래전에 파이썬을 해보고 싶었는데,
여의치 않은 상황이라... 제대로 시도를 못해보다가, 이제야 제대로 해볼 수 있을 것 같다.

책도 샀고, 읽어보기도 했고, 조금 해보기도 했으나...
진도는 나가지 않고, 이해도 되지 않고 해서
강좌를 열면서 공보해보기로 했다.

일단 방향을 정한 것이니, 열심히 해볼 생각이다.
혹시, 따라하다가 대박 잘되면 너무 좋겠다고 생각하면서... 기대를 갖고 시작해보려고 한다.

(혹... 따라하실 분들은 마음을 가다듬고 시작해봤으면 좋겠다.
격려의 글이나, 의견, 도움말 등을 기다리면서...
ㅠㅠ 당췌 댓글이 없는 블로그라... 소통이 되는건지 모르겠다.
오셨음 발자취라도 남겨주시라... 제발...)

1. 먼저 파이썬을 다운받자.

http://www.python.org
에 접속하여 download 를 찾아서 윈도우 버전으로 다운 받자!
물론 윈도우가 아니라면 해당되는 OS에 맞춰서 다운받으면 되겠다.

2. 설치하자.

윈도우나 맥, 유닉스, 리눅스 또는 그외의 OS에 맞춰서 설치했겠지...

일단 윈도우는 별스러운 설정이 없으니, 그냥 하면 될 것이고,
다른 OS 들도 상세한 설명에 따라서 해보자. 될 것이다.
안된다면 물어보자! 나 말고 다른 베태랑에게...
(나는 딴 랭귀지 경력 높은 파이썬 막 배우는 초급이다-ㅅ...)

3. Python v3.1.3 documentation 을 읽어보자!

[시작]-[프로그램]-[Python 3.1]-[Python Manuals] 클릭하자.

헐~ 물론 영어다.
어렵다.
대충 훑어보니, 파이썬이 좋단다.
뭐, 이런 저런 특징들이 있다고 하니...
해보면서 정말 좋구나 느껴보도록 하자!
지금은 읽어봐야, 가슴에 와닿는 것이 아니다.
그냥 그럴 뿐....
그냥 외국어에 지나지 않을 뿐이다.

하지만 조금만 따라하다 보면 쉽게 랭귀지 하나 뗄 수 있다는...

4. next 를 눌러보자.

뭔소린가 할 게다.
난 아직도 Python v3.1.3 documention 을 말하고 있는 거다.

오른쪽 위를 보면
previous | next | modules | index
이렇게 나와있다.

거기에서 next 를 눌러보자.

  1. Whetting Your Appetite 를 보고 있다가
 
  2. Using the Python Interpreter 으로 넘어갔을 것이다.
 
이게 뭐냐... 인터프리터를 사용해보자는 것이겠다.
각설하고, [시작]-[프로그램]-[Python 3.1]-[IDLE (Python GUI)] 를 실행해보자.

5. 따라하자!

쭉 스크롤으로 화면을 내리다 보면

  2.1.2. Interactive Mode
 
나온다.

거기부터 따라하자!


아래는 구글에서 번역한 릴리즈 정보이다.
일부 부정확하거나, 애매한 번역이 있으나, 구글에서 원본과 비교해본다면 얼추 그 뜻을 알 수 있다.
갑자기 나오는 "여동생"들은 노키아에서 실행파일로 사용되는 놈들의 확장자명인 sis 확장자명을 말하므로
참고하길 바라면서...
또... 고정시켰다는 것은 고쳤다는 fix를 잘못 번역한 것이라고 보면 되겠다.
 (번역을 자동으로 하니... 이런 섬세한 부분까지는 번역이 안되는 것 같다.
  언어 장벽은 어디나 아직은 뛰어넘기 힘든 벽임을 구글 번역을 통해서 알 수 있다.
  http://translate.google.co.kr/)

하지만 구글 번역이 없었다면 이 릴리즈 정보를 읽어볼 생각을 안했을거라는...

===============================================
파이썬 S60 용 2.0.0 릴리스 정보, 2010년 2월 11일
===============================================

제품 설명
===================

파이썬는 S60를 (이하 PyS60)에 생성하고자하는 개발자를위한 것입니다
사용하는 기본 기능과 S60의 전화의 자원을 사용하는 프로그램
파이썬 프로그래밍 언어.

이 릴리스 정보
==================

이것은 PyS60의 새로운 2.0.0 최종 릴리스입니다. 이 릴리스 것입니다
단지 S60를 버전 셋째 들어, S60를 버전 FP1 셋째, S60를이 에디션 FP2와 세번째
S60를 다섯째 판 장치.

버전에 대한 참고 사항 : PyS60 릴리스에서 버전 관리 제도는 그러한 것을
심지어 마이너 버전 출시 (1.0.x, 1.2.x ...) "안정"되어 출시
이상한 부 버전 (1.1.x, 1.3.x ...)와 함께 "개발"출시됩니다.

무슨 PyS60 1.9.7와 비교하면 새로운 무엇입니까?
-------------------------------------------
- 4 - 방식으로 반복 지원 방향 패드
- 인터프리터 코드의 메모리 누수 많은가 고정됩니다.
- 통역을 추적해야하는 경우 appuifw.app.track_allocations를 설정할 수있는 모든
  
명시적으로 해제되지 그 다음에 메모리 할당과 무료 메모리
  
응용 프로그램 종료하기 전에. 메모리 누수를 디버깅하려면 파티에 확장 3
  
모듈은 false로 값을 설정합니다.
- 모든 제로 UID를이 포장 당시의 UID를 응용 프로그램에 할당됩니다있다 Pyds 있습니다.
  
그 결과, 파이썬 애플 리케이션이 이제 심비안 수 있습니다 서명했다. 이것은 OVI 저장소에 파이썬 응용 프로그램을 제출을 위해 문을 엽니다.
- PDF 파일 설명서 / 아카이브 설치 프로그램에서 사용할 수 있습니다.
- SensorFW 모듈 API를 정리.
- 아래에 언급된 장치 파이썬 런타임과 의존성에 자동으로 설치됩니다
  
언제 파이썬 응용 프로그램이 시작됩니다.
  
6220 고전, 5730 XpressMusic, N78, N86 5630 XpressMusic 8 헌병, N85, 6720 클래식, 6730 클래식, N96,
  
E52, E55, 6710 네비게이터, E75, N79, 5800 XpressMusic, 5530 XpressMusic, 5230, X6와 N97 미니

기능 요청 :
-----------------
3792 - 파이썬 런타임 및 응용 여동생이 다른 드라이브에있을 수 있습니다. 같은 드라이브가 멸망에 양쪽의 제한이 설치되어 있어야합니다.

수정된 결함 :
------------------
4345 - ensymble에 누락 (플랫폼) 기능 / 응용 프로그램 packager가 : 버그 설명에 두번째 지점 고정
3935 - appuifw.Icon 샘플 코드는 존재하지 않는 파일 [의사 오류]를 말합니다

무슨 PyS60 1.9.6와 비교하면 새로운 무엇입니까?
-------------------------------------------
- 터치 지원 GLCanvas UI를 컨트롤에 추가되었습니다. 방향 패드가 표시됩니다
  
터치 활성화된 장치에서 기본적으로. 샘플 응용 프로그램 - gles_touch_demo.py
  
기능을 보여줍니다 어느 ScriptShell에 추가됩니다.

- 두 개의 새로운 API는 캔버스에 추가됩니다 - begin_redraw과 end_redraw. 이러한 수
  
윈도우 서버를 지시하는 데 사용되는 캔버스 UI에 그림 그리기 활성화
  
제어할 수 있습니다. 자세한 내용은 (제 3.1.10) 설명서를 참조하십시오.

- 다중 선택 목록 상자가 수정되었습니다 그러한 것을 대화
  
옵션을 '체크'에 이제 '옵션'과 '뒤로'의 왼쪽과 오른쪽으로가
  
각각 softkeys. '옵션'을 사용할 수있는 표시 / 표시 해제 항목을 가지고
  
선택하고 취소 각각 선택합니다. '뒤로'소프트 키는 반환
  
목록 상자의 현재 상태가 선택한 항목에 따라.

- 프리 모드에서 4 방향 패드 방식 지원
    
- Scriptshell 응용 프로그램의 다른 맛을은 장치에 사용할 수 있습니다.

- 낙서 응용 프로그램 개선 사항 :
  
- API는이 begin_redraw과 end_redraw를 사용하여 성능 향상.
  
- 그리기 영역이 가로와 세로 사이에 유지됩니다
    
도구 모음 교대로 모드는 이러한 변화에 대한 수용 가능합니다.
  
- 펜 너비가 미리 정의된 값 목록에서 선택할 수 있습니다.

- PyS60 문서 maemo.garage에 온라인으로보실 수 있습니다
  
http://pys60.garage.maemo.org/doc/

수정된 결함 :
------------------
4251 - 표시됩니다 파이썬하는 DLL과 exe 파일의 압축 형식
       
폐의 대신 바이트 쌍으로.
4313 - 나중에 보이는, 스크롤바가 있어야하지
4338 - 복합 lisbox 개체 감소는 성능을 스크롤
4349이 - time.mktime () 너무 많은 시간을내어 실행

무슨 PyS60 1.9.5와 비교하면 새로운 무엇입니까?
-------------------------------------------
- 가상의 네 방향 방향 패드에 대한 지원이 캔버스와 텍스트 추가
  
위젯. 이 D - 패드가 화면의 하단이에가 표시됩니다
  
feauture는 터치 활성화된 장치에서 기본적으로 활성화되어 있습니다. 현재, 여기는
  
세로 모드와 프리 지원에만 지원이 가능합니다
  
향후 릴리스 인치
  
'full_max'모드는이 변화에 의해 무효가됩니다이 제거됩니다
  
릴리스.

- 기본 런타임에 모듈이 더 세련되고 따라서 크기입니다
  
PyS60 신청 Packager를 사용하여 만든 응용 프로그램 SIS는가 줄어 듭니다.

- 새 장을은 확장하고 임베딩 PyS60 설명서 (에 추가됩니다
  
PyS60)는, 그 엔드 - 투 - 엔드 만들기위한 입문서입니다 타사 extention 3
  
모듈과 그들을 배포.

수정된 결함 :
------------------
3223 - 부동 소수점은 /이 플랫폼에서 구문 분석 루틴은 부정확할 아르 서식
4078 - socket.access_points ()이 항목 많은 0을 반환합니다 iapid
4106 - 문제 나가는 독립형 애플 리케이션
4185이 - 시간대와 캘린더 모듈 반환 종료 시간의 유닉스 시간에 추가 오프셋
4186 - 달력 모듈 반환 오류에 사용 롤백
4198이 - 화면 방향이 나가고 난 후 프리 유지 장치는 동안
       
초상화 항상
4215 - default.py은 로드할 수 없습니다 pyc 파일입니다.
4216이 - sys.exit () 파이썬을 종료하지 않습니다

무슨 PyS60 1.9.4와 비교하면 새로운 무엇입니까?
-------------------------------------------

- e32.s60_version_info 지금 할 수정된 동적 페치와 S60를 반환
  
버전 정보 대신 구성된 버전 정보를 반환
  
시간이 컴파일시.
- PyS60 어플 리케이션을위한 기본 heapsize는 4k 4M에서 100,000에 1 분을 증가
- 옵션은 "누락된 의존성 계속"을 포장 도구에 추가됩니다.
  
및 경고로서 누락된 종속성이 표시됩니다이 옵션을 활성화
  
SIS는 세대를 계속합니다. 그렇지 않으면 포장이 엄격합니다. 누락
  
종속성가 중단됩니다 오류와 SIS는 세대로 표시됩니다.

기능 요청 :
-----------------
3261 - py2sis 전에 바이트 코드로 변환하는 옵션을 추가
3298이 - appuifw의 목록 상자는 이제 스크롤바를 스포츠

수정된 결함 :
------------------
3228이 - time.clock ()이 예상대로 작동하지 않습니다.
3784 - 후진 알파벳 순서로 파이썬 셸 파일 목록
3788이 - SDK 용 uninstall_Python 스크립트가 선두에있다 \ 경로에
3934 - appuifw.Icon은 회색 상자를 만듭니다
3938 - 터치로 스크롤 목록 상자 밖으로 - 한
4006 - 목록을 신속하게 손가락을 슬라이딩 가짜 선택 문제
       
원시 (XM 5,800) 당 2 라인
4007 - 슬라이딩 때 한 항목 당 원료로 나열 type_error를 생성하는
       
맨 위로 아래에서 내 손가락을
4013이 - 1.9.4 관련이 있습니다. ! 반환 틀린 S60를 운영 체제 버전 번호
4016 - 1.9.4에 ball.py를 실행 ZeroDivisionError

무슨 PyS60 1.9.3와 비교하면 새로운 무엇입니까?
-------------------------------------------

- 하나의 노키아 에드 셋째 모든 S60를 설치할 수 있습니다 런타임 패키지를 서명
  
및 장치 이상 사용할 수 있습니다. 런타임의 실제 크기는 ~ 1메가바이트하지만, 인해
  
임베디드 OpenC의 동생과 플랫폼 서비스 동생으로, 크기를 증가
  
2.8MB. 런타임은 가장 필수적인 모듈을 포함하고 있습니다. 나머지
  
모듈은 응용 프로그램 packager 도구로 사용할 수 있습니다.

- 향상된 응용 프로그램 packager 도구의 버전입니다. PyS60 응용 packager
  
지금은 포장되고 파이썬 응용 프로그램을 검사하고 집어들고 실종
  
어떤 응용 프로그램이 의존하고 그들을 따라 패키지 파이썬 모듈
  
응용 프로그램 파일과. 참조 7 장. 에서 "리포지 토리 모듈"
  
자세한 내용은 PyS60 설명서.

- 간편한 런타임 배포 : 파이썬 런타임와 종속 구성 요소가 될 수
  
그냥 1.9.4를 사용하여 포장하는 파이썬 응용 프로그램을 실행하여 설치
  
응용 packager. 이 기능은 S60를이 에디션 FP2 3에서만 사용할 수 있습니다
  
디바이스는 이후에도 이러한 장치가 업데이 트되어 있어야
  
최신 펌웨어.

- 두 개의 새로운 API는 모듈이 소켓에 추가됩니다 - access_points () &
  
API에 유사한 기능을 가지고 set_default_access_point ()
  
btsocket 모듈에 존재한다.

- 두 개의 새로운 API는 모듈 e32에 추가됩니다 - get_capabilities ()과
  
has_capabilities (). 전이 기능을 사용할 수 있습니다
  
신청 확인 후자와 함께 서명하지 않은 경우 주어진 목록
  
기능은 응용 프로그램 안에 부여됩니다.

  
참고 : scriptshell의 기능이 사용하는 시작할 때 표시되는
  
get_capabilities () API를.

- 'full_max'로 사용할 수 있습니다 - appuifw.app.screen에 새로운 모드를 추가
  
소프트 키 및 오른쪽 소프트를 떠나게하지 않는 장치에 전체 화면 달성
  
키 (예 : 노키아 5800). 화면 설정 '전체'로 번역하는 것입니다
  
이러한 장치에서 '큰'모드.

- 1.9.x의 바이너리에 접두사는 1.4.x과의 공존을 지원하기 위해
  
런타임, '251_에서 '를'kf_ '으로 변경되었습니다.

수정된 결함 :
------------------
3368 : 응용 프로그램의 전용 디렉토리 아래 가져오기 모듈이 실패합니다.
3841 : 소켓 대 btsocket 상호 운용성

무슨 PyS60 1.9.2와 비교하면 새로운 무엇입니까?
-------------------------------------------
- 터치 이벤트 지원이 캔버스를 appuifw에 추가됩니다. API는 appuifw에 추가됩니다
  
모듈 장치가 터치 입력을 지원하는 경우 확인하기 위해 () touch_enabled.

- 낙서 응용 프로그램 PyS60 터치 기능을 사용 가능합니다 개발
  
설치.

-이 릴리스에는 새로운 확장 모듈을 scriptext 포함되어 있습니다. 이것은 원동력입니다
  
S60를에서 5 버전을 도입했다 S60를 플랫폼 서비스 API를 사용
  
S60를이 파이썬에서, 에디션 FP2 3에 다시 포팅. 그것은 같은 서비스를 지원
  
응용 프로그램 관리자, 캘린더, 연락처, 랜드마크, 위치, 로깅
  
메시징, 미디어 관리, 센서 및 시스 정보. 참조 scriptext 모듈
  
사용에 대한 설명서 및 플랫폼에 액세스하기위한 협약
  
서비스 API 인터페이스는 변경될 수 있습니다.

- 간편한 런타임 배포 : 파이썬 런타임와 종속 구성 요소가 될 수
  
그냥 1.9.3와 함께 제공되는 scriptshell 응용 프로그램을 실행하여 설치
  
릴리스. 이 기능은 S60를이 용 FP2 장치를 세번째에서만 사용할 수 있습니다
  
이후에도 이러한 장치가 업데이 트 있었어야 최신
  
펌웨어. 쉽게 런타임 배포 지원은 모두 사용할 수 있습니다
  
향후 릴리스에 ensymble 패키지 애플 리케이션.

- 소켓에 대한 SSL 지원이 활성화되어

- 파이썬 코어가 2.5.4으로 업그레이 드됩니다

수정된 결함 :
------------------
3220 : 시간과 strptime 모듈은 'Z부터'형식 지정자 사용되면 실패
3221 : 이슈 비의 TCP 소켓을 차단
3229가 : 문제는 소수 구분 기호와 함께 휴대 전화의 로케일을 사용하는 경우 이외에는 소수점 구분 기호 도트
3388가 : SSL 클라이언트가 아니라이 파이썬 설치 지원
3631 : packager 이전 호출의 소스 디렉토리를 기억하지 않습니다


무슨 PyS60 1.9.1와 비교하면 새로운 무엇입니까?
-------------------------------------------
-이 장치에서 센서에 액세스하기위한 센서 모듈 지원
  
S60를 센서 프레임 워크 라이브러리. 1.9.x 사이에이 모듈의 API 호환성
  
버전 2.0까지 보증하지 않습니다. 그것은 좋은 이유없이 고장되지 않습니다
  
하지만 발생할 수 있습니다. 을 참조하십시오 센서 모듈에 사용할 수 specifications.doc
  
자세한 내용은 설치 프로그램에서.

- 설치 프로그램의 크기는 감소!
  
응용 프로그램 packager는 GUI가 이제는 Tkinter를 기반으로, 따라서 PyQt 설치 프로그램입니다
  
이 Windows 설치 프로그램에서 제거됩니다.

- PythonRuntime의 uid가 ''0 xE0201514에''0 xF0201514에서 변경되었습니다

- PyS60 신청 Packager 이제 ensymble 0.28을 기반으로

무슨 PyS60 1.9.0와 비교하면 새로운 무엇입니까?
-------------------------------------------
- 더 나은 통역 시작 및 시스 설치 시간!

- 런타임 언니의 모든 파이썬 파일에 컴파일되는 pyc 파일과.
  
zip 파일에 포함되어 있습니다. sys.path이 zip 파일의 경로와 업데이 트됩니다.
  
이것은 상당히 통역 시작 시간을 단축.

-보다 일반적인 오류 메시지가 응용 프로그램을로드하려고 할 때 표시됩니다
  
없이 PyS60 종속성이 설치되어 있어야합니다.

- 그냥 <subsystem>을 구축에 대한 지원이 제공됩니다. 참조, build_emu를 구축
  
setup.py의 build_device 도움말

- 1.4.x와는 달리, 하나의 SDK를 우편 모두 gcce과 armv5 연결 라이브러리가 포함되어 있습니다.
  
SDK를 별도의 참아요는 3rdEd, 3rdEdFP1 및 3rdEdFP2 제공됩니다.

- ensymble py2sis 명령의 기본 모드는 'pycore'으로 변경됩니다. 전체
  
pys60 모듈 소켓과 캘린더를 참조하십시오 스크립트가 새를 사용해야합니다
  
이름 - btsocket과 e32calendar은 pycore 모드에서 S60의 기능을 사용합니다.
  
또한 "1.4.x 호환성 모드"를 "우선 PyS60 모듈 라이브러리를"변경
  
응용 프로그램 packager의 UI에.

수정된 결함 :
------------------

3230 : 프로필과 PyS60 모드를 콘솔과 패키지 애플 리케이션을 받으십시오.
3317 : N70는 시작 안내서에있는 지원되는 장치 목록에 포함되어 있습니다
      
그것은 2ndEdFP2 장치하더라도

무슨 PyS60 1.4.5와 비교하면 새로운 무엇입니까?
===========================================

- 표준에 훨씬 더 준수 파이썬 2.5.1 코어,
  
파이썬 이전보다. 모듈의 표준 라이브러리의 대부분은
  
제공 - 기본적으로 거의 이것 저것 플랫폼에 의미를 모두
  
그것도 (회귀 테스트 목적)되지 않는.
  
, Expat XML 파서, ftplib, smtplib 같은 케이크를 포함
  
urllib2, xmlrpclib, SimpleHTTPServer, cPickle, asyncore과
  
특히 훨씬 호환 소켓 모듈. 가비지 수집
  
활성화되어 있으므로 참조 사이클을 분해해야 필요가 없습니다
  
더이상.

- 1.9.1 릴리스와 함께 물건을 향상 새로운 올인원 설치 프로그램에 그 제공
  
당신 GUI를 함께 패키징 도구 및 추가 정보 파일, 설명서 및
  
SIS는은 하나의 패키지로, Windows 플랫폼에서 개발에 필요한 파일입니다.
  
마찬가지로 리눅스 / 맥 플랫폼에 대해,이 올인원 아카이브에 제공됩니다
  
에 대한 GUI를 제외하고 설치 프로그램에서 제공하는 모든 내용을 포함
  
포장 도구입니다.

- 포장 파이썬 애플 리케이션 SIS는 파일을 훨씬 더 쉽습니다.
  
사용자에게 친숙한 Ensymble 도구는 현재 공식적인 패키징 도구입니다
  
우리는 너무 귀하의 신청서를 포장에 대한 GUI를 만들어 봤는데 지금은 그냥
  
멀리 버튼을 누르십시오.

- SIS는 패키지 애플 리케이션을위한 환경은 가까이있다
  
스크립트 셸 환경, 스크립트 셸 이후 더 이상
  
특별한 경우지만, 그냥 일반적인 응용 프로그램이 사용하는 패키지
  
Ensymble 도구입니다. 이것은 쉽게 응용 프로그램을 테스트해야합니다.

- PyS60 확장 모듈 소켓 및 캘린더는 btsocket로 이름이 변경 아르
  
e32calender 파이썬 코어 모듈과 충돌하는 이름으로 인해.
  
포장 모드 pys60과 pycore가에 ensymble 도구를 제공했습니다
  
PyS601.4.x 바이너리와 호환성을 유지합니다. 기존 스크립트
  
그것은 패키지되어있는 경우 이러한 확장 모듈에 의존을 수정할 필요가 없다
  
pys60 모드.

- SIS는 패키지 애플 리케이션이 지금보다 강력한 위치 :

  
- 런타임이없는 경우 그리고 당신은 응용 프로그램을 실행하려고
    
인간의 판독 오류 메시지가 대신 표시됩니다
    
응용 프로그램 직전처럼 시작하는 데 실패.

  
- 응용 프로그램이 시작할에 추적을 예외를 제기하는 경우
    
금연 응용 프로그램의 대신 화면에 출력되는
    
자동으로.

  
- 응용 프로그램은 기본 텍스트 단지처럼 콘솔
    
스크립트 셸 환경 때문에 지문을 사용하여 텍스트를 인쇄
    
진술 패키지 애플 리케이션과 스크립트 SIS는에서 같은 방식으로 동작
    
껍질.

- 3.2 장치에 대한 액세스는 번거로움을 로그인하지 않고도 상자 밖으로 GPS를!
  
S60를 3.2 장치는 현재 위치 기능을위한 허가 이후
  
자체 서명된 응용 프로그램은 그 기능은 지금은 기본적으로 활성화되어
  
3.2 빌드.

- 파이썬 런타임과의 uid PythonScriptShell가 변경되었습니다.

- PythonScriptShell의 스크립트 디렉터리는 C에서 변경 : \ 파이썬
  
을 C : \ 데이터 \ 파이썬 \

- 1.4.x 및 1.9.1 파이썬 런타임의 공존, 바이너리 지원하기 위해
  
후자의 버전 및 ''251_ 접두사가 붙은 아르 site.py에서 가져오기 후크입니다
  
이진 개칭 찾아 수정했습니다.

알려진 문제
============
1. 문제는 소수 구분 기호와 함께 휴대 전화의 로케일 십진수를 사용하는 경우
   
구분 이외 ('.') 점
2. time.clock ()이 예상대로 작동하지 않습니다.
3. 종료 키는 raw_input 응용 프로그램에 대해 보류중인 경우 예상대로 작동하지 않는다
   
s60ui 프로필을 사용하여 포장
4. 응용 프로그램의 전용 디렉토리 아래 가져오기 모듈이 실패합니다.
   
이 문제에 대한 해결 방법은 아래의 디렉토리에 모듈을 포장입니다
   
\ 데이터 \ 파이썬과 sys.path으로이 디렉터리 경로를 포함하기 전에
   
모듈을 가져오는. Ensymlbe이야 - extrasdir 옵션 장소로 사용할 수 있습니다
   
필요한 디렉토리 아래에있는 모듈.

   
예를 들면 :
   
) 디렉토리에 default.py 곳 "루트 \ default.py"
   
b)는 루트 \ 엑스트라 "에 종속 모듈 장소 \ 데이터 \ 파이썬 \
   
광고) default.py 시스 경로를 업데이 트에
      
수입 시스
      
sys.path.append (는 "C : \ \ 데이터 \ \ 파이썬")
   
d)에 ensymble py2sis 루트 - extrasdir = 엑스트라
      
어디에 "루트"는 default.py 및 "엑스트라"를 포함하는 디렉토리입니다
      
디렉토리. "엑스트라"디렉토리 아래에 필요한 모듈을 포함
      
디렉토리 트리를 필요합니다.

참조 자세한 내용은 파이썬 문서의 "알려진 문제"절을 참조하십시오.

피드백
========

버그 : 버그 리포트는 S60의 버그에 대한 프로젝트 파이썬을 통해 제출되어야합니다
추적기 garage.maemo.org에
은 https : / / 발생 garage.maemo.org / 추적 / = 3201을 atid & group_id = 854 & func = 찾아보기

기능 요청 : 기능 요청이 프로젝트를 통해 제출되어야합니다
garage.maemo.org에 S60를 특징 요청 트래 커에 대한 파이썬
은 https : / / 발생 garage.maemo.org / 추적 / = 3204을 atid & group_id = 854 & func = 찾아보기

참조 자세한 내용은 파이썬 설명서의 "버그보고"절을 참조하십시오.

표준 라이브러리 모듈에 대한 변경 사항 :
====================================

파이썬 2.5.4 소스 변경 사항에 대한 간단한 요약은 작업을 진행하게하는
심비안 :

- 변경 PyAPI_DATA의 정의와 모든 파이썬 헤더 파일
   
어떤 DLL에 데이터 내보내기가로서의 새로운 양식을 사용하려면 이전 PyAPI_DATA를 사용
   
심비안에서 지원되지 않습니다. 해결 방법은 그 수익을 기능을 가지고있다
   
데이터 및 이러한 함수를 만들어 호출을 숨기려면 그 매크로에 대한 포인터.
   
이것은 매크로 EXPORT_DATA_AS_FUNCTIONS가 정의되었을 때 활성화됩니다.

- 완료 오버플로우가 정상적으로 수표를 스택 스택 일으키는 recursions를 처리하려면
  
더 자주.

- 바이트 컴파일된 파일의 생성 장애는 파이썬 모듈이로드되는 경우

- 심비안 플랫폼에 가치를 1e49 제한 정밀도보다 큰 28
  
어느 이상이 공황 User24와 통역사가 중단됩니다. 그래서 수표 추가됨
  
그 OverflowError는 정밀도와 1e49보다 큰 가치를 증가합니다
  
큰 28 이상.

- 수정된 파이썬의 핵심 메모리 API는이 매크로를 정의 그래서 어떤 수
  
사용자 정의 malloc / realloc / 무료 기능을 설정하는 데 사용할 수 있습니다.

- 파이썬 심비안에서 지원되지 않은 모듈에 대한 회귀 테스트 스위트,
  
테스트 자체 플랫폼 검사를 추가하여 사용 중지되었습니다. 한계가 있었다
  
그리고 스택 거대한이 없습니다다고 생각했다 실패한 테스트에 감소
  
와 오버플로 오류가 스택.

-는 POSIX 스레드 TLS를 API의 위에 TLS를 파이썬 API의 구현.
  
또한 확장 모듈 등록을 제공 PyThread_AtExit를 추가 그들의
  
어떤 함수 정리 자원 스레드 출구.

- 새로운 예외 SymbianError는 심비안 에러를 설정하는 데 사용되는 추가됩니다.

- dynload_shlib은 해당 서수 1 함수를로드 수정
  
초기화 함수 (심비안 함수를 식별하는 순서를 나타내는 숫자를 사용합니다.)

- 기본 파일 시스템 인코딩을 'UTF - 8을'설정

- socketmodule이 getaddrinfo 관련 OpenC 버그를 해결하는 패치입니다.

- site.py과 pyconfig.h 별도의 복사본이 심비안 디렉토리에 유지
  
이러한 파일에 한 변경은 심비안 플랫폼 적용으로

- 내장 및 PYDs으로 코어 파이썬 모듈의 분류를 지정
  
심비안 \ src에있는 modules.cfg 파일 인치 이 파일에 의해 구문 분석
  
생성하고 수정 개인 확장자를 module_config_parser.py
  
그리고 파이썬 DLL은 파일을 빌드합니다. 사소한 변경 사항은 어떤 모듈 '초기화를 완료했다
  
기능과 헤더 PYDs로 구축 촉진하기 위하여.

- 1.4.x 및 1.9.0 파이썬 런타임의 공존, 바이너리 지원하기 위해
  
후자의 버전 및 ''251_ 접두사가 붙은 아르 site.py에서 가져오기 후크입니다
  
이진 개칭 찾아 수정했습니다.

- 파이썬 코어 modsupport.c과 getargs.c는 va_list의를 지원하는 패치되는 파일
  
gcce.h에 정의된 구조 정의


저작 권자 (c) 2004에서 2010 사이 노키아 주식 회사. 노키아와 노키아 연결하는 사람들입니다
노키아 Corporation의 등록 상표입니다.




===============================================
Python for S60 2.0.0 RELEASE NOTES, 11.02.2010
===============================================

Product Description
===================

Python for S60 (hereafter PyS60) is intended for developers looking to create
programs that use the native features and resources of the S60 phones, using the
Python programming language.

About this release
==================

This is the new 2.0.0 final release of PyS60. This release is intended
only for S60 3rd edition, S60 3rd edition FP1, S60 3rd edition FP2 and
S60 5th edition devices.

Note on versioning: The versioning scheme in PyS60 releases is such that the
releases with an even minor version (1.0.x, 1.2.x ...) are "stable" and releases
with an odd minor version (1.1.x, 1.3.x ...) are "development" releases.

What is new when compared with PyS60 1.9.7?
-------------------------------------------
- Repeat support in 4-way directional pad
- Lot of memory leaks in the interpreter code is fixed.
- appuifw.app.track_allocations can be set if the interpreter should track all
  memory allocations and then free the memory which was not explicitly released
  before application exit. To debug memory leaks in 3rd party extension
  modules set the value to false.
- All the Pyds that have zero UID will be assigned with the applications UID at the time of packaging.
  As a result, Python applications can now be symbian signed. This opens the door for submitting Python applications to OVI Store.
- Pdf documentation is available in the installer/archive.
- API cleanup in the SensorFW module.
- On the below mentioned devices Python runtime and its dependencies will be installed automatically
  when the Python applications is started.    
  6220 classic, N86 8 MP, N85, 6720 classic, 6730 classic, N96, 5730 XpressMusic, N78, 5630 XpressMusic,
  E52, E55, 6710 Navigator, E75, N79, 5800 XpressMusic, 5530 XpressMusic, 5230, X6 and N97 mini   

Feature requests:
-----------------
3792 - Python Runtime and application sis can be on different drives. The limitation of both should be installed on the same drive is eliminated.

Corrected defects:
------------------
4345 - Missing (platform) functionality on ensymble/Application packager: The 2nd point in the bug description is fixed
3935 - appuifw.Icon sample code refers to non-existing file [doc error]

What is new when compared with PyS60 1.9.6?
-------------------------------------------
- Touch support added for GLCanvas UI Control. Directional pad is displayed
  by default on touch enabled devices. A sample application - gles_touch_demo.py
  is added to ScriptShell which demonstrates the functionality.

- Two new APIs are added to canvas - begin_redraw and end_redraw. These can be
  used to instruct the window server to enable redraw drawing on the canvas UI
  control. Please refer the documentation (Section 3.1.10) for more details.

- The multi-selection listbox has been modified such that the dialog
  for the option 'checkmark' now has 'Options' and 'Back' as its left and right
  softkeys respectively. The 'Options' has Mark/Unmark entry that can be used
  to select and de-select respectively. The 'Back' softkey returns the
  current state of the listbox based on the selected items.

- 4-way directional pad support in landscape mode
   
- Different flavors of Scriptshell application can coexist on the device.

- Scribble application improvements:
  - Performance improvements by using API's begin_redraw and end_redraw.
  - The drawing area is retained between landscape and portrait
    modes as the toolbar shifts to accommodate for this change.
  - Pen width can be selected from a list of predefined values.

- PyS60 document is available online on maemo.garage
  http://pys60.garage.maemo.org/doc/

Corrected defects:
------------------
4251 - The compression type for the dll and exe files for Python is shown
       as Deflate instead of Byte-pair.
4313 - Scrollbar visible afterwards, should not be there
4338 - Multiple lisbox objects decrease scroll performance
4349 - time.mktime() taking too much time to execute

What is new when compared with PyS60 1.9.5?
-------------------------------------------
- Support for a virtual 4-way directional pad is added for Canvas and text
  widgets. This D-Pad is displayed at the bottom of the screen and this
  feauture is enabled by default on touch enabled devices. Currently, this is
  supported only in the portrait mode and landscape support will be available
  in a future release.
  The 'full_max' mode is invalidated by this change and is removed in this
  release.

- The modules in the base runtime is more refined and hence the size of
  application SIS, created using PyS60 Application Packager is reduced.

- A new chapter is added in the PyS60 documentation (Extending and Embedding
  PyS60), that is an end-to-end tutorial for creating 3rd party extention
  modules and distributing them.

Corrected defects:
------------------
3223 - Floating point formatting/parsing routines on this platform are imprecise
4078 - socket.access_points() returns iapid 0 for lots of entries
4106 - Problems exiting standalone apps
4185 - Calendar module returns end time with time zone offset added to Unix time
4186 - Using rollback in calendar module returns error
4198 - Screen orientation remains landscape after exit, while device was
       portrait all the time
4215 - default.py cannot load .pyc files
4216 - sys.exit() doesn't exit Python

What is new when compared with PyS60 1.9.4?
-------------------------------------------

- e32.s60_version_info is now modified to do a dynamic fetch and return of S60
  version information, instead of returning the version information configured
  at the compile time.
- Default heapsize for PyS60 applications is increased to 100k,4M from 4k,1M
- An option "Continue with missing dependencies" is added to packaging tool.
  Enabling this option will display the missing dependencies as warnings and
  continue with SIS generation. Otherwise the packaging is strict. Missing
  dependencies are displayed as errors and SIS generation is aborted.

Feature requests:
-----------------
3261 - Add option to convert to bytecode before py2sis
3298 - appuifw listbox now sports a scrollbar

Corrected defects:
------------------
3228 - time.clock() does not work as expected.
3784 - Python shell file listing in reverse alphabetical order
3788 - uninstall_Python script for SDK has a leading \ in path
3934 - appuifw.Icon creates only grey boxes
3938 - Listbox scrolling off-by-one with touch
4006 - Fake selection problem when sliding quickly your fingers over a list
       with two lines per raw (XM 5800)
4007 - Lists with one raw per item are generating a type_error when sliding
       my finger from top to down
4013 - relates to 1.9.4. !! returns wrong S60 OS version number
4016 - ZeroDivisionError running ball.py in 1.9.4

What is new when compared with PyS60 1.9.3?
-------------------------------------------

- A single Nokia signed runtime package which can be installed on all S60 3rd ED
  and above devices is available. The actual size of the runtime is ~1MB, but due
  to the embedded OpenC sis and Platform Service sis, the size is increased to
  2.8MB. The runtime includes only the most essential modules. The Rest of the
  modules are available with the application packager tool.

- Improved version of application packager tool. The PyS60 application packager
  now scans the Python application being packaged and picks up the missing
  Python modules on which the application is dependent and packages them along
  with the application files. Refer Chapter 7. "Module Repository" in the
  PyS60 Documentation for more details.

- Easier runtime deployment: Python runtime and its dependent components can be
  installed by just running any Python application packaged using 1.9.4
  application packager. This feature is available only from S60 3rd edition FP2
  devices onwards and also these devices should have been updated with the
  latest firmware.

- Two new APIs are added to the socket module - access_points() &
  set_default_access_point() which have similar functionality to the APIs
  present in btsocket module.

- Two new APIs are added to e32 module - get_capabilities() and
  has_capabilities(). The former can be used to get the capabilities, the
  application has been signed with, and the latter to check if a given list of
  capabilities is granted to the application or not.

  Note: The capabilities of scriptshell are displayed on startup using the
  get_capabilities() API.

- Added a new mode to appuifw.app.screen - 'full_max' which can be used to
  achieve fullscreen on devices that don't have Left Soft Key and Right Soft
  Key(e.g.: Nokia 5800). Setting the screen to 'full' will translate to
  'large' mode on these devices.

- The prefix to the binaries of 1.9.x to support co-existence with 1.4.x
  runtime, has been changed from '251_' to 'kf_'.

Corrected defects:
------------------
3368: Importing modules under application's private directory fails.
3841: socket vs. btsocket interoperability

What is new when compared with PyS60 1.9.2?
-------------------------------------------
- Touch event support is added to appuifw Canvas. An API is added to appuifw
  module, touch_enabled() for checking if the device supports touch input.

- scribble application developed using PyS60 touch feature is available in the
  installer.

- This release includes a new extension module, scriptext. This is an enabler for
  using S60 Platform Service APIs that were introduced in the S60 5th Edition
  and back ported on S60 3rd edition FP2, from Python. It supports services like
  Application Manager, Calendar, Contacts, Landmarks, Location, Logging,
  Messaging, Media Management, Sensors and Sys Info. Refer scriptext module
  documentation for the usage and the convention for accessing the platform
  Service API interfaces is subjected to change.

- Easier runtime deployment: Python runtime and its dependent components can be
  installed by just running the scriptshell application that comes with 1.9.3
  release. This feature is available only from S60 3rd edition FP2 devices
  onwards and also these devices should have been updated with the latest
  firmware. The easier runtime deployment support will be available with all
  ensymble packaged applications in future releases.

- SSL support for socket is enabled

- Python core is upgraded to 2.5.4

Corrected defects:
------------------
3220: Time and strptime modules fails when the 'Z' format specifier is used
3221: Issue with non-blocking TCP socket
3229: Problem with decimal separator when the phone's locale uses a non dot decimal separator
3388: SSL Client not supported by this Python installation
3631: The packager does not remember the source directory of previous invocation


What is new when compared with PyS60 1.9.1?
-------------------------------------------
- sensor module support for accessing the sensors on the devices that have
  S60 Sensor Framework libraries. This module's API compatibility between 1.9.x
  versions isn't guaranteed until 2.0. It won't be broken without good reason,
  but it can happen. Refer to the sensor-module-specifications.doc available
  from the installer for more details.

- Reduction in the installer size!
  The application packager GUI is now based on Tkinter, hence PyQt setup is
  removed from the windows installer.

- The UID of PythonRuntime has changed from '0xF0201514' to '0xE0201514'

- PyS60 Application Packager is now based on ensymble 0.28

What is new when compared with PyS60 1.9.0?
-------------------------------------------
- Better interpreter startup and sis installation time!

- All the Python files in the runtime sis are compiled into .pyc files and
  included in a zip file. sys.path is updated with the path of this zip file.
  This reduced the interpreter startup time considerably.

- A more generic error message is displayed when trying to load an application
  without the PyS60 Dependencies installed.

- Support for building just a <subsystem> is provided. Refer build, build_emu,
  build_device help of setup.py

- Unlike 1.4.x, a single SDK zip contains both gcce and armv5 link libraries.
  Separate SDK zips are provided for 3rdEd, 3rdEdFP1 and 3rdEdFP2.

- The default mode of ensymble py2sis command is changed to 'pycore'. All
  scripts which refer to pys60 modules socket and calendar should use the new
  names - btsocket and e32calendar to use the S60 functionality in pycore mode.
  Also renamed "Prioritize PyS60 module library" to "1.4.x compatibility mode"
  on the UI of application packager.

Corrected defects:
------------------

3230: Problems with applications packaged with console profile and PyS60 mode.
3317: N70 is included in the supported device list in the Getting Started Guide,
      even though it's a 2ndEdFP2 device

What is new when compared with PyS60 1.4.5?
===========================================

- Python 2.5.1 core, with much better compliance to the standard
  Python than before. Most of the modules in the standard library are
  included - basically almost all that make sense on this platform and
  even some that don't (for regression testing purposes). This
  includes such goodies as the Expat XML parser, ftplib, smtplib,
  urllib2, xmlrpclib, SimpleHTTPServer, cPickle, asyncore and
  especially the much more compliant socket module. Garbage collection
  is enabled, so there is no need to dismantle reference cycles
  anymore.

- The 1.9.1 release improves things with the new all-in-one installer that gives
  you the packaging tool with GUI and a README file, the documentation and the
  SIS files needed for development on Windows platform, in a single package.
  Similarly for Linux/Mac platforms, an all-in-one archive is provided that
  includes all the contents provided by the installer except the GUI for the
  packaging tool.

- Packaging Python applications to SIS files is much easier. The
  user-friendly Ensymble tool is now the official packaging tool, and
  we've made a GUI for it so packaging your application is now just a
  button press away.

- The environment for SIS packaged applications is closer to the
  script shell environment, since the script shell is no longer a
  special case but just a regular application packaged using the
  Ensymble tool. This should make testing your application easier.

- PyS60 extension modules socket and calender are renamed to btsocket and
  e32calender due to the conflicting names with Python core modules. Two
  packaging modes pys60 and pycore have been provided with ensymble tool to
  maintain the compatibility with PyS601.4.x binaries. The existing scripts
  dependent on these extension modules need not be modified if it is packaged
  with pys60 mode.

- SIS packaged applications are now more robust:

  - If the runtime is missing and you try to launch the application, a
    human readable error message is displayed instead of the
    application just failing to start, like before.

  - If the application raises an exception on startup, the traceback
    is printed on the screen instead of the application quitting
    silently.

  - The applications have a default text console just like in the
    script shell environment, so printing text using the print
    statement works the same way in SIS packaged apps and the script
    shell.

- On 3.2 devices, access GPS out of the box without signing hassle!
  Since S60 3.2 devices now permit the Location capability for
  self-signed applications, that capability is now enabled by default
  in the 3.2 builds.

- The UID of Python runtime and PythonScriptShell has changed.

- The script directory of PythonScriptShell is changed from C:\python
  to C:\data\python\

- To support co-existence of 1.4.x and 1.9.1 Python runtimes, the binaries of
  the latter version are prefixed with '251_' and the import hook in site.py is
  modified to look for the renamed binary.

Known issues
============
1. Problem with decimal separator when the phone's locale uses a decimal
   separator other than dot ('.')
2. time.clock() does not work as expected.
3. Exit key does not work as expected when raw_input is pending for applications
   packaged using s60ui profile
4. Importing modules under application's private directory fails.
   A work around for this problem is packaging the modules to a directory under
   \data\python and include this directory path into sys.path before
   importing the modules. Ensymlbe's --extrasdir option can be used to place
   the modules under the required directory.

   For example :
   a)Place default.py in the directory "root\default.py"
   b)Place dependent modules in "root\extras\data\python\
   c)In default.py update the sys path
      import sys
      sys.path.append("c:\\data\\python")
   d)ensymble py2sis root --extrasdir=extras
      where "root" is the directory which contains default.py and "extras"
      directory. "extras" directory contains the required modules under the
      required directory tree.

Refer the "Known Issues" section of the Python documentation for more details.

Feedback
========

Bugs: Bug reports should be submitted via the project Python for S60 Bug
Tracker on garage.maemo.org
https://garage.maemo.org/tracker/?atid=3201&group_id=854&func=browse

Feature Requests: Feature requests should be submitted via the project
Python for S60 Feature Requests Tracker on garage.maemo.org
https://garage.maemo.org/tracker/?atid=3204&group_id=854&func=browse

Refer the "Reporting Bugs" section of the Python documentation for more details.

Changes to standard library modules:
====================================

A brief summary of changes made to Python 2.5.4 source to get it working on
Symbian:

-  Changed the definition of the PyAPI_DATA and all the python header files
   which used the earlier PyAPI_DATA to use its new form as DLL data export is
   not supported on Symbian. A workaround is to have functions that return
   pointers to the data and macros that hide the calls made to these functions.
   This is enabled when the macro EXPORT_DATA_AS_FUNCTIONS is defined.

- To handle recursions causing stack overflows gracefully stack checks are done
  more frequently.

- Disabled creation of byte compiled files when python modules are loaded

- On the Symbian platform a value greater than 1e49 limits the precision to 28
  above which it crashes the interpreter with panic User24. Added a check so
  that OverflowError is raised for values greater than 1e49 with precision
  greater than 28.

- Modified python's core memory APIs so that it defines macros which can
  be used to set custom malloc/realloc/free functions.

- Python regression suite tests for modules that were not supported on Symbian,
  were disabled by adding a platform check in the test itself. Limits were
  reduced in tests which assumed a huge stack was available and were failing
  with stack overflow error.

- Implementation of the Python TLS API on top of the POSIX threads TLS API.
  Also added PyThread_AtExit which provides extension modules to register their
  functions which cleanup resources at thread exit.

- A new exception SymbianError is added which is used to set Symbian errors.

- dynload_shlib is modified to load the function at ordinal 1 which corresponds
  to the init function (Symbian uses ordinal numbers to identify functions).

- The default file system encoding is set to 'utf-8'

- socketmodule is patched to workaround the OpenC bug related to getaddrinfo.

- A separate copy of site.py and pyconfig.h is maintained in Symbian directory
  as the changes done to these files is applicable only to Symbian platform

- The classification of core python modules into builtin and PYDs is specified
  in the modules.cfg file in Symbian\src. This file is parsed by
  module_config_parser.py which generates and modifies the individual extension
  and python dll build files. Minor changes were done to some modules' init
  function and headers to facilitate building them as PYDs.

- To support co-existence of 1.4.x and 1.9.0 Python runtimes, the binaries of
  the latter version are prefixed with '251_' and the import hook in site.py is
  modified to look for the renamed binary.

- Python core files modsupport.c and getargs.c are patched to support va_list's
  structure definition which is defined in gcce.h


Copyright (c) 2004-2010 Nokia Corporation. Nokia and Nokia Connecting People are
registered trademarks of Nokia Corporation.


이제 조금 시간이 날 것 같아서
파이썬을 공부해보려고 한다.
마침 노키아 5800을 올해 초부터 사용하고 있었는데,
이제야 기회가 좀 될 것 같다.
공부지... 뭐 거창한 건 아니다.
소스를 참고해서 고치는 수준인지라...
뭐 불편한 거 긁어서 사용하고 만족하는 수준이 될 것 같다.



이러다가 작품 하나 나오면.... ^^;

장혜식
사이트 관리자


가입:
올린 글: 1380

올리기올려짐: 2006 7월 30 1:46 pm    주제:  

저도 3년 전에 lua를 보고서는, 뭔가 무척 만들고 싶긴 한데, 할 게 없어서 좌절했던 기억이 있어서 동감이 갑니다. 심지어 WoW나 HOMM5 같은 게임에서는 게이머들이 게임때문에 lua 프로그래밍을 배울 정도가 되었지만 저는 해 볼게 없더군요. Smile

파이썬에서 zope와 wxpython이 차지하는 비율은 아주 적습니다. 보통 윈도우용 GUI 프로그램이나 웹 프로그래밍을 많이 하신다면, 그런 프로그램 외의 다른 프로그램들이 얼마나 있겠냐 싶으시겠지만, 대부분의 파이썬 프로그램들은 웹이나 GUI가 주가 되는 것이 아닙니다.

예를 들어서, 파이썬을 쓰는 유명한 사례 몇개를 소개해 드리자면:

  • 유명한 가상머신 소프트웨어인 Xen에서 관리/제어 콘솔이 파이썬으로 되어있습니다.
  • 오픈소스 메일링 리스트 중에 가장 널리 쓰이는 mailman이 파이썬으로 되어 있습니다.
  • 서비스용 메일링 리스트 중에 가장 널리 쓰이는 Google Groups가 파이썬으로 되어 있습니다.
  • 유럽의 Eve Online이나 NCsoft의 태뷸라 라사라는 온라인 게임의 서버가 파이썬으로 되어 있습니다.
  • 젠투 리눅스의 패키징 시스템이 파이썬으로 되어 있습니다.
  • 그 외의 많은 오픈소스 시스템과 MacOS X 에서 파이썬이 제어 스크립트로 널리 쓰입니다.
  • 노키아와 삼성은 파이썬이 내장된 전화기를 출시하기도 했습니다. (사용자가 프로그래밍도 가능)
  • 많은 화학/생물정보학 연구기관에서 파이썬을 이용해서 작업을 제어하고 자료를 분석합니다.
  • 세계 최대 증권시장인 뉴욕증권시장(NYSE)에서는 장내 사용자용 콘솔을 파이썬으로 만들었습니다.
  • 국내 대형 ISP 대부분이 파이썬으로 된 인증 서버를 부분적으로라도 조금씩 쓰고 있습니다.
  • 한국에서 가장 큰 도메인 네임 서버 네트워크가 파이썬으로 제어/모니터링/업데이트됩니다.
  • 요즘 분산 다운로드 프로그램 중 가장 잘 나가는 bittorrent가 파이썬으로 되어 있습니다.
  • 유명 네트워크 장비 회사 몇군데에서는 확장성 있는 서비스를 위해서 파이썬으로 작성된 플러그인을 붙일 수 있도록 제공하고 있습니다.
  • NASA에서는 장비들의 부품 및 설계도 관리를 위해서 파이썬으로 애플리케이션을 만들어서 사용합니다.


이런 용례가 있습니다. 이런 곳에서 힌트를 얻으셔서, 자기 동기부여를 하시면 새로운 분야의 아이디어도 얻으실 수도 있고 좋지 않을까 생각됩니다.

윈도우에서 GUI 실행이 그렇게 복잡한 것은 툴이 상용화가 된 것이 드물고, 오픈소스쪽에서는 윈도우 개발자가 그렇지 많지 않기 때문입니다. Delphi같이 사용자가 많은 상용 프로그램들은 GUI에 잔신경을 많이 쓸 수 있기 때문에 좋은 편리한 환경을 쉽게 제공 할 수 있지만, 파이썬에서는 코어에서 제공할 수 있는 인력이 한계가 있기 때문에, GUI 툴에 대해서는 써드파티에 맡길 수 밖에 없습니다. 굳이 찾으시려면 Boa-Constructor이나 wxDesigner같은 몇가지 도구가 있기는 한데, 상용 GUI 디자인 도구들에 비하면 별로 좋지 않습니다.

따라서, GUI 프로그래밍을 파이썬으로 하시려고 하면, 이런 불편함을 감수하고 하시거나, 파이썬 GUI 프로그래밍이 비교적 어렵지 않은 다른 환경 (KDE나 GNOME)을 타겟으로 하시는 것이 더 좋을 듯 합니다.

Zope에 대해서는 국내에서 한국어 문서가 몇번 나온 적이 있긴 하지만, Zope가 지금은 또 많이 바뀐 상태이기 때문에, 옛날 문서를 그대로 참조하기는 힘듭니다. (Zope 3에서 구조가 완전히 바닥부터 바뀜) 파이썬과 관련한 한국어 문서가 굉장히 부족한 편이라서 처음 입문하시는 분들께는 여러모로 난감한 점이 많이 있습니다. 그래서 언젠가는 번역물이 많아져서 한국어로도 모든 것을 배울 수 있으면 좋기를 기대하고 있지만, 현재로써는 영어로 된 문서를 보는 방법밖에 없습니다.

파이썬이 쉽다는 말은 아무래도 프로그래밍 언어 자체와 기본적인 몇가지 제공되는 라이브러리에 해당하는 말입니다. MacOS X에서 간단한 UI 스크립팅을 하는데 절대로 파이썬이 애플스크립트보다 쉽지 않고, 윈도우에서 간단한 UI 를 작성하는데 비주얼베이식보다 쉬운편이 아닙니다. 이런 특정 목적의 프로그래밍이 아니라면 일반적인 부분에서는 파이썬이 상당히 쉽습니다.

그렇지만, 주로 하시는 업무가 VB 윈도우용 GUI 프로그래밍이라던지, 엠베디드 환경에서 2KB 미만의 메모리밖에 없는 곳에서 돌아가는 환경을 다루는 경우라면 파이썬이 쉽다는 말은 남의 얘기일 수 밖에 없겠죠.
_________________
http://me2day.net/hyeshik


비단구렁이(Python) 

학명
Pythonidae의 일부
분류
척색동물문 > 파충강 > 유린목 > 비단구렁이과
번식방법
난생
활동시간
먹이
새, 도마뱀, 쥐, 뱀, 개구리, 악어
천적
사람, 맹금류, 포유류
분포지역
뉴기니아, 인도네시아 오스트레일리아의 북쪽
서식장소
사막, 열대우림, 습지, 나무위

정의, 어원 및 같은 이름

유린목 보아과에 속하는 뱀.
python은 그리스 신화에서 땅의 여신 가기아의 아들이며 용의 형상이다.

생김새

체색은 일반적으로 초록색
크기 0.5~10.1m. 몸무게 0.14~145kg
대부분의 비단구렁이는 환경에 몸을 숨길 수 있도록 줄무늬나 반점과 같은 패턴이 있다. 비단구렁이 종의 3분의 1이 패턴이 없거나 희미하다.

생태정보

초산연령 3년. 새끼수(산란수) pygmy python은 10개, ball python

특징

비단구렁이는 사막, 열대우림, 습지 등 다양한 서식지에서 살고 있다. 초록나무비단구렁이(Green Tree Python, Morelia viridis)는 완전히 나무 위 생활을 하며 땅보다는 나뭇가지위에 똬리를 틀고 있는 것을 좋아한다. 번식기 부터 부화할 때까지 먹이를 먹고 물을 섭취하는 모든 활동은 나무위에서 이루어진다. 대부분의 비단구렁이가 야행성이지만 이동하거나 햇볓을 쬐기 위해 낮에도 움직인다. 자연에서 새, 도마뱀이나 소형 포유류를 먹는다. 이미 언급한 것처럼, 새를 먹는 종류이기 때문에 머리 크기에 비해서 매우 긴 이빨을 가지고 있다. 이 긴 이빨을 가지고 깃털을 뚫고 들어가서 먹이를 단단히 잡을 수 있게 된다. 붙잡힌 먹이는 다른 비단구렁이들처럼 붙잡아서 조이는 방식으로 먹이를 다룬다. 사막, 열대우림, 습지, 나무위등에 서식한다.

독이 없고 먹이를 졸라서 질식시켜 죽인다.

피트기관 : 모사류와 왕뱀류, 비단구렁이류들은 특화된 자외선 감지기관인 피트(pit)기관을 가지고 있다. 살모사들의 피트는 머리의 양옆, 코와 눈 사이에 있다. 비단구렁이류와 왕뱀류들은 뺨 쪽에 있는 비늘에 있다. 이 피트기관은 0.002℃(또는 0.001)의 온도변화도 감지해 낼 수 있어서 아주 어두운 곳에서도 먹이를 정확하게 찾아낼 수 있다.

뱀의 재미있는 특징들. : 뱀아목의 동물들은 사지가 없고 먹이를 통째로 삼킨다. 입을 벌릴 수 있도록 턱이 분리될 수 있도록 특수화 되어 있고. 눈꺼풀이 없다. 눈은 투명비늘로 덮여 있으며 혀는 포크형태로 되어 있다. 귓구멍이 없으며 청력이 약해 다른 감각이 발달되어 있다. 다른 도마뱀류처럼 꼬리가 떨어지지 않는다. 보아류는 새끼를 낳지만 비단구렁이류는 알을 낳는다. 비단구렁이의 수컷의 측면 비늘 중 큰 비늘이 있는 반면 암컷은 큰 비늘이 없다. 먹잇감을 꽉 조인 상태로 질식시켜 잡아먹는데, 특히, 살아있는 먹이가 숨을 내뱉을 때 더욱 조인다.그리고 또한, 심장에 압박을 주어 혈액순환을 막는다. 그러면, 결국 심장, 뇌, 장기들의 세포가 손상되고 먹이동물은 죽게된다.

알을 지켜요. : 비단구렁이는 알을 낳고 부화할때까지 알과 함께 지낸다. 알을 낳으면 암컷은 알을 감싸고 있으며, 품는 중에 체온을 높일 수 있다. 암컷은 근육을 리드미컬하게 움직여 근육을 수축시킴으로써 몸의 대사율을 높여 열을 만든다. 어떤 비단구렁이들은 알을 품다가 잠시 햇볓으로 가 태양으로부터 몸으로 열을 흡수해 돌아와 그 열기로 알을 다시 따뜻하게 한다.

초록나무비단구렁이(Green Tree Python, Morelia viridis)의 특징 : 보통 10 ~14일만에 먹이를 먹는데 다른 비단구렁이류들보다 더 자주 먹는다. 번식중인 암컷은 5개월이상 먹이를 먹지 않는다. 수컷은 6개월 이상 먹이를 먹는 않는 것으로 유명하다. 이 뱀은 비교적 활동적이지 않기 때문에 비만이 되지 않도록 주의 깊게 관찰해야 한다.

이 뱀은 특히 공격적이고, 성질이 나쁘다는 명성을 얻고 있지만, 사육 상태의 뱀들은 자극하지 않으면 순하다. 초록나무비단구렁이는 가만히 나뭇가지위에 앉아있는 뱀이다. 결과적으로 다른 동물들보다 케이지 크기가 크지 않아도 된다. 케이지는 60X 60 X 60 cm이고, 사육 상태에서 태어난 새끼는 기르기 쉽다. 하루에 10시간씩 완전한 스텍트럼이 나오는 전구를 켜주어야 한다. 케이지를 청소하거나 뱀을 만져야 할 때는 나뭇가지를 이용하여 동물을 이동시킬 수 있다. 이 뱀은 나무위 생활에 완전히 적응한 동물이기 때문에 나무에서 뱀을 떼어

 

티스토리 툴바