python2 x與3 x的主要區別筆記

2022-04-11 05:01:53 字數 2492 閱讀 5815

#coding:utf-8

'''python3.x新的東西

1,__future__ 模組

2,print函式

python2.x:

print "hello world" #is acceptable in python 2

print x,

python3.x

print ("hello world") # in python 3, print must be followed by ()

print(x,end="")

3,從鍵盤讀取輸入

python2 中有輸入函式兩個版本。 input() 和 raw_input()。如果它被包含在引號 '' 或 "",input() 對待接收到的資料作為字串,否則資料將被視為數字型別。

python3 中 raw_input()函式已被棄用。此外,接收到的輸入資料總是作為字串處理

4,整數除法

在python2,兩個整數的除法的結果會四捨五入到最接近的整數。如:3/2 其結果將顯示 1。 為了獲得乙個浮點除法,分子或分母必須明確為浮點數。因此無論是 3.0/2 或 3/2.0 或 3.0/2.0 將產生1.5 。

python3 計算 3/2 預設結果值為 1.5,這對新手程式設計師更加直觀。

5,unicode表示

python2 裡如果你想將它儲存為 unicode,需要標記為 u 的字串。

python3 中的字串預設儲存為 unicode。在python3,我們有個unicode(utf-8)字串和 2 位元組類:位元組和位元組陣列。

6,xrange()函式已被刪除

7,異常

在 python3,異常引數應以 'as' 關鍵字來宣告。

except myerror, err: # in python2

except myerror as err: #in python 3

8,next() 函式和.next()方法

在python 2,next() 作為生成器物件的乙個方法是允許的。在 python2,next()函式過度產生器物件遍歷也是可以接受的。在python3,但是,next()函式作為生成器方法來中止並引發attributeerror。

gen = (letter for letter in 'hello world') # creates generator object

next(my_generator) #allowed in python 2 and python 3

my_generator.next() #allowed in python 2. raises attributeerror in python 3

9,2to3實用工具

'''print("%d,%s,%.2f"%(10,"asd",2.3456))

print(10,end="")

input("\npress the enter key to exit.") 

abs(-10)

min()

max()

import math

math.ceil(0)ceil()方法函式返回x的值上限 - 小於x的最小整數

math.exp(10)exp()方法返回x的指數冪:e的x次冪

math.fabs()方法/函式返回x的絕對值。雖然類似於abs()函式,但是兩個函式之間有些差異

abs()是乙個內建的函式。 fabs() 在math模組中定義。

fabs() 函式只適用於浮點和整數。abs() 複數也適用。

math.floor() 方法返回x的地板 - 最大但不能大於x的整數。

math.log()方法返回x的自然對數(x>0)。math.log(math.exp(1))==1

math.log10() 方法返回基數為10的x對數(x>0)。int(math.log10(123456))+1

math.pow()

math.sqrt()

import random

random.random()

def cmp(x,y):

return (x>y)-(x>> math.pi

3.141592653589793

>>> math.e

2.718281828459045

>>> 

str.capitalize()

>>> "asdasd".capitalize()

'asdasd'

>>> 

str.decode(encoding='utf-8',errors='strict')

str.encode(encoding='utf-8',errors='strict')

str.find(str, beg=0 end=len(string))

>>> a="abcdefghijklmn"

>>> a.find(a)

0>>> a.find("jk",len("jk"))

9islower()方法檢查字串中所有可大小寫的字元(字母)是否都為小寫字母。

python2 x與3 x除法的區別

v2.2 以前,除 運算子的返回有兩種可能情況,分別是整型和浮點型。運算元的不同,是影響計算結果資料型別的關鍵。以 a b 為例,a b均為整型,則結果返回整型 a b任意乙個是浮點型的話,則結果就是浮點型。python v2.7 3 2,3.0 2,3.0 2.0 1,1.5,1.5 v2.2 以...

python 2 x 與3 x 的區別總結

巨集觀上 2.x 原始碼不規範,混亂,冗餘。3.x 原始碼優美清晰,統一標準,去除了冗餘。預設編碼方式 2.x ascii碼 3.x utf 8 用2.x 處理中文時,需要宣告編碼方式 由於cmd終端預設編碼為gbk,所以宣告為utf 8時,在cmd終端上,中文顯示為亂碼。encoding utf ...

python2 x和3 x的區別

這個星期開始學習python了,因為看的書都是基於python2.x,而且我安裝的是python3.1,所以書上寫的地方好多都不適用於python3.1,特意在google上search了一下3.x和2.x的區別。特此在自己的空間中記錄一下,以備以後查詢方便,也可以分享給想學習python的frie...