Ada banyak modul di Python yang menyediakan fitur yang sangat kuat yang bisa kita gunakan di program kita sendiri. Beberapa di antaranya dapat mengirim email, atau mengambil halaman web. Yang akan kita lihat di bab ini memungkinkan kita membuat kura-kura dan membuat mereka menggambar bentuk dan pola Show
Kura-kura itu menyenangkan, tetapi tujuan sebenarnya dari bab ini adalah untuk mengajari diri kita lebih banyak tentang Python, dan untuk mengembangkan tema pemikiran komputasi kita, atau berpikir seperti ilmuwan komputer. Sebagian besar Python yang dibahas di sini akan dieksplorasi lebih dalam nanti 3. 1. Program kura-kura pertama kamiMari kita coba beberapa baris di shell Python untuk membuat kura-kura baru dan mulai menggambar persegi panjang. (Kita akan memanggil variabel yang mengacu pada kura-kura pertama kita alex , tetapi Anda dapat memilih nama lain jika mengikuti aturan penamaan dari bab sebelumnya). 1 2 3 4 5 6 7 >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_ Setelah perintah kedua, jendela baru akan muncul. Perintah ketiga menempatkan kursor – biasanya disebut turtle dalam modul ini – yang kami beri nama alex. Tiga baris berikutnya menggerakkan alex ke depan, memutarnya ke kiri, dan menggerakkannya ke depan lagi, menyelesaikan dua sisi persegi panjang. Setelah perintah ini dimasukkan, Anda akan melihat jendela seperti ini Berikut beberapa hal yang perlu Anda pahami tentang program ini
Silakan dan klik pada jendela setelah memasukkan perintah terakhir Sebuah objek dapat memiliki berbagai metode — hal-hal yang dapat dilakukannya — dan juga dapat memiliki atribut — (terkadang disebut properti). Misalnya, setiap kura-kura memiliki atribut warna. Pemanggilan metode alex. color("red") akan membuat alex merah, dan menggambar juga akan menjadi merah. Warna kura-kura, lebar kandangnya, posisi kura-kura di dalam jendela, menghadap ke arah mana, dan seterusnya adalah bagian dari keadaannya saat ini. Demikian pula, objek jendela memiliki warna latar belakang, dan beberapa teks di bilah judul, serta ukuran dan posisi di layar. Ini semua adalah bagian dari status objek jendela Ada cukup banyak metode yang memungkinkan kita untuk memodifikasi objek turtle dan window. Kami hanya akan menunjukkan beberapa. Kami hanya mengomentari baris yang berbeda dari contoh sebelumnya (dan kami telah menggunakan nama variabel yang berbeda untuk kura-kura ini). Selain itu, kami akan menempatkan contoh ini dalam skrip bernama tess. py , karena terlalu lama untuk mengetik berulang-ulang ke dalam shell Python. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import turtle turtle.setup(800, 600) # set the window size to 800 by 600 pixels wn = turtle.Screen() # set wn to the window object wn.bgcolor("lightgreen") # set the window background color wn.title("Hello, Tess!") # set the window title tess = turtle.Turtle() tess.color("blue") # make tess blue tess.pensize(3) # set the width of her pen tess.forward(300) tess.left(120) tess.forward(300) wn.exitonclick() Menjalankan program ini akan membuat jendela grafis seperti ini Saat kami menjalankan program ini, jendela baru ini muncul, dan akan tetap berada di layar sampai kami mengkliknya Perpanjang program ini
3. 2. Contoh — kawanan kura-kuraSama seperti kita dapat memiliki banyak bilangan bulat yang berbeda dalam sebuah program, kita dapat memiliki banyak kura-kura. Masing-masing disebut instance. Setiap instance memiliki atribut dan metodenya sendiri — jadi alex mungkin menggambar dengan pulpen hitam tipis dan berada di posisi tertentu, sementara tess mungkin menuju ke arahnya sendiri dengan pulpen merah jambu gemuk. Jadi inilah yang terjadi ketika alex menyelesaikan persegi panjang, dan tess menyelesaikan segitiganya, dalam sebuah program bernama tess_n_alex. py . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38_ import turtle # setup the window and its attributes turtle.setup(800, 600) wn = turtle.Screen() wn.bgcolor("lightgreen") wn.title("Tess & Alex") # instantiate (create) tess and set her attributes tess = turtle.Turtle() tess.color("hotpink") tess.pensize(5) # instantiate alex alex = turtle.Turtle() # draw an equilateral triangle with tess tess.forward(320) tess.left(120) tess.forward(320) tess.left(120) tess.forward(320) tess.left(120) # turn tess around and move her away from the origin tess.right(180) tess.forward(320) # make alex draw a square alex.forward(200) alex.left(90) alex.forward(200) alex.left(90) alex.forward(200) alex.left(90) alex.forward(200) wn.exitonclick() yang menghasilkan ini saat dijalankan Berikut adalah beberapa Cara berpikir seperti pengamatan ilmuwan komputer
3. 3. Untuk loopSaat kami menggambar persegi, itu cukup membosankan. Kami harus bergerak lalu berbelok, bergerak lalu berbelok, dll. dll. , empat kali. Jika kita menggambar segi enam, atau segi delapan, atau poligon dengan 42 sisi, itu akan menjadi mimpi buruk. Jadi blok bangunan dasar dari semua program adalah untuk dapat mengulang beberapa kode, lagi dan lagi Python for loop memecahkan ini untuk kita Katakanlah kita memiliki beberapa teman, dan kita ingin mengirimi mereka masing-masing email yang mengundang mereka ke pesta kita. Karena kami belum tahu cara mengirim email, untuk saat ini kami hanya akan mencetak pesan untuk setiap teman 1 2 3_ for f in ["Joe", "Amy", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]: invitation = "Hi " + f + ". Please come to my party on Saturday!" print(invitation) Ketika kami menjalankan ini, hasilnya terlihat seperti ini Hi Joe. Please come to my party on Saturday! Hi Amy. Please come to my party on Saturday! Hi Brad. Please come to my party on Saturday! Hi Angelina. Please come to my party on Saturday! Hi Zuki. Please come to my party on Saturday! Hi Thandi. Please come to my party on Saturday! Hi Paris. Please come to my party on Saturday!_ Pelajarilah contoh ini dengan seksama dan perhatikan hal-hal berikut
3. 4. Aliran Eksekusi untuk loopDiagram alir untuk perulangan Saat sebuah program dieksekusi, interpreter selalu melacak pernyataan mana yang akan dieksekusi. Kami menyebutnya aliran kontrol, aliran eksekusi program. Ketika manusia menjalankan program, mereka sering menggunakan jari mereka untuk menunjuk ke setiap pernyataan secara bergantian. Jadi Anda bisa menganggap aliran kontrol sebagai "jari bergerak Python" Alur kontrol sampai sekarang hanya dari atas ke bawah, satu pernyataan dalam satu waktu. Loop for mengubah ini. Aliran kontrol seringkali mudah divisualisasikan dan dipahami jika kita menggambar bagan alur. Ini menunjukkan langkah-langkah yang tepat dan logika bagaimana pernyataan untuk dijalankan. 3. 5. Loop menyederhanakan program turtle kitaUntuk menggambar persegi, kami ingin melakukan hal yang sama empat kali — gerakkan kura-kura, dan putar. Kami sebelumnya menggunakan 8 baris untuk membuat alex menggambar empat sisi persegi. Ini persis sama, tetapi hanya menggunakan tiga baris for i in [0, 1, 2, 3]: alex.forward(250) alex.left(90)_ Meskipun menyimpan beberapa baris kode mungkin nyaman, ini bukan masalah besar di sini. Yang jauh lebih penting adalah kami telah menemukan pola pernyataan yang berulang, dan mengatur ulang program kami untuk mengulangi pola tersebut. Menemukan bongkahan dan entah bagaimana mengatur program kita di sekitar bongkahan itu adalah keterampilan penting dalam Cara berpikir seperti ilmuwan komputer Nilai dalam daftar, [0, 1, 2, 3], were provided to make the loop body execute 4 times. We could have used any four values, but these are the conventional ones to use. In fact, they are so popular that Python gives us a special built-in rentang bawaan khusus untuk tujuan ini. >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_0 Perhatikan bahwa
Kita juga dapat membuat daftar angka dengan meneruskan keluaran panggilan ke fungsi rentang ke fungsi list type function: >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_1 Coba ini Apa yang dikembalikan list(range(0)) ? list(range(1))? Trik kecil kita sebelumnya untuk memastikan bahwa alex melakukan putaran terakhir untuk menyelesaikan 360 derajat telah terbayar. jika kita tidak melakukan itu, maka kita tidak akan bisa menggunakan loop untuk sisi keempat dari alun-alun. Itu akan menjadi “kasus khusus”, berbeda dari pihak lain. Jika memungkinkan, kami lebih suka membuat kode kami sesuai dengan pola umum, daripada harus membuat kasus khusus. Jadi untuk mengulang sesuatu empat kali, programmer Python yang baik akan melakukannya >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_2 Sekarang Anda seharusnya dapat melihat bagaimana mengubah program kami sebelumnya sehingga tess juga dapat menggunakan for loop to draw her equilateral triangle. Apa yang akan terjadi jika kita melakukan perubahan ini >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_3 Sebuah variabel juga dapat diberi nilai yang berupa daftar. Jadi, daftar juga dapat digunakan dalam situasi selain perulangan for . Kode di atas dapat ditulis ulang seperti ini. >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_4 3. 6. Beberapa metode dan trik kura-kura lagiMetode Turtle dapat menggunakan sudut atau jarak negatif. Jadi tess. maju(-100) akan memindahkan tess mundur, dan tess. kiri(-30) mengubahnya ke kanan. Selain itu, karena ada 360 derajat dalam lingkaran, memutar 30 ke kiri akan membuat Anda menghadap ke arah yang sama dengan berbelok 330 ke kanan. (Namun, animasi di layar akan berbeda — Anda akan dapat mengetahui apakah tess berputar searah jarum jam atau berlawanan arah jarum jam. ) Ini menunjukkan bahwa kita tidak memerlukan metode belok kiri dan belok kanan — kita dapat menjadi minimalis, dan hanya memiliki satu metode. Ada juga metode mundur. (Jika Anda sangat kutu buku, Anda mungkin senang mengucapkan alex. mundur(-100) untuk menggerakkan alex ke depan. ) Bagian dari berpikir seperti seorang ilmuwan adalah untuk lebih memahami struktur dan hubungan yang kaya di bidang Anda. Jadi merevisi beberapa fakta dasar tentang geometri dan garis bilangan, seperti yang telah kita lakukan di sini adalah awal yang baik jika kita akan bermain dengan kura-kura. Pena kura-kura dapat diambil atau diletakkan. Ini memungkinkan kita untuk memindahkan kura-kura ke tempat lain tanpa menggambar garis. Metodenya adalah >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_5 Setiap kura-kura bisa memiliki bentuknya sendiri. Yang tersedia “out of the box” adalah panah , kosong , . circle, classic, square, triangle, turtle. >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_6 Anda dapat mempercepat atau memperlambat kecepatan animasi kura-kura. (Animasi mengontrol seberapa cepat kura-kura berputar dan bergerak maju). Pengaturan kecepatan dapat diatur antara 1 (paling lambat) hingga 10 (tercepat). Tetapi jika Anda menyetel kecepatan ke 0, ini memiliki arti khusus — matikan animasi dan lakukan secepat mungkin >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_7 Seekor kura-kura dapat "mencap" jejaknya ke atas kanvas, dan ini akan tetap ada setelah kura-kura tersebut pindah ke tempat lain. Stamping berfungsi, bahkan saat pena sudah habis Mari kita lakukan contoh yang memamerkan beberapa fitur baru ini di spiral. py . >>> import turtle >>> turtle.setup(800, 600) >>> alex = turtle.Turtle() >>> alex.forward(300) >>> alex.left(90) >>> alex.forward(200) >>> exit()_8 yang menghasilkan ini saat dijalankan Hati-hati sekarang. semua kecuali satu bentuk yang Anda lihat di layar di sini adalah jejak kaki yang dibuat oleh cap . Tetapi program tersebut masih hanya memiliki satu instance turtle — dapatkah Anda mengetahui tess yang sebenarnya? . jika Anda tidak yakin, tulis baris kode baru setelah for loop untuk mengubah warna tess, atau untuk meletakkan penanya dan menggambar . ) 3. 7. Glosariumattribute Beberapa status atau nilai yang dimiliki oleh objek tertentu. Misalnya, tess memiliki warna. permukaan kanvas di dalam jendela tempat menggambar berlangsung. alur kontrol Lihat alur eksekusi di bab berikutnya. for pernyataan loop dengan Python untuk pengulangan pernyataan yang nyaman di badan loop. listSebuah tipe data Python yang berisi kumpulan nilai. Daftar dalam Python diapit tanda kurung siku ( [ , ] ) dan . loop bodySejumlah pernyataan bersarang di dalam loop. Bersarang ditunjukkan oleh fakta bahwa pernyataan diindentasi di bawah pernyataan for loop. variabel loop Variabel yang digunakan sebagai bagian dari perulangan for. Itu diberikan nilai yang berbeda pada setiap iterasi dari loop, dan digunakan sebagai bagian dari kondisi terminasi dari loop, instanceSebuah objek yang dimiliki oleh sebuah kelas. tess dan alex adalah instance yang berbeda dari fungsi TurtlemethodA kelas yang dilampirkan ke objek. Memanggil atau mengaktifkan metode menyebabkan objek merespons dengan cara tertentu, mis. g. ,).loop bodyAny number of statements nested inside a loop. The nesting is indicated by the fact that the statements are indented under the for loop statement.loop variableA variable used as part of a for loop. It is assigned a different value on each iteration of the loop, and is used as part of the terminating condition of the loop,instanceAn object that belongs to a class. tess and alex are different instances of the class TurtlemethodA function that is attached to an object. Invoking or activating the method causes the object to respond in some way, e.g. maju adalah metode ketika kita mengatakan tess. maju(100) . invokeSebuah objek memiliki metode. Kami menggunakan kata kerja memohon berarti mengaktifkan metode. Memanggil metode dilakukan dengan meletakkan tanda kurung setelah nama metode, dengan beberapa kemungkinan argumen. Jadi wn. exitonclick() adalah pemanggilan metode exitonclick . moduleSebuah file yang berisi definisi dan pernyataan Python yang dimaksudkan untuk digunakan dalam program Python lainnya. Isi modul dibuat tersedia untuk program lain dengan menggunakan pernyataan impor. objectA "benda" yang dapat dirujuk oleh variabel. Ini bisa berupa jendela layar, atau salah satu kura-kura yang telah Anda buat. rangeA fungsi bawaan di Python untuk menghasilkan urutan bilangan bulat. Ini sangat berguna ketika kita perlu menulis for loop yang mengeksekusi beberapa kali. kondisi terminating Kondisi yang terjadi yang menyebabkan loop berhenti mengulangi tubuhnya. Dalam perulangan for yang kita lihat di bab ini, kondisi terminasi adalah ketika tidak ada lagi elemen yang ditetapkan ke variabel perulangan.3. 8. Latihan
|