Modul __future__
Python 3.x memperkenalkan beberapa Python kata kunci 2-kompatibel dan fitur yang dapat diimpor melalui built-in modul __future__ Python 2. Disarankan untuk menggunakan __future__ impor jika Anda berencana Python dukungan 3.x untuk kode Anda.
Sebagai contoh, jika kita ingin perilaku pembagian integer Python 3.x di Python 2, tambahkan berikut pernyataan impor
from __future__ import division
Fungsi cetak
Perubahan yang paling menonjol dan paling banyak dikenal di Python 3 adalah bagaimana fungsi cetak yang digunakan. Penggunaan parantheses () dengan fungsi print sekarang wajib. Itu opsional di Python 2.
print "Hello World" #is acceptable in Python 2 print ("Hello World") # in Python 3, print must be followed by ()
Cetak () fungsi menyisipkan baris baru pada akhir secara default. Dalam Python 2, dapat ditekan dengan menempatkan ',' di akhir. Di Python 3, "end = ''" menambahkan ruang bukannya baris
print x, # Trailing comma suppresses newline in Python 2 print(x, end=" ") # Appends a space instead of a newline in Python 3
Membaca input dari keyboard
Python 2 memiliki dua versi dari fungsi input. Masukan () dan raw_input (). Input () memperlakukan fungsi menerima data string jika hal ini termasuk dalam tanda kutip '' atau "", jika data diperlakukan sebagai nomor
Di Python 3, raw_input () function sudah ditinggalkan. Selanjutnya, data yang diterima selalu diperlakukan sebagai string
In Python 2 >>> x=input('something:') something:10 #entered data is treated as number >>> x 10 >>> x=input('something:') something:'10' #eentered data is treated as string >>> x '10' >>> x=raw_input("something:") something:10 #entered data is treated as string even without '' >>> x '10' >>> x=raw_input("something:") something:'10' #entered data treated as string including '' >>> x "'10'" In Python 3 >>> x=input("something:") something:10 >>> x '10' >>> x=input("something:") something:'10' #entered data treated as string with or without '' >>> x "'10'" >>> x=raw_input("something:") # will result NameError Traceback (most recent call last): File "", line 1, in x=raw_input("something:") NameError: name 'raw_input' is not defined
pembagian integer
Dalam Python 2, hasil dari pembagian dua bilangan bulat dibulatkan ke bilangan bulat terdekat. Akibatnya, 3/2 akan menunjukkan 1. Dalam rangka untuk mendapatkan pembagian floating point, pembilang atau penyebut harus secara eksplisit digunakan sebagai pelampung. Oleh karena itu baik 3.0 / 2 atau 3 / 2.0 atau 3.0 / 2.0 akan menghasilkan 1,5
Python 3 mengevaluasi 3/2 1,5 secara default, yang lebih intuitif bagi programmer baru.
representasi Unicode
Python 2 mengharuskan Anda untuk menandai string dengan au jika Anda ingin menyimpannya sebagai Unicode.
Python 3 toko string sebagai Unicode secara default. Sekarang, di Python 3, kita memiliki Unicode (utf-8) string, dan 2 kelas byte: byte dan bytearrays.
xrange () fungsi dihapus
Python 2 Kisaran () mengembalikan daftar, dan xrange () mengembalikan sebuah objek yang hanya akan menghasilkan item dalam kisaran bila diperlukan, menyimpan memori.
Di Python 3, rentang () function hilang, dan xrange () telah berganti nama menjadi kisaran (). Selain rentang () objek dukungan mengiris di Python 3.2 dan kemudian.
meningkatkan exceprion
Python 2 menerima kedua notasi, 'lama' dan 'baru' sintaks, Python 3 menimbulkan SyntaxError jika kita tidak menyertakan argumen pengecualian dalam kurung:
raise IOError, "file error" #This is accepted in Python 2 raise IOError("file error") #This is also accepted in Python 2 raise IOError, "file error" #syntax error is raised in Python 3 raise IOError("file error") #this is the recommended syntax in Python 3
Argumen di Pengecualian
Di Python 3, argumen untuk pengecualian harus dinyatakan dengan 'sebagai' kata kunci.
except Myerror, err: # In Python2 except Myerror as err: #In Python 3
berikutnya () fungsi dan .next () metode
Dalam Python 2, berikutnya () sebagai metode objek generator diperbolehkan. Dalam Python 2, selanjutnya fungsi () untuk beralih di atas objek generator juga accpeted. Di Python 3, namun, selanjutnya (0 sebagai metode generator dihentikan dan menimbulkan 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
2to3 Utilitas
Seiring dengan Python 3 interpreter, naskah 2t03.py akan biasanya dipasang di alat / script folder. Bunyinya Python kode sumber 2.x dan menerapkan serangkaian pemecah masalah untuk mengubahnya menjadi kode Python 3.x valid.
Here is a sample Python 2 code (area.py): def area(x,y=3.14): a=y*x*x print a return a a=area(10) print "area",a To convert into Python 3 version: $2to3 -w area.py Converted code : def area(x,y=3.14): # formal parameters a=y*x*x print (a) return a a=area(10) print("area",a)
komentar tidak berisi spam.
terima kasih ConversionConversion EmoticonEmoticon