2016-08-12 2 views
-2

ich diesen Code in Python laufen 3.5, aber ich habe einen Fehler, wenn ich auf Python laufen 2 nicht Fehler habenPython 3 Liste Array

import sys 

class Array(object): 
    def __init__(self, arr=[]): 
     self.data = arr 
    def salin(self): 
     temp = Array(self.data) 
     return temp 
    def tambah(self, nilai): 
     if self.data.count>0: 
      if type(self.data[0])==type(nilai): 
       self.data.append(nilai) 
      else: 
       print('Nilai yang ditambahkan harus sejenis') 
       sys.exit(1) 
    def ubah(self,indeks,nilai): 
     self.data[indeks]=nilai 
    def hapus(self,nilai): 
     self.data.remove(nilai) 
    def cari(self, nilai): 
     return self.data.index(nilai) 
    def urutkan(self): 
     self.data.sort() 
    def ekstrak(self,awal,akhir): 
     temp = Array(self.data[awal:akhir]) 
     return temp 
    def cetak(self): 
     for nilai in self.data: 
      print(nilai, end=' ') 

     print() 


def main(): 
    A = Array([10,20,30,40,50]) 

    #menampilkan nilai awal 
    print('Isi A mula-mula: ',end=' ') 
    A.cetak() 

    #mengubah element ketiga 
    A.ubah(2, 63) 

    #menghapus nilai 40 
    A.hapus(40) 


    #menambah element 
    A.tambah(70) 
    A.tambah(15) 

    #menampilkan isi nilai setelah diubah, 
    #dihapus, dan ditambah 
    print('Isi A setelah dimanipulasi: ',end=' ') 
    A.cetak() 

    B = A.ekstrak(1,4) 
    print('Isi B (hasil Ekstrak): ', end='') 
    B.cetak() 

    C=A.salin() 
    print('Isi C(salinan A): ',end='') 
    C.cetak() 

    C.tambah(45.25) # menabah nilai bertipe float 

if __name__=='__main__': 
    main() 
+2

"Ich habe einen Fehler" ist nicht genug von einer Problembeschreibung, damit wir Ihnen helfen können. – user2357112

+1

Haben Sie eine Frage? –

+1

Bitte fügen Sie den Zurückverfolgungs –

Antwort

2

print keine Funktion in Python ist 2. Syntaktisch, ist dies nicht korrekte

print('message', end=' ') 

Wenn Sie diese print als Funktion in beide Python 2 und 3 verwenden möchten, importieren Sie es einfach

from __future__ import print_function 

Und ersetzen self.data.count durch len(self.data)

+0

danke gus aber der Fehler nicht auf Druck, –

+0

'if self.data.count> 0: ' –

+0

' TypeError: unorderable Typen: builtin_function_or_method ()> int() ' –