Hallo Sobat Python kali ini kita berjumpa lagi ya
sekarang admin akan bahas mengenai Top-Level Window: Tkinter.Tk().
Sebelumnya admin pernah membahas bahwa semua main widget itu dibuat pada top level window object. objek ini dibuat oleh Tk Class pada Tkinter dan di mulai dengan kode seperti berikut:
>>> import Tkinter
>>> top = Tkinter.Tk()
Dengan jendela ini, kita menempatkan individual widgets atau banyak potongan komponen secara bersamaan pada GUI yang sedang kita buat.
Hello World
from Tkinter import Label # Membuat Widget
widget = Label(None, text='Hello World') # membuat Label
widget.pack() # Menyusun pada parentesis
widget.mainloop() # memulia event loop
untuk memulai suatu tindakan pada Tkinter ada beberapa langkah yang harus di tentukan
1. Memuat sebuah widget class dari Tkinter
2. Membuat evet (ulangi 2 langkah ini sebanyak yang kita inginkan)
3. Mengatur widget dari widget utama
4. Masukan event loop
Tkinter Events dan Binding
<Button‐1> ‐tombol mouse kiri
<Button‐2> ‐tombol mouse tengah (pada 3 button mouse)
<Button‐3> ‐tombol mouse paling kanan
<B1‐Motion> ‐menggerakan mouse sambil menekan tombol kiri pada mouse
<ButtonRelease‐1> ‐melepaskan tombol kiri mouse
<Double‐Button‐1> ‐double klik pada button 1
<Enter> ‐mouse pointer memasuki widget
<Leave> ‐mouse pointer keluar dari widget
<FocusIn> ‐Keyboard focus bergerak dalam widget
<FocusOut> ‐Keyboard focus bergerak kedalam widget lainnya
<Return> ‐memasuiki tombol yang di tarik tekan
<Key> ‐Tombol telah ditarik tekan
<Shift‐Up> ‐ tombol panah keatas sambil menekan tombol shift
<Configure> ‐ eidget mengganti ukuran atau lokasi
Event Handling
Event sources (widgets) yang dapat menspesifikasi handlernya:
• command handlers
gunakan keyword 'command=' diikuti oleh perintah yang ingin anda eksekusi
from Tkinter import *
root = Tk()
Button (root, text='Press Me', command=root.quit).pack(side=LEFT)
root.mainloop()
• callbacks
callback adalah sebuah nama pada fungsi yang harus dijalankan untuk merespon sebuah evet callbacks dapat didefinisikan sebagai free standing function dalam program atau sebagai anggota sebuah class
from Tkinter import *
def quit():
print 'Hello, getting out of here'
import sys; sys.exit()
widget = Button(None, text='Press me to quit' , command=quit)
widget.pack()
widget.mainloop()
Python GUI Tutorial
Monday, August 13, 2018
Packer(Tkinter)
Hallo Sobat Python berjumpa kembali dengan admin Jawz
ya kali ini kita akan bahas mengenai Packer pada Tkinter
Awalnya Packer dapat dikenali sebagai penentu ukuran dan penjajaran dari semua widget yang kita buat, Packer berfungsi untuk menempatkan semuanya. ketika semua widgets sudah diletakan, kita dapat memerintahkan aplikasi untuk memulai main Loop. dalam tkinter packer di tulis sebagai berikut:
Tkinter.mainloop()
packer sendiri biasanya di masukan terakhir atau baris paling ujung pada sebuah program yang kita buat.ketika mainloop dimasukan, GUI akan memulai biosa dijalankan dari sana, sedangkan perintah lainnya di atur melalui Callback, bahkan untuk keluar dari aplikasi anda. ketika anda memilih file menu dan klik Exit menu bahkan menutup jendela secara langsug, callback harus digunakan untuk mengakhiri Applikasi GUI pada Python anda.
ya kali ini kita akan bahas mengenai Packer pada Tkinter
Awalnya Packer dapat dikenali sebagai penentu ukuran dan penjajaran dari semua widget yang kita buat, Packer berfungsi untuk menempatkan semuanya. ketika semua widgets sudah diletakan, kita dapat memerintahkan aplikasi untuk memulai main Loop. dalam tkinter packer di tulis sebagai berikut:
Tkinter.mainloop()
packer sendiri biasanya di masukan terakhir atau baris paling ujung pada sebuah program yang kita buat.ketika mainloop dimasukan, GUI akan memulai biosa dijalankan dari sana, sedangkan perintah lainnya di atur melalui Callback, bahkan untuk keluar dari aplikasi anda. ketika anda memilih file menu dan klik Exit menu bahkan menutup jendela secara langsug, callback harus digunakan untuk mengakhiri Applikasi GUI pada Python anda.
Friday, August 10, 2018
Tkinter (perkenalan)
Hallo Sobat PYTHON
kembali lagi bertemu dengan saya Admin Jawz. kali ini saya akan membahas satu topik menarik mengenai Salah satu Module packages yang sering digunakan oleh GUI programer Python yaitu Tkinter.
sebelum mulai sesi tanya jawab aktiv 7x24 jam bebas comment dan kunjungan balik ea gan.
nah kita mulai masuk kedalam menu utama kita di sesi ini...
Sebelumnya ada yang tau gak sih Tkinter itu apa ?
Simplenya Tkinter adalah pustaka GUI default Python. Ini didasarkan pada toolkit Tk, awalnya dirancang untuk Bahasa Komando Alat (Tcl). Karena popularitas Tk, ia telah diporting ke berbagai bahasa scripting lainnya, termasuk Perl (Perl / Tk), Ruby (Ruby / Tk), dan Python (Tkinter).• Kombinasi portabilitas dan fleksibilitas pengembangan GUI Tk bersama dengan kesederhanaan bahasa scripting yang terintegrasi dengan kekuatan bahasa sistem memberi Anda alat untuk merancang dan menerapkan berbagai aplikasi GUI berkualitas komersial dengan cepat.• Python, bersama dengan Tkinter, menyediakan cara yang cepat dan menarik untuk membuat aplikasi yang berguna yang akan memakan waktu lebih lama jika Anda harus memprogram langsung di C / C ++ dengan pustaka sistem jendela asli.• Setelah Anda merancang aplikasi dan tampilan dan nuansa yang sejalan dengan program Anda, Anda akan menggunakan blok bangunan dasar yang dikenal sebagai widget untuk mengumpulkan yang diinginkan.• Setelah Anda mendapatkan Tkinter di sistem Anda, dibutuhkan kurang dari 15 menit untuk menjalankan aplikasi GUI pertama Anda.
Tkinter tidak perlu diaktifkan secara default di sistem Anda. Anda dapat menentukan apakah Tkinter tersedia untuk interpreter Python Anda dengan mencoba mengimpor modul Tkinter (dengan Python 1 dan 2; berganti nama menjadi tkinter dengan Python 3). Jika Tkinter tersedia, maka tidak ada kesalahan yang terjadi, seperti yang ditunjukkan berikut ini:
>>> import tkinter
>>>
Jika interpreter Python Anda tidak dikompilasi dengan Tkinter diaktifkan, impor modul gagal. Anda mungkin perlu mengkompilasi ulang interpreter Python Anda untuk mendapatkan akses ke Tkinter. Ini biasanya melibatkan mengedit file Modul / Pengaturan dan kemudian mengaktifkan semua pengaturan yang benar untuk mengkompilasi interpreter Python Anda dengan kait ke Tkinter, atau memilih untuk menginstal Tk pada sistem Anda.
Install Tkinterdan menggunakan pada RPI
ketikkode dibawah pada terminal Windows Mac atau Linux:
• sudo apt-get install python-tk (linux). python install tk(windows). $pip -m install tk(Mac)
• Buka Python Shell:
• idle3
• Import Tkinter module:
>>> import tkinter
Modul Tkinter: Menambahkan Tk ke Aplikasi Anda
Apakah Anda perlu melakukan agar Tkinter sebagai bagian dari aplikasi Anda?
• Pertama, tidak perlu memiliki aplikasi. Anda dapat membuat GUI murni jika diinginkan, tetapi mungkin tidak terlalu berguna tanpa beberapa perangkat lunak yang mendasarinya yang melakukan sesuatu yang menarik.
• Pada dasarnya ada lima langkah utama yang diperlukan untuk membuat GUI Anda aktif dan berjalan:
1. Impor modul Tkinter (atau dari Tkinterimport *).
2. Buat objek windowing tingkat atas yang berisi seluruh aplikasi GUI Anda.
3. Buat semua komponen GUI Anda (dan fungsionali) di atas (atau di dalam) objek windowing atas Anda.
4. Hubungkan komponen GUI ini ke kode aplikasi yang mendasarinya.
5. Masukkan ke main event loop .
Introduction GUI Programming
Sebelum pergi ke contoh, kami akan memberi Anda pengantar singkat untuk pengembangan aplikasi GUI. Ini akan memberi Anda beberapa latar belakang umum yang Anda butuhkan untuk maju.
• Menyiapkan aplikasi GUI mirip dengan bagaimana seorang seniman menghasilkan sebuah lukisan. Secara konvensional, ada satu kanvas di mana seniman harus meletakkan semua pekerjaan. Berikut ini cara kerjanya: Anda mulai dengan yang bersih, objek windowing "tingkat atas" tempat Anda membangun sisa komponen Anda.
• Anggap saja sebagai fondasi ke rumah atau kuda-kuda untuk seniman. Dengan kata lain, Anda harus menuangkan beton atau mengatur kuda-kuda Anda sebelum menyusun struktur atau kanvas yang sebenarnya di atasnya. Di Tkinter, yayasan ini dikenal sebagai tingkat atas
objek jendela
Windows and Widgets
Dalam pemograman GUI, objek penggilingan akar tingkat teratas berisi semua objek windowing kecil yang akan menjadi bagian dari aplikasi GUI lengkap Anda. Ini bisa berupa label teks, tombol, kotak daftar, dll. Komponen GUI kecil individu ini dikenal sebagai widget.
• Jadi ketika kita mengatakan membuat jendela tingkat atas, kami hanya berarti bahwa Anda memerlukan tempat di mana Anda meletakkan semua widget Anda. Dalam Python, ini biasanya akan terlihat seperti baris ini:
• top = Tkinter.Tk () # atau hanya Tk () dengan "dari Tkinter import *"
• Objek yang dikembalikan oleh Tkinter.Tk () biasanya disebut
sebagai rootwindow; oleh karena itu, alasan mengapa beberapa aplikasi menggunakan rootrather dari atas sebagai indikasi. Jendela tingkat atas adalah yang berdiri sendiri sebagai bagian dari aplikasi Anda. Anda dapat memiliki lebih dari satu jendela tingkat atas untuk GUI Anda, tetapi
hanya satu dari mereka yang harus menjadi jendela root Anda.
Anda dapat memilih untuk mendesain semua widget Anda terlebih dahulu, lalu menambahkan fungsionalitas sebenarnya, atau melakukan sedikit ini dan sedikit dari itu di sepanjang jalan.
• Widget dapat berdiri sendiri atau menjadi kontainer. Jika widget berisi widget lain, itu dianggap sebagai induk dari widget tersebut. Dengan demikian, jika widget ada di dalamnya
widget lain, itu dianggap sebagai anak dari orang tua, induknya adalah widget wadah terlampir berikutnya.
• Biasanya, widget memiliki beberapa perilaku terkait, seperti ketika tombol ditekan, atau teks diisi ke dalam bidang teks. Jenis perilaku pengguna ini disebut acara, dan tanggapan GUI untuk acara tersebut dikenal sebagai callback.
Pemrosesan-event Berorientasi
Event dapat mencakup penekanan tombol yang sebenarnya (dan rilis), gerakan mouse, menekan tombol Return atau Enter, dll. Seluruh sistem kejadian yang terjadi dari awal hingga akhir aplikasi GUI adalah apa yang mendorongnya. Ini dikenal sebagai pemrosesan-event Berorientasi.
• Satu contoh acara dengan callback adalah gerakan mouse sederhana. Misalkan pointer mouse duduk di suatu tempat di atas aplikasi GUI Anda. Jika Anda memindahkan mouse ke bagian lain dari aplikasi Anda, sesuatu harus menyebabkan gerakan mouse direplikasi oleh kursor di layar Anda sehingga tampak seolah-olah bergerak sesuai dengan gerakan tangan Anda. Ini adalah peristiwa pindah mouse yang harus diproses oleh sistem untuk menggambarkan kursor Anda yang bergerak melintasi jendela. Saat Anda melepaskan mouse, tidak ada lagi acara yang akan diproses, jadi semuanya tetap diam di layar lagi.
Sifat pemrosesan GUI yang digerakkan oleh peristiwa sangat sesuai dengan arsitektur klien / server.
• Ketika Anda memulai aplikasi GUI, itu harus melakukan beberapa prosedur pengaturan untuk mempersiapkan pelaksanaan inti, seperti bagaimana server jaringan harus mengalokasikan soket dan mengikatnya ke alamat lokal.
• Aplikasi GUI harus membuat semua komponen GUI, lalu gambar (a.k.a. render atau cat) ke layar. Ini adalah tanggung jawab geometri manager(lebih lanjut tentang ini sebentar lagi). Ketika manajer geometri telah menyelesaikan mengatur semua widget, termasuk jendela tingkat atas, aplikasi GUI memasuki loop tak terbatas server-like mereka.
• Lingkaran ini berjalan selamanya menunggu acara GUI, memprosesnya, dan kemudian akan menunggu lebih banyak acara diproses
OK sampai sini dulu ya bosque semua sobat Python
besok kita lanjut lagi di sesi Tkinter selanjutnya.
kembali lagi bertemu dengan saya Admin Jawz. kali ini saya akan membahas satu topik menarik mengenai Salah satu Module packages yang sering digunakan oleh GUI programer Python yaitu Tkinter.
sebelum mulai sesi tanya jawab aktiv 7x24 jam bebas comment dan kunjungan balik ea gan.
nah kita mulai masuk kedalam menu utama kita di sesi ini...
Sebelumnya ada yang tau gak sih Tkinter itu apa ?
Simplenya Tkinter adalah pustaka GUI default Python. Ini didasarkan pada toolkit Tk, awalnya dirancang untuk Bahasa Komando Alat (Tcl). Karena popularitas Tk, ia telah diporting ke berbagai bahasa scripting lainnya, termasuk Perl (Perl / Tk), Ruby (Ruby / Tk), dan Python (Tkinter).• Kombinasi portabilitas dan fleksibilitas pengembangan GUI Tk bersama dengan kesederhanaan bahasa scripting yang terintegrasi dengan kekuatan bahasa sistem memberi Anda alat untuk merancang dan menerapkan berbagai aplikasi GUI berkualitas komersial dengan cepat.• Python, bersama dengan Tkinter, menyediakan cara yang cepat dan menarik untuk membuat aplikasi yang berguna yang akan memakan waktu lebih lama jika Anda harus memprogram langsung di C / C ++ dengan pustaka sistem jendela asli.• Setelah Anda merancang aplikasi dan tampilan dan nuansa yang sejalan dengan program Anda, Anda akan menggunakan blok bangunan dasar yang dikenal sebagai widget untuk mengumpulkan yang diinginkan.• Setelah Anda mendapatkan Tkinter di sistem Anda, dibutuhkan kurang dari 15 menit untuk menjalankan aplikasi GUI pertama Anda.
Tkinter tidak perlu diaktifkan secara default di sistem Anda. Anda dapat menentukan apakah Tkinter tersedia untuk interpreter Python Anda dengan mencoba mengimpor modul Tkinter (dengan Python 1 dan 2; berganti nama menjadi tkinter dengan Python 3). Jika Tkinter tersedia, maka tidak ada kesalahan yang terjadi, seperti yang ditunjukkan berikut ini:
>>> import tkinter
>>>
Jika interpreter Python Anda tidak dikompilasi dengan Tkinter diaktifkan, impor modul gagal. Anda mungkin perlu mengkompilasi ulang interpreter Python Anda untuk mendapatkan akses ke Tkinter. Ini biasanya melibatkan mengedit file Modul / Pengaturan dan kemudian mengaktifkan semua pengaturan yang benar untuk mengkompilasi interpreter Python Anda dengan kait ke Tkinter, atau memilih untuk menginstal Tk pada sistem Anda.
Install Tkinterdan menggunakan pada RPI
ketikkode dibawah pada terminal Windows Mac atau Linux:
• sudo apt-get install python-tk (linux). python install tk(windows). $pip -m install tk(Mac)
• Buka Python Shell:
• idle3
• Import Tkinter module:
>>> import tkinter
Modul Tkinter: Menambahkan Tk ke Aplikasi Anda
Apakah Anda perlu melakukan agar Tkinter sebagai bagian dari aplikasi Anda?
• Pertama, tidak perlu memiliki aplikasi. Anda dapat membuat GUI murni jika diinginkan, tetapi mungkin tidak terlalu berguna tanpa beberapa perangkat lunak yang mendasarinya yang melakukan sesuatu yang menarik.
• Pada dasarnya ada lima langkah utama yang diperlukan untuk membuat GUI Anda aktif dan berjalan:
1. Impor modul Tkinter (atau dari Tkinterimport *).
2. Buat objek windowing tingkat atas yang berisi seluruh aplikasi GUI Anda.
3. Buat semua komponen GUI Anda (dan fungsionali) di atas (atau di dalam) objek windowing atas Anda.
4. Hubungkan komponen GUI ini ke kode aplikasi yang mendasarinya.
5. Masukkan ke main event loop .
Introduction GUI Programming
Sebelum pergi ke contoh, kami akan memberi Anda pengantar singkat untuk pengembangan aplikasi GUI. Ini akan memberi Anda beberapa latar belakang umum yang Anda butuhkan untuk maju.
• Menyiapkan aplikasi GUI mirip dengan bagaimana seorang seniman menghasilkan sebuah lukisan. Secara konvensional, ada satu kanvas di mana seniman harus meletakkan semua pekerjaan. Berikut ini cara kerjanya: Anda mulai dengan yang bersih, objek windowing "tingkat atas" tempat Anda membangun sisa komponen Anda.
• Anggap saja sebagai fondasi ke rumah atau kuda-kuda untuk seniman. Dengan kata lain, Anda harus menuangkan beton atau mengatur kuda-kuda Anda sebelum menyusun struktur atau kanvas yang sebenarnya di atasnya. Di Tkinter, yayasan ini dikenal sebagai tingkat atas
objek jendela
Windows and Widgets
Dalam pemograman GUI, objek penggilingan akar tingkat teratas berisi semua objek windowing kecil yang akan menjadi bagian dari aplikasi GUI lengkap Anda. Ini bisa berupa label teks, tombol, kotak daftar, dll. Komponen GUI kecil individu ini dikenal sebagai widget.
• Jadi ketika kita mengatakan membuat jendela tingkat atas, kami hanya berarti bahwa Anda memerlukan tempat di mana Anda meletakkan semua widget Anda. Dalam Python, ini biasanya akan terlihat seperti baris ini:
• top = Tkinter.Tk () # atau hanya Tk () dengan "dari Tkinter import *"
• Objek yang dikembalikan oleh Tkinter.Tk () biasanya disebut
sebagai rootwindow; oleh karena itu, alasan mengapa beberapa aplikasi menggunakan rootrather dari atas sebagai indikasi. Jendela tingkat atas adalah yang berdiri sendiri sebagai bagian dari aplikasi Anda. Anda dapat memiliki lebih dari satu jendela tingkat atas untuk GUI Anda, tetapi
hanya satu dari mereka yang harus menjadi jendela root Anda.
Anda dapat memilih untuk mendesain semua widget Anda terlebih dahulu, lalu menambahkan fungsionalitas sebenarnya, atau melakukan sedikit ini dan sedikit dari itu di sepanjang jalan.
• Widget dapat berdiri sendiri atau menjadi kontainer. Jika widget berisi widget lain, itu dianggap sebagai induk dari widget tersebut. Dengan demikian, jika widget ada di dalamnya
widget lain, itu dianggap sebagai anak dari orang tua, induknya adalah widget wadah terlampir berikutnya.
• Biasanya, widget memiliki beberapa perilaku terkait, seperti ketika tombol ditekan, atau teks diisi ke dalam bidang teks. Jenis perilaku pengguna ini disebut acara, dan tanggapan GUI untuk acara tersebut dikenal sebagai callback.
Pemrosesan-event Berorientasi
Event dapat mencakup penekanan tombol yang sebenarnya (dan rilis), gerakan mouse, menekan tombol Return atau Enter, dll. Seluruh sistem kejadian yang terjadi dari awal hingga akhir aplikasi GUI adalah apa yang mendorongnya. Ini dikenal sebagai pemrosesan-event Berorientasi.
• Satu contoh acara dengan callback adalah gerakan mouse sederhana. Misalkan pointer mouse duduk di suatu tempat di atas aplikasi GUI Anda. Jika Anda memindahkan mouse ke bagian lain dari aplikasi Anda, sesuatu harus menyebabkan gerakan mouse direplikasi oleh kursor di layar Anda sehingga tampak seolah-olah bergerak sesuai dengan gerakan tangan Anda. Ini adalah peristiwa pindah mouse yang harus diproses oleh sistem untuk menggambarkan kursor Anda yang bergerak melintasi jendela. Saat Anda melepaskan mouse, tidak ada lagi acara yang akan diproses, jadi semuanya tetap diam di layar lagi.
Sifat pemrosesan GUI yang digerakkan oleh peristiwa sangat sesuai dengan arsitektur klien / server.
• Ketika Anda memulai aplikasi GUI, itu harus melakukan beberapa prosedur pengaturan untuk mempersiapkan pelaksanaan inti, seperti bagaimana server jaringan harus mengalokasikan soket dan mengikatnya ke alamat lokal.
• Aplikasi GUI harus membuat semua komponen GUI, lalu gambar (a.k.a. render atau cat) ke layar. Ini adalah tanggung jawab geometri manager(lebih lanjut tentang ini sebentar lagi). Ketika manajer geometri telah menyelesaikan mengatur semua widget, termasuk jendela tingkat atas, aplikasi GUI memasuki loop tak terbatas server-like mereka.
• Lingkaran ini berjalan selamanya menunggu acara GUI, memprosesnya, dan kemudian akan menunggu lebih banyak acara diproses
OK sampai sini dulu ya bosque semua sobat Python
besok kita lanjut lagi di sesi Tkinter selanjutnya.
Tuesday, August 7, 2018
Dictionary dalam Python
Hello
sobat Python Ketemu lagi dengan saya Admin Jawz
Kali
ini Kita akan membahas mengenai Dictionary Atau istilah lainnya Dictionary
dalam Python bersama dengan List, Dictionary adalah salah satu tipe data bawaan
paling fleksibel dengan Python. Jika Anda menganggap List sebagai kumpulan objek yang
diurutkan, Anda dapat menganggap Dictionary sebagai koleksi yang tidak
diurutkan; perbedaan utama adalah bahwa dalam Dictionary, item disimpan dan
diambil oleh kunci, bukan dengan posisi offset. Sementara List dapat melayani
peran yang mirip dengan array dalam bahasa lain, Dictionary menggantikan
catatan, tabel pencarian, dan jenis agregasi lain di mana nama item lebih
bermakna daripada posisi item. Misalnya, Dictionary dapat menggantikan banyak
algoritme pencarian dan struktur data yang mungkin harus Anda terapkan secara
manual dalam bahasa tingkat rendah — sebagai jenis bawaan yang sangat
dioptimalkan, mengindeks Dictionary adalah operasi pencarian yang sangat cepat.
Dictionary juga terkadang melakukan pekerjaan catatan, struct, dan tabel simbol
yang digunakan dalam bahasa lain; dapat digunakan untuk mewakili struktur data
yang jarang (kebanyakan kosong); dan banyak lagi. Berikut ini ikhtisar properti
utama mereka. Dictionary Python adalah:
Diakses
oleh kunci, tidak diimbangi posisi Dictionary kadang-kadang disebut hash array
arraysor (terutama oleh pengguna bahasa scripting lainnya). Mereka mengaitkan
seperangkat nilai dengan kunci, sehingga Anda dapat mengambil suatu item dari
Dictionary menggunakan kunci di bawah tempat Anda menyimpannya. Anda
menggunakan operasi pengindeksan yang sama untuk mendapatkan komponen dalam
Dictionary seperti yang Anda lakukan dalam daftar, tetapi indeks mengambil
bentuk kunci, bukan offset relatif
Koleksi objek acak yang tidak berurutan
Tidak seperti dalam daftar, item yang disimpan dalam kamus tidak disimpan dalam urutan tertentu; pada kenyataannya, Python pseudo-mengacak pesanan kiri-ke-kanan mereka untuk menyediakan pencarian cepat. Kunci menyediakan lokasi item simbolik (bukan fisik) dalam kamus.
Bervariasi-panjang, heterogen, dan
sewenang-wenang nestable
Seperti daftar, Dictionary dapat tumbuh dan menyusut di tempat (tanpa salinan baru dibuat), mereka dapat berisi objek dari jenis apa pun, dan mereka mendukung bersarang ke kedalaman apa pun (mereka dapat berisi daftar, Dictionary lain, dan sebagainya). Setiap keycan hanya memiliki satu nilai yang terkait, tetapi nilai itu bisa menjadi kumpulan dari beberapa objek jika diperlukan, dan nilai yang diberikan dapat disimpan di bawah sejumlah tombol.
Seperti daftar, Dictionary dapat tumbuh dan menyusut di tempat (tanpa salinan baru dibuat), mereka dapat berisi objek dari jenis apa pun, dan mereka mendukung bersarang ke kedalaman apa pun (mereka dapat berisi daftar, Dictionary lain, dan sebagainya). Setiap keycan hanya memiliki satu nilai yang terkait, tetapi nilai itu bisa menjadi kumpulan dari beberapa objek jika diperlukan, dan nilai yang diberikan dapat disimpan di bawah sejumlah tombol.
Dari kategori "pemetaan yang bisa
berubah"
Anda dapat mengubah Dictionary di tempat dengan menetapkan ke indeks (mereka bisa berubah), tetapi mereka tidak mendukung operasi urutan yang bekerja pada string dan daftar. Karena Dictionary adalah koleksi yang tidak berurutan, operasi yang bergantung pada urutan posisi tetap (misalnya, penggabungan, pemotongan) tidak masuk akal. Sebagai gantinya, Dictionary adalah satu-satunya perwakilan tipe inti yang ada di kategori pemetaan — objek yang memetakan kunci ke nilai. Pemetaan lain dalam Python dibuat oleh modul yang diimpor.
Anda dapat mengubah Dictionary di tempat dengan menetapkan ke indeks (mereka bisa berubah), tetapi mereka tidak mendukung operasi urutan yang bekerja pada string dan daftar. Karena Dictionary adalah koleksi yang tidak berurutan, operasi yang bergantung pada urutan posisi tetap (misalnya, penggabungan, pemotongan) tidak masuk akal. Sebagai gantinya, Dictionary adalah satu-satunya perwakilan tipe inti yang ada di kategori pemetaan — objek yang memetakan kunci ke nilai. Pemetaan lain dalam Python dibuat oleh modul yang diimpor.
Tabel referensi objek (tabel hash)
Jika daftar adalah array referensi objek yang mendukung akses berdasarkan posisi, Dictionary adalah tabel referensi objek tak berurutan yang mendukung akses oleh kunci. Secara internal, Dictionary diimplementasikan sebagai tabel hash (struktur data yang mendukung pengambilan yang sangat cepat), yang mulai kecil dan tumbuh sesuai permintaan. Selain itu, Python menggunakan algoritma hashing dioptimalkan untuk menemukan kunci, sehingga pengambilan cepat. Seperti daftar, referensi referensi situore referensi (bukan salinan, kecuali Anda menanyakannya secara eksplisit).
Jika daftar adalah array referensi objek yang mendukung akses berdasarkan posisi, Dictionary adalah tabel referensi objek tak berurutan yang mendukung akses oleh kunci. Secara internal, Dictionary diimplementasikan sebagai tabel hash (struktur data yang mendukung pengambilan yang sangat cepat), yang mulai kecil dan tumbuh sesuai permintaan. Selain itu, Python menggunakan algoritma hashing dioptimalkan untuk menemukan kunci, sehingga pengambilan cepat. Seperti daftar, referensi referensi situore referensi (bukan salinan, kecuali Anda menanyakannya secara eksplisit).
Basic Dictionary Operations
Dalam operasi normal, Anda membuat Dictionary
dengan literal dan menyimpan serta mengakses item berdasarkan kunci dengan
pengindeksan:
Di sini, Dictionary
ditugaskan ke variabel D; nilai kunci 'spam'adalah bilangan bulat 2, dan
seterusnya. Kami menggunakan sintaks braket persegi yang sama untuk mengindeks Dictionary
berdasarkan kunci seperti yang kami lakukan untuk mengindeks daftar dengan
offset, tetapi di sini ini berarti akses berdasarkan kunci, bukan berdasarkan
posisi.
operator keanggotaan memungkinkan Anda untuk menguji keberadaan kunci, dan metode kunci mengembalikan semua kunci dalam Dictionary. Yang terakhir ini dapat berguna untuk memproses Dictionary secara berurutan, tetapi Anda seharusnya tidak bergantung pada urutan daftar kunci. Karena hasil kunci dapat digunakan sebagai daftar normal, namun, selalu dapat diurutkan jika pesanan penting:
Amati ekspresi
kedua dalam daftar ini. Seperti yang disebutkan sebelumnya, tes inmembership
yang digunakan untuk string dan daftar juga berfungsi pada Dictionary —
memeriksa apakah kunci disimpan dalam Dictionary. Secara teknis, ini berfungsi
karena Dictionary mendefinisikan iterator yang melangkah melalui daftar kunci
mereka secara otomatis. Tipe lain menyediakan iterator yang mencerminkan
penggunaan umum mereka; file, misalnya, memiliki iterator yang membaca baris
demi baris.
Changing Dictionaries in Place
Mari lanjutkan
dengan sesi interaktif kami. Dictionary, seperti daftar, bisa berubah, jadi
Anda
dapat mengubah, memperluas, dan mengecilkan mereka di tempat tanpa membuat Dictionary baru: cukup tetapkan nilai ke kunci untuk mengubah atau membuat entri. Delstatement juga bekerja di sini; itu menghapus entri yang terkait dengan kunci yang ditentukan sebagai indeks. Perhatikan juga penumpukan daftar di dalam Dictionary dalam contoh ini (nilai kunci 'ham'). Semua jenis data koleksi dengan Python dapat bersarang di dalam satu sama lain secara sewenang-wenang:
dapat mengubah, memperluas, dan mengecilkan mereka di tempat tanpa membuat Dictionary baru: cukup tetapkan nilai ke kunci untuk mengubah atau membuat entri. Delstatement juga bekerja di sini; itu menghapus entri yang terkait dengan kunci yang ditentukan sebagai indeks. Perhatikan juga penumpukan daftar di dalam Dictionary dalam contoh ini (nilai kunci 'ham'). Semua jenis data koleksi dengan Python dapat bersarang di dalam satu sama lain secara sewenang-wenang:
mereka dalam daftar panggilan di sana untuk mengumpulkan nilai-nilai mereka sekaligus untuk ditampilkan:
Dalam program realistis yang mengumpulkan data
saat dijalankan, Anda sering tidak dapat memprediksi apa yang akan ada di Dictionary
sebelum program diluncurkan, apalagi ketika dikodekan. Mengambil kunci yang
tidak ada biasanya merupakan kesalahan, tetapi getmethod mengembalikan nilai
default — Tidak ada, atau default yang diteruskan — jika kunci tidak ada. Ini
adalah cara mudah untuk mengisi default untuk kunci yang tidak ada, dan
menghindari kesalahan kunci yang hilang ketika program Anda tidak dapat
mengantisipasi konten sebelumnya:
Metode pembaruan menyediakan sesuatu yang
mirip dengan rangkuman untuk Dictionary,
meskipun tidak ada hubungannya dengan pemesanan dari kiri ke kanan (sekali lagi, tidak ada yang namanya Dictionary). Ini menggabungkan kunci dan nilai dari satu Dictionary ke dalam nilai penimpaan tumpang tindih lain dari kunci yang sama jika ada bentrokan:
meskipun tidak ada hubungannya dengan pemesanan dari kiri ke kanan (sekali lagi, tidak ada yang namanya Dictionary). Ini menggabungkan kunci dan nilai dari satu Dictionary ke dalam nilai penimpaan tumpang tindih lain dari kunci yang sama jika ada bentrokan:
Perhatikan bagaimana campuran urutan kunci ada
di hasil terakhir; sekali lagi, begitulah cara kerja Dictionary. Akhirnya, Dictionary
popmethod menghapus kunci dari Dictionary dan mengembalikan nilai yang
dimilikinya. Mirip dengan daftar popmethod, tetapi ia mengambil kunci alih-alih
posisi opsional:
Catatan Penggunaan Dictionary
Dictionary adalah alat yang cukup sederhana
setelah Anda memahami mereka, tetapi berikut adalah beberapa petunjuk dan
pengingat tambahan yang harus Anda ketahui saat menggunakannya:
• Operasi urutan tidak berfungsi.
• Menugaskan ke indeks baru menambahkan entri.
• Kunci tidak harus selalu string.
• Operasi urutan tidak berfungsi.
• Menugaskan ke indeks baru menambahkan entri.
• Kunci tidak harus selalu string.
Poin terakhir dalam List sebelumnya cukup
penting untuk ditunjukkan dengan beberapa contoh. Ketika Anda menggunakan List,
itu ilegal untuk menetapkan ke offset yang ada di bagian akhir List:
Meskipun Anda dapat menggunakan pengulangan
untuk pra-alokasi sebagai List besar yang Anda perlukan (mis., [0] * 100), Anda
juga dapat melakukan sesuatu yang terlihat mirip dengan Dictionary yang tidak
memerlukan alokasi ruang tersebut. Dengan menggunakan kunci integer, Dictionary
dapat meniru List yang tampaknya tumbuh pada tugas offset:
Dengan cara yang sama, Keys Dictionary juga
umumnya dimanfaatkan untuk mengimplementasikan struktur data yang jarang —
misalnya, multidimensional array di mana hanya beberapa posisi yang memiliki
nilai yang disimpan di dalamnya:
Di sini, Kita telah menggunakan Dictionary
untuk mewakili array tiga dimensi yang kosong kecuali untuk dua posisi (2,3,4)
dan (7,8,9). Tombol-tombolnya adalah tuplesthat yang merekam koordinat slot
nonempty. Alih-alih mengalokasikan matriks tiga-dimensi yang besar dan
kebanyakan kosong untuk menyimpan nilai-nilai ini, kita dapat menggunakan Dictionary
dua-item yang sederhana. Dalam skema ini, mengakses slot kosong memicu
pengecualian Keys yang tidak ada, karena slot ini tidak disimpan secara fisik:
Menghindari missing-key errors
Kesalahan untuk pengambilan keys yang tidak
ada adalah umum dalam matriks yang jarang, tetapi Anda mungkin tidak ingin
mereka menutup program Anda. Setidaknya ada tiga cara untuk mengisi nilai
default daripada mendapatkan pesan kesalahan seperti itu — Anda dapat menguji keys
terlebih dahulu di ifstatements, gunakan trystatement untuk menangkap dan
memulihkan dari pengecualian secara eksplisit, atau cukup gunakan Dictionary
get method yang ditampilkan sebelumnya untuk menyediakan keys defaultfor yang
tidak ada...
Nesting dalam dictionaries
Seperti yang Anda lihat, dictionary dapat
memainkan banyak peran dalam Python. Secara umum, mereka dapat menggantikan
struktur data pencarian (karena pengindeksan oleh keys adalah operasi
pencarian) dan dapat mewakili banyak jenis informasi terstruktur. Misalnya, dictionary
adalah salah satu dari banyak cara untuk mendeskripsikan properti dari suatu item di
domain program Anda; artinya, mereka dapat melayani peran yang sama dengan
"catatan" atau "struct" dalam bahasa lain. Berikut ini,
misalnya, mengisi dictionary yang menggambarkan orang hipotetis, dengan
menetapkan keys baru dari waktu ke waktu (jika Anda seorang Tom, permintaan
maaf saya untuk memilih nama Anda di dalamArtikel ini mudah diketik!):
Khususnya jika tipe data bawaan Python yang disarangkan memungkinkan kita untuk dengan mudah merepresentasikan informasi terstruktur. Yang berikut lagi menggunakan Dictionary untuk menangkap properti objek, tetapi ia mengkode semuanya sekaligus (bukannya menugaskan ke setiap Keys secara terpisah) dan menyarangkan List dan Dictionary untuk mewakili nilai properti terstruktur:
Untuk mengambil komponen objek nesting, cukup string
bersama-sama operasi Index:
Perhatikan juga bahwa sementara kami fokus
pada satu "catatan" dengan data bersarang di sini, tidak ada alasan
kami tidak dapat menumpuk catatan itu sendiri dalam kumpulan data yang lebih
besar dan terlampir yang dikodekan sebagai list atau Dictionary, meskipun file
eksternal atau database formal Database sering memainkan peran wadah tingkat teratas dalam program yang realistis:
Akhirnya, perhatikan bahwa karena Dictionary
sangat berguna, lebih banyak cara untuk membangunnya telah muncul seiring
waktu. Dalam Python 2.3 dan yang lebih baru, misalnya, dua panggilan terakhir
ke konstruktor Dictionary (benar-benar, nama jenis) yang ditampilkan di sini
memiliki efek yang sama seperti bentuk literal dan keyassignment di atasnya:
Dictionary bukan hanya cara mudah untuk menyimpan
informasi dengan keys dalam program Anda beberapa ekstensi Python juga
menghadirkan antarmuka yang mirip dan berfungsi sama seperti Dictionary.
Misalnya, antarmuka Python ke file akses-demi-keys DBM sangat mirip dengan Dictionary
yang harus dibuka. Anda menyimpan dan mengambil string menggunakan indeks keys:
Anda akan melihat bahwa Anda dapat menyimpan seluruh objek Python dengan cara ini, juga, jika Anda mengganti dbmin kode sebelumnya dengan ambalan (rak adalah basis data akses-oleh-keys yang menyimpan objek Python persisten, bukan hanya string). Untuk pekerjaan Internet, dukungan skrip CGI Python juga menyajikan antarmuka seperti Dictionary. Panggilan ke cgi.FieldStorage menghasilkan objek mirip-Dictionary dengan satu entri per bidang masukan di laman web klien
Meskipun Dictionary adalah satu-satunya jenis pemetaan
inti, semua yang lain ini adalah contoh pemetaan, dan mendukung sebagian besar
operasi yang sama. Setelah Anda mempelajari antarmuka Dictionary, Anda akan
menemukan bahwa mereka berlaku untuk berbagai alat bawaan dengan Python. Untuk
kasus penggunaan Dictionary lain, JSON — format data bahasa-netral yang
digunakan untuk basis data dan transfer data. Dictionary Python, List, dan
kombinasi bersarang dari mereka hampir dapat lulus untuk catatan dalam format
ini sebagaimana adanya, dan dapat dengan mudah diterjemahkan ke dan dari string
teks JSON formal dengan modul perpustakaan jsonstandard Python.
Ok Sobat Python Sampai sini dulu kita bahas Dictionary Dalam Python
Sampai bertemu lagi di pembahsan berikutnya
Subscribe to:
Posts (Atom)