
Hai, habrozhiteli! Kami merilis versi ketiga dari
Best Seller # 1 di Python Programming Amazon , panduan bahasa Python paling populer di dunia.
Anda tidak hanya dapat mempelajarinya secepat mungkin, tetapi juga mempelajari cara menulis program, memperbaiki kesalahan dan membuat aplikasi yang berfungsi. Di bagian pertama buku ini, Anda akan diperkenalkan dengan konsep pemrograman dasar seperti variabel, daftar, kelas, dan loop, dan latihan sederhana akan mengajarkan Anda cara menggunakan template kode bersih. Anda akan belajar cara membuat program interaktif dan cara menguji kode sebelum menambahkan ke proyek.
Pada bagian kedua, Anda akan mempraktikkan pengetahuan baru dan membuat tiga proyek: permainan arcade dengan gaya Space Invaders, visualisasi data dengan pustaka Python yang nyaman dan aplikasi web sederhana yang dapat dengan cepat digunakan secara online. Ketika bekerja dengan sebuah buku, Anda akan belajar: ∙ Gunakan perpustakaan yang kuat dan alat Python: Pygame, Matplotlib, Plotly dan Django ∙ Buat game 2D dengan berbagai kompleksitas yang dapat dikontrol menggunakan keyboard dan mouse ∙ Buat visualisasi data interaktif ∙ Rancang, sesuaikan, dan gunakan web aplikasi ∙ Menangani bug dan kesalahan
Edisi baru telah direvisi dengan cermat dan mencerminkan kemajuan terbaru dalam praktik pemrograman Python. Bagian pertama buku ini dilengkapi dengan informasi baru tentang f-line, konstanta, dan manajemen data. Pada bagian kedua, kode proyek diperbarui. Struktur dan kode proyek menjadi lebih bersih dan lebih mudah dipahami, sekarang mereka menggunakan kekuatan penuh dari perpustakaan dan alat-alat populer, seperti Plotly dan Django.
Berikut ini adalah ringkasan dari perubahan di edisi ketiga:
Dalam Bab 1, instruksi instalasi Python disederhanakan untuk pengguna semua sistem operasi utama. Sekarang saya sarankan menggunakan editor teks Sublime Text, yang populer di kalangan pemula dan profesional, dan bekerja pada semua sistem operasi.
Bab 2 memberikan deskripsi yang lebih rinci tentang bagaimana variabel diimplementasikan dalam Python. Variabel digambarkan sebagai label teks untuk nilai, yang memungkinkan pembaca untuk lebih memahami perilaku variabel dalam Python. Buku ini menggunakan ekstensif f-line yang diperkenalkan dengan Python 3.6, mekanisme yang jauh lebih sederhana dan nyaman untuk menggunakan nilai dalam string. Python 3.6 juga memperkenalkan kemampuan untuk menggunakan garis bawah untuk mewakili angka besar (misalnya, 1_000_000); dia juga termasuk dalam edisi ini. Penugasan berganda variabel disajikan dalam salah satu proyek edisi pertama; deskripsi telah dikompilasi dan dipindahkan ke bab 2 untuk kenyamanan pembaca. Akhirnya, sistem konvensi yang dapat dimengerti untuk mewakili konstanta dengan Python juga termasuk dalam bab ini.
Bab 6 memperkenalkan metode get () untuk membaca nilai dari kamus, yang dapat mengembalikan nilai default jika tidak ada kunci.
Proyek Alien Invasion (bab 12-14) sekarang sepenuhnya didasarkan pada penggunaan kelas. Gim itu sendiri adalah kelas (bukan serangkaian fungsi, seperti pada edisi sebelumnya). Ini sangat menyederhanakan struktur keseluruhan permainan, mengurangi jumlah pemanggilan fungsi dan parameter yang diperlukan. Pembaca yang akrab dengan edisi pertama akan menghargai kesederhanaan dari pendekatan berbasis kelas yang baru. Pygame sekarang dapat diinstal dengan perintah satu baris di semua sistem, dan pembaca dapat memilih antara memulai permainan dalam mode layar penuh atau jendela.
Dalam proyek visualisasi data, instruksi instalasi untuk Matplotlib telah disederhanakan untuk semua sistem operasi. Visualisasi berbasis matplotlib menggunakan fungsi subplot (), yang lebih nyaman untuk belajar bagaimana membangun visualisasi yang kompleks. Proyek Rolling Dice dari Bab 15 menggunakan Plotly, perpustakaan visualisasi dengan sintaksis sederhana, pemeliharaan berkualitas tinggi, dan hasil yang bagus dengan opsi penyesuaian yang kaya.
Dalam bab 16, proyek meteorologi diterjemahkan ke dalam data NOAA, yang menunjukkan stabilitas lebih besar selama bertahun-tahun daripada situs yang digunakan dalam edisi pertama. Proyek pemetaan sekarang didedikasikan untuk aktivitas seismik global; pada saat proyek selesai, visualisasi yang luar biasa akan dibangun, menggambarkan secara visual batas lempeng tektonik sepanjang koordinat semua gempa bumi untuk periode waktu tertentu. Anda akan belajar cara memetakan dataset yang berisi koordinat geografis.
Bab 17 menggunakan perpustakaan Plotly untuk memvisualisasikan aktivitas terkait Python dalam proyek open source di GitHub.
Proyek Learning Log (bab 18-20) dibangun di atas versi terbaru Django, dan versi terbaru dari Bootstrap digunakan untuk mendesainnya. Proses penyebaran proyek di Heroku telah disederhanakan dengan menggunakan paket django-heroku, dan menggunakan variabel lingkungan alih-alih mengedit file settings.py. Solusi ini lebih sederhana dan lebih cocok untuk bagaimana programmer profesional menggunakan proyek Django modern.
Lampiran A telah sepenuhnya didesain ulang. Itu termasuk rekomendasi untuk menginstal Python. Lampiran B mencakup rekomendasi terperinci untuk mengatur Sublime Text dan memberikan deskripsi singkat tentang editor teks utama dan lingkungan terintegrasi yang digunakan saat ini. Lampiran B memberikan tautan ke sumber daya daring yang lebih baru dan lebih populer untuk bantuan, dan Lampiran D menawarkan tutorial singkat tentang penggunaan Git untuk kontrol versi.
Kami memahami bahwa mengejutkan bagi banyak orang bahwa kami telah merilis edisi ketiga buku tersebut, dan buku aslinya 2ed. Alasan kejadian ini sederhana. Enam bulan setelah rilis edisi pertama dalam bahasa Rusia, penulis membuat perubahan kecil tapi signifikan pada buku itu, mengoreksi banyak kode. Setelah melihat jumlah perubahan, kami memutuskan untuk memberi nama buku baru "Edisi Kedua". Jadi publikasi bahasa Rusia kedua dirilis pada 30 Mei 2017.
Dan sekarang edisi internasional ke-2 harus dirilis sebagai
“Belajar Python: pemrograman game, visualisasi data, aplikasi web. Edisi ke-3.Kutipan. Kamus
Kadang-kadang perlu untuk menyimpan banyak kamus dalam daftar atau menyimpan daftar sebagai nilai elemen kamus. Membuat struktur kompleks semacam ini disebut embedding. Anda dapat menanamkan beberapa kamus ke dalam daftar, daftar item dalam kamus, atau bahkan kamus di dalam kamus lain. Seperti ditunjukkan contoh-contoh berikut, keterikatan adalah mekanisme yang sangat kuat.
Daftar kamus
Kamus alien_0 berisi berbagai informasi tentang satu alien, tetapi tidak ada tempat untuk menyimpan informasi tentang alien kedua, belum lagi seluruh layar tersumbat oleh alien. Bagaimana cara mensimulasikan armada invasi? Misalnya, Anda dapat membuat daftar alien di mana setiap elemen adalah kamus dengan informasi tentang alien. Misalnya, kode berikut membuat daftar tiga alien:
aliens.py alien_0 = {'color': 'green', 'points': 5} alien_1 = {'color': 'yellow', 'points': 10} alien_2 = {'color': 'red', 'points': 15} ❶ aliens = [alien_0, alien_1, alien_2] for alien in aliens: print(alien)
Pertama, tiga kamus dibuat, yang masing-masing mewakili alien yang terpisah. Pada titik ❶, setiap kamus terdaftar dengan nama alien. Akhirnya, program ini melewati daftar dan menampilkan setiap alien:
{'color': 'green', 'points': 5} {'color': 'yellow', 'points': 10} {'color': 'red', 'points': 15}
Tentu saja, dalam contoh realistis, lebih dari tiga alien akan digunakan, yang akan dihasilkan secara otomatis. Dalam contoh berikut, fungsi range () menciptakan armada 30 alien:
Di awal contoh, daftar untuk menyimpan semua alien yang akan dibuat kosong. Pada titik ❶, fungsi range () mengembalikan satu set angka, yang hanya memberi tahu Python berapa kali loop harus diulang. Setiap kali siklus selesai, alien baru ❷ dibuat, yang kemudian ditambahkan ke daftar alien ❸. Pada titik ❹, segmen tersebut digunakan untuk menampilkan lima alien pertama, dan pada titik ❺ panjang daftar ditampilkan (untuk menunjukkan bahwa program benar-benar menghasilkan seluruh armada 30 alien):
{'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} ... Total number of aliens: 30
Semua alien memiliki karakteristik yang sama, tetapi Python memperlakukan setiap alien sebagai objek terpisah, yang memungkinkan Anda untuk mengubah atribut masing-masing pemilik secara individual.
Bagaimana cara bekerja dengan begitu banyak? Bayangkan dalam game ini beberapa alien berubah warna dan mulai bergerak lebih cepat. Ketika tiba saatnya untuk mengubah warna, kita bisa menggunakan for for dan jika perintah untuk mengubah warna. Misalnya, untuk mengubah tiga alien pertama menjadi kuning, bergerak dengan kecepatan sedang dan membawa masing-masing pemain 10 poin, Anda dapat melakukan ini:
Untuk mengubah tiga alien pertama, kami mengulangi elemen segmen yang hanya mencakup tiga alien pertama. Saat ini, semua alien adalah hijau ('hijau'), tetapi ini tidak akan selalu demikian, jadi kami menulis perintah if, yang memastikan bahwa hanya alien hijau yang akan berubah. Jika alien berwarna hijau, maka warnanya berubah menjadi kuning ('kuning'), kecepatan ke sedang ('sedang'), dan hadiahnya meningkat menjadi 10 poin:
{'speed': 'medium', 'color': 'yellow', 'points': 10} {'speed': 'medium', 'color': 'yellow', 'points': 10} {'speed': 'medium', 'color': 'yellow', 'points': 10} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} ...
Siklus dapat diperluas dengan menambahkan blok elif untuk mengubah alien kuning menjadi merah - cepat dan membawa pemain masing-masing 15 poin. Kami tidak akan mengutip semua kode, dan loop terlihat seperti ini:
for alien in aliens[0:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['speed'] = 'medium' alien['points'] = 10 elif alien['color'] == 'yellow': alien['color'] = 'red' alien['speed'] = 'fast' alien['points'] = 15
Solusi dengan menyimpan kamus dalam daftar cukup umum ketika setiap kamus berisi atribut yang berbeda dari satu objek. Misalnya, Anda dapat membuat kamus untuk setiap pengguna situs, seperti yang dilakukan dalam program user.py pada hal. 114, dan simpan kamus individual dalam daftar yang bernama pengguna. Semua kamus dalam daftar harus memiliki struktur yang sama sehingga Anda dapat mengulangi daftar dan melakukan operasi yang sama dengan masing-masing objek kamus.
Daftar Kamus
Alih-alih menempatkan kamus dalam daftar, terkadang lebih mudah untuk menempatkan daftar dalam kamus. Bayangkan bagaimana Anda menggambarkan pizza yang dipesan dalam program. Jika kita membatasi diri kita hanya pada daftar, hanya daftar topping untuk pizza yang bisa disimpan. Saat menggunakan kamus, daftar topping bisa jadi hanya satu aspek dari deskripsi pizza.
Dalam contoh berikut, dua jenis informasi disimpan untuk setiap pizza: daftar pangkalan dan topping. Daftar topping adalah nilai yang terkait dengan kunci 'topping'. Untuk menggunakan elemen dalam daftar, Anda harus menentukan nama kamus dan kunci 'topping', seperti untuk nilai lainnya dalam kamus. Alih-alih nilai tunggal, daftar topping akan diperoleh:
pizza.py
Pekerjaan dimulai pada titik ❶ dengan kamus dengan informasi tentang pizza yang dipesan. Nilai string 'tebal' dikaitkan dengan kunci dalam kamus 'kerak'. 'Topping' kunci lain memiliki nilai daftar yang menyimpan semua topping yang dipesan. Pada titik ❷, deskripsi pesanan ditampilkan sebelum membuat pizza. Jika Anda perlu membagi garis panjang menjadi panggilan print (), pilih satu titik untuk membagi garis keluaran dan akhiri garis dengan kutipan. Indentasi baris berikutnya, tambahkan tanda kutip pembuka, dan lanjutkan dengan baris. Python secara otomatis menggabungkan semua string yang ditemukan dalam tanda kurung. Untuk kesimpulan tambahan, a for ❸ loop ditulis. Untuk membuat daftar topping, kami menggunakan tombol 'topping', dan Python mengambil daftar topping dari kamus.
Pesan berikut menjelaskan tentang pizza yang akan kami buat:
You ordered a thick-crust pizza with the following toppings: mushrooms extra cheese
Menempatkan daftar di kamus dapat digunakan setiap kali lebih dari satu nilai harus dikaitkan dengan satu kunci kamus. Jika jawaban disimpan dalam daftar pada contoh sebelumnya dengan bahasa pemrograman, satu peserta dalam survei dapat memilih beberapa bahasa favorit sekaligus. Saat menghitung kamus, nilai yang dikaitkan dengan setiap orang akan menjadi daftar bahasa (bukan satu bahasa). Di loop for the dictionary, loop lain dibuat untuk beralih ke daftar bahasa yang terkait dengan masing-masing peserta:
favorite_languages.py ❶ favorite_languages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go'], 'phil': ['python', 'haskell'], } ❷ for name, languages in favorite_languages.items(): print(f"\n{name.title()}'s favorite languages are:") ❸ for language in languages: print(f"\t{language.title()}")
Anda melihat pada poin ❶ bahwa nilai yang terkait dengan masing-masing nama sekarang daftar. Beberapa peserta memiliki satu bahasa pemrograman favorit, sementara yang lain memiliki beberapa. Ketika mengulangi kamus di titik ❷, variabel nama bahasa digunakan untuk menyimpan setiap nilai dari kamus, karena kita tahu bahwa setiap nilai akan menjadi daftar. Dalam siklus utama, sesuai dengan elemen kamus, siklus lain ❸ beralih ke elemen daftar bahasa favorit setiap peserta. Sekarang, setiap peserta survei dapat menentukan bahasa pemrograman favorit sebanyak yang mereka suka:
Jen's favorite languages are: Python Ruby Sarah's favorite languages are: C Phil's favorite languages are: Python Haskell Edward's favorite languages are: Ruby Go
Untuk lebih meningkatkan program, sertakan perintah if di awal for for the dictionary untuk memeriksa apakah peserta telah memilih lebih dari satu bahasa pemrograman (cek didasarkan pada nilai len (bahasa)). Jika peserta hanya memiliki satu bahasa favorit, teks pesan diubah untuk bahasa tunggal (misalnya, “Bahasa favorit Sarah adalah C”).
»Informasi lebih lanjut tentang buku ini dapat ditemukan di
situs web penerbit»
Isi»
KutipanKupon diskon 25% untuk penjaja -
PythonSetelah pembayaran versi kertas buku, sebuah buku elektronik dikirim melalui email.