PopAds.net - The Best Popunder Adnetwork

Apa Yang Baru Pada Python 3 ?

Hasil gambar untuk python

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)
Previous
Next Post »

komentar tidak berisi spam.
terima kasih ConversionConversion EmoticonEmoticon