python3.4å¦ä¹ ç¬è®°(å) 3.xå2.xçåºå«
å¨2.xä¸:print htmlï¼3.xä¸å¿
é¡»æ¹æ:print(html)
import urllib2
ImportError: No module named 'urllib2'
å¨python3.xéé¢ï¼ç¨urllib.request代æ¿urllib2
import thread
ImportError: No module named 'thread'
å¨python3.xéé¢ï¼ç¨_thread(å¨åé¢å ä¸ä¸ªä¸å线)代æ¿thread
å¨2.xä¸except Exception,e : 3.xä¸æ¹ä¸ºexcept (Exception):
=================================
printå½æ°
è½ç¶printè¯æ³æ¯Python 3ä¸ä¸ä¸ªå¾å°çæ¹å¨ï¼ä¸åºè¯¥å·²ç»å¹¿ä¸ºäººç¥ï¼ä½ä¾ç¶å¼å¾æä¸ä¸ï¼Python 2ä¸çprintè¯å¥è¢«Python 3ä¸çprint()å½æ°å代ï¼è¿æå³çå¨Python 3ä¸å¿
é¡»ç¨æ¬å·å°éè¦è¾åºç对象æ¬èµ·æ¥ã
å¨Python 2ä¸ä½¿ç¨é¢å¤çæ¬å·ä¹æ¯å¯ä»¥çãä½åè¿æ¥å¨Python 3ä¸æ³ä»¥Python2çå½¢å¼ä¸å¸¦æ¬å·è°ç¨printå½æ°æ¶ï¼ä¼è§¦åSyntaxErrorã
Python 2.7.6
print 'Python', python_version()
print 'Hello, World!'
print('Hello, World!')
print "text", ; print 'print more text on the same line'
è¾åºï¼
Hello, World!
Hello, World!
text print more text on the same line
---------------------------
Python 3.4.1
print('Python', python_version())
print('Hello, World!')
print("some text,", end="")
print(' print more text on the same line')
è¾åºï¼
Hello, World!
some text, print more text on the same line
print 'Hello, World!'
File "<ipython-input-3-139a7c5835bd>", line 1
print 'Hello, World!'
^
SyntaxError: invalid syntax
注æï¼å¨Pythonä¸ï¼å¸¦ä¸å¸¦æ¬å·è¾åºâHello Worldâé½å¾æ£å¸¸ã
ä½å¦æå¨åæ¬å·ä¸åæ¶è¾åºå¤ä¸ªå¯¹è±¡æ¶ï¼å°±ä¼å建ä¸ä¸ªå
ç»ï¼è¿æ¯å 为å¨Python 2ä¸ï¼printæ¯ä¸ä¸ªè¯å¥ï¼èä¸æ¯å½æ°è°ç¨ã
print 'Python', python_version()
print('a', 'b')
print 'a', 'b'
Python 2.7.7
('a', 'b')
a b
---------------------------------
æ´æ°é¤æ³
ç±äºäººä»¬å¸¸å¸¸ä¼å¿½è§Python 3å¨æ´æ°é¤æ³ä¸çæ¹å¨ï¼åéäºä¹ä¸ä¼è§¦åSyntax Errorï¼ï¼æ以å¨ç§»æ¤ä»£ç æå¨Python 2ä¸æ§è¡Python 3ç代ç æ¶ï¼éè¦ç¹å«æ³¨æè¿ä¸ªæ¹å¨ã
æ以ï¼æè¿æ¯ä¼å¨Python 3çèæ¬ä¸å°è¯ç¨float(3)/2æ 3/2.0代æ¿3/2ï¼ä»¥æ¤æ¥é¿å
代ç å¨Python
2ç¯å¢ä¸å¯è½å¯¼è´çé误ï¼æä¸ä¹ç¸åï¼å¨Python 2èæ¬ä¸ç¨from __future__ import divisionæ¥ä½¿ç¨Python
3çé¤æ³ï¼ã
Python 2.7.6
3 / 2 = 1
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0
Python 3.4.1
3 / 2 = 1.5
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0
---------------------------------
Unicode
Python 2æåºäºASCIIçstr()ç±»åï¼å
¶å¯éè¿åç¬çunicode()å½æ°è½¬æunicodeç±»åï¼ä½æ²¡æbyteç±»åã
èå¨Python 3ä¸ï¼ç»äºæäºUnicodeï¼utf-8ï¼å符串ï¼ä»¥å两个åèç±»ï¼bytesåbytearraysã
Python 2.7.6
print type(unicode('this is like a python3 str type'))
<type 'unicode'>
print type(b'byte type does not exist')
<type 'str'>
print 'they are really' + b' the same'
they are really the same
print type(bytearray(b'bytearray oddly does exist though'))
<type 'bytearray'>
Python 3.4.1 has <class 'bytes'>
print('and Python', python_version(), end="")
print(' also has', type(bytearray(b'bytearrays')))
and Python 3.4.1 also has <class 'bytearray'>
1
'note that we cannot add a string' + b'bytes for data'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-d3e8942ccf81> in <module>()
----> 1 'note that we cannot add a string' + b'bytes for data'
TypeError: Can't convert 'bytes' object to str implicitly
=================================
python 2.4 ä¸ python 3.0 çæ¯è¾
ä¸ã print ä»è¯å¥å为å½æ°
å: print 1,2+3
æ¹ä¸º: print ( 1,2+3 )
äºãrange ä¸ xrange
å : range( 0, 4 ) ç»æ æ¯ å表 [0,1,2,3 ]
æ¹ä¸ºï¼list( range(0,4) )
å : xrange( 0, 4 ) éç¨äº for 循ç¯çåéæ§å¶
æ¹ä¸ºï¼range(0,4)
ä¸ãå符串
å: å符串以 8-bit å符串åå¨
æ¹ä¸º: å符串以 16-bit Unicode å符串åå¨
åãtry except è¯å¥çåå
å¨2.xä¸except Exception,e : 3.xä¸æ¹ä¸ºexcept (Exception):
äºãæå¼æ件
åï¼ file( ..... )
æ open(.....)
æ¹ä¸ºï¼
åªè½ç¨ open(.....)
å
ãä»é®çå½å
¥ä¸ä¸ªå符串
å: raw_input( "æ示信æ¯" )
æ¹ä¸º: input( "æ示信æ¯" )
ä¸ãbytes æ°æ®ç±»å
A bytes object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 <= x < 256.
bytes å¯ä»¥çææ¯âåèæ°ç»â对象ï¼æ¯ä¸ªå
ç´ æ¯ 8-bit çåèï¼åå¼èå´ 0~255ã
ç±äºå¨ python 3.0ä¸å符串以 unicode ç¼ç åå¨ï¼å½åå
¥äºè¿å¶æ件æ¶ï¼å符串æ æ³ç´æ¥åå
¥ï¼æ读åï¼ï¼å¿
须以æç§æ¹å¼çç¼ç 为åèåºååï¼æ¹å¯åå
¥ã
ï¼ä¸ï¼å符串ç¼ç (encode) 为 bytes
ä¾: s = "å¼ ä¸abc12"
b = s.encode( ç¼ç æ¹å¼)
# b å°±æ¯ bytes ç±»åçæ°æ®
# 常ç¨çç¼ç æ¹å¼ä¸º ï¼ "uft-16" , "utf-8", "gbk", "gb2312", "ascii" , "latin1" ç
# 注 ï¼ å½å符串ä¸è½ç¼ç 为æå®çâç¼ç æ¹å¼âæ¶ï¼ä¼å¼åå¼å¸¸
(äº) bytes 解ç (decode)为å符串
s = "å¼ ä¸abc12"
b = s.encode( "gbk") # å符串 s ç¼ç 为 gbk æ ¼å¼çåèåºå
s1 = b.decode("gbk") # å°åèåºå b以gbkæ ¼å¼ è§£ç 为å符串
# 说æï¼å½åèåºåä¸è½ä»¥æå®çç¼ç æ ¼å¼è§£ç æ¶ä¼å¼åå¼å¸¸
(ä¸ï¼ä½¿ç¨æ¹æ³ä¸¾ä¾
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "å¼ ä¸æåabcd1234"
# -------------------------------
# å¨ python2.4 ä¸æ们å¯ä»¥è¿æ ·åï¼
# f.write( s )
# ä½å¨ python 3.0ä¸ä¼å¼åå¼å¸¸
# -------------------------------
b = s.encode("gbk")
f.write( b )
f.close()
input("?")
读å该æ件çä¾å:
#coding=gbk
f = open("c:\\1234.txt", "rb")
f.seek(0,2) #å®ä½è³æ件尾
n = f.tell() #读åæ件çåèæ°
f.seek(0,0) #éæ°å®ä½è³æ件å¼å§å¤
b = f.read( n )
# ------------------------------
# å¨ python 2.4 ä¸ b æ¯å符串类å
# è¦ python 3.0 ä¸ b æ¯ bytes ç±»å
# å æ¤éè¦ææå®çç¼ç æ¹å¼ç¡®ç
# ------------------------------
s = b.decode("gbk")
print ( s )
# ------------------------------
# å¨ python 2.4 ä¸ å¯ä»¥åä½ print s æ print ( s )
# è¦ python 3.0 ä¸ å¿
é¡»åä½ print ( s )
# ------------------------------
f.close()
input("?")
è¿è¡ååºæ¾ç¤º:
å¼ ä¸æåabcd1234
(å) bytesåºåï¼ä¸ä½å½¢æï¼å
¶å
容æ¯ä¸å¯åçï¼ä¾ï¼
s="ABCD"
b=s.encode("gbk")
print b[0] # æ¾ç¤º 65
b[0] = 66
# æ§è¡è¯¥å¥ï¼åºç°å¼å¸¸: 'bytes' object does not support item assignment
å
«ã chr( K ) ä¸ ord( c )
python 2.4.2以å
chr( K ) å°ç¼ç K 转为å符ï¼Kçèå´æ¯ 0 ~ 255
ord( c ) åå个å符çç¼ç , è¿åå¼çèå´: 0 ~ 255
python 3.0
chr( K ) å°ç¼ç K 转为å符ï¼Kçèå´æ¯ 0 ~ 65535
ord( c ) åå个å符çç¼ç , è¿åå¼çèå´: 0 ~ 65535
ä¹ã é¤æ³è¿ç®ç¬¦
python 2.4.2以å
10/3 ç»æ为 3
python 3.0
10 / 3 ç»æ为 3.3333333333333335
10 // 3 ç»æ为 3
åãåèæ°ç»å¯¹è±¡ --- æ°å¢
(ä¸ï¼ åå§å
a = bytearray( 10 )
# a æ¯ä¸ä¸ªç±å个åèç»æçæ°ç»ï¼å
¶æ¯ä¸ªå
ç´ æ¯ä¸ä¸ªåèï¼ç±»ååç¨ int
# æ¤æ¶ï¼æ¯ä¸ªå
ç´ åå§å¼ä¸º 0
ï¼äºï¼ åèæ°ç» æ¯å¯åç
a = bytearray( 10 )
a[0] = 25
# å¯ä»¥ç¨èµå¼è¯å¥æ´æ¹å
¶å
ç´ ï¼ä½æèµçå¼å¿
é¡»å¨ 0 ~ 255 ä¹é´
(ä¸) åèæ°ç»çåçä»æ¯åèæ°ç»
(å) å符串转å为åèæ°ç»
#coding=gbk
s ="ä½ å¥½"
b = s.encode( "gbk") # å
å°å符串ææç§âGBKâç¼ç æ¹å¼è½¬å为 bytes
c = bytearray( b ) #åå° bytes 转å为 åèæ°ç»
ä¹å¯ä»¥åä½
c = bytearray( "ä½ å¥½", "gbk")
(äº) åèæ°ç»è½¬å为å符串
c = bytearray( 4 )
c[0] = 65 ; c[1]=66; c[2]= 67; c[3]= 68
s = c.decode( "gbk" )
print ( s )
# åºæ¾ç¤ºï¼ ABCD
(å
) åèæ°ç»å¯ç¨äºåå
¥ææ¬æ件
#coding=gbk
f = open("c:\\1234.txt", "wb")
s = "å¼ ä¸æåabcd1234"
# -------------------------------
# å¨ python2.4 ä¸æ们å¯ä»¥è¿æ ·åï¼
# f.write( s )
# ä½å¨ python 3.0ä¸ä¼å¼åå¼å¸¸
# -------------------------------
b = s.encode("gbk")
f.write( b )
c=bytearray( "çäº","gbk")
f.write( c )
f.close()
input("?")
温馨提示:答案为网友推荐,仅供参考