Tetapkan nilai pengembalian fungsi ke variabel python
Anda tidak hanya dapat melewatkan nilai parameter ke dalam fungsi, fungsi juga dapat menghasilkan nilai. Anda telah melihat ini di beberapa fungsi sebelumnya yang telah Anda gunakan. Misalnya, Show Fungsi yang mengembalikan nilai terkadang disebut fungsi berbuah. Dalam banyak bahasa lain, fungsi yang tidak mengembalikan nilai disebut prosedur, tetapi kami akan tetap di sini dengan cara Python juga menyebutnya fungsi, atau jika kami ingin menekankannya, fungsi yang tidak bermanfaat Bagaimana kita menulis fungsi berbuah kita sendiri? . Fungsi kuadrat akan mengambil satu angka sebagai parameter dan mengembalikan hasil kuadrat angka itu. Berikut adalah diagram kotak hitam dengan kode Python berikut Pernyataan pengembalian diikuti oleh ekspresi yang dievaluasi. Hasilnya dikembalikan ke pemanggil sebagai "buah" dari pemanggilan fungsi ini. Karena pernyataan pengembalian dapat berisi ekspresi Python apa pun, kami dapat menghindari membuat variabel sementara def addEm(x, y, z): print(x+y+z)0 dan hanya menggunakan def addEm(x, y, z): print(x+y+z)1. Coba modifikasi fungsi kuadrat di atas untuk melihat bahwa ini berfungsi sama. Di sisi lain, menggunakan variabel sementara seperti def addEm(x, y, z): print(x+y+z)0 dalam program di atas membuat proses debug lebih mudah. Variabel sementara ini disebut sebagai variabel lokal Perhatikan sesuatu yang penting di sini. Nama variabel yang kami berikan sebagai argumen — def addEm(x, y, z): print(x+y+z)3 — tidak ada hubungannya dengan nama parameter formal — def addEm(x, y, z): print(x+y+z)4. Seolah-olah def addEm(x, y, z): print(x+y+z)5 dieksekusi ketika square dipanggil. Tidak masalah nilai apa yang disebutkan di pemanggil (tempat fungsi dipanggil). Di dalam ________ 46 ______, namanya adalah def addEm(x, y, z): print(x+y+z)4. Anda dapat melihat ini dengan sangat jelas di codelens, di mana variabel global dan variabel lokal untuk fungsi kuadrat berada di kotak terpisah Aktivitas. CodeLens 12. 5. 3 (klin11_4_1) Ada satu aspek lagi dari nilai pengembalian fungsi yang harus diperhatikan. Semua fungsi Python mengembalikan nilai khusus def addEm(x, y, z): print(x+y+z)_9 kecuali ada pernyataan pengembalian eksplisit dengan nilai selain def addEm(x, y, z): print(x+y+z)9. Pertimbangkan kesalahan umum berikut yang dibuat oleh programmer Python pemula. Saat Anda menelusuri contoh ini, perhatikan baik-baik nilai pengembalian dalam daftar variabel lokal. Kemudian lihat apa yang dicetak saat fungsinya selesai Aktivitas. CodeLens 12. 5. 4 (klin11_4_2) Masalah dengan fungsi ini adalah meskipun ia mencetak nilai input kuadrat, nilai tersebut tidak akan dikembalikan ke tempat pemanggilan dilakukan. Sebagai gantinya, nilai def addEm(x, y, z): print(x+y+z)_9 akan dikembalikan. Karena baris 6 menggunakan nilai pengembalian sebagai sisi kanan pernyataan penugasan, def square(x): y = x * x return y print(square(5) + square(5))2 akan memiliki def addEm(x, y, z): print(x+y+z)9 sebagai nilainya dan hasil yang dicetak di baris 7 salah. Biasanya, fungsi akan mengembalikan nilai yang dapat dicetak atau diproses dengan cara lain oleh pemanggil Pernyataan pengembalian, setelah dieksekusi, segera menghentikan eksekusi suatu fungsi, meskipun itu bukan pernyataan terakhir dalam fungsi tersebut. Dalam kode berikut, ketika baris 3 dijalankan, nilai 5 dikembalikan dan ditetapkan ke variabel x, lalu dicetak. Baris 4 dan 5 tidak pernah dieksekusi. Jalankan kode berikut dan coba buat beberapa modifikasi untuk memastikan Anda mengerti mengapa "di sana" dan 10 tidak pernah dicetak Fakta bahwa pernyataan kembali segera mengakhiri eksekusi blok kode di dalam suatu fungsi penting untuk dipahami untuk menulis program yang kompleks, dan ini juga bisa sangat berguna. Contoh berikut adalah situasi di mana Anda dapat menggunakan ini untuk keuntungan Anda – dan memahami ini akan membantu Anda memahami kode orang lain dengan lebih baik, dan dapat menelusuri kode dengan lebih percaya diri Pertimbangkan situasi di mana Anda ingin menulis sebuah fungsi untuk mengetahui, dari daftar kehadiran kelas, apakah nama depan seseorang lebih dari lima huruf, disebut def square(x): y = x * x return y print(square(5) + square(5))4. Jika ada seseorang di kelas yang nama depannya lebih dari 5 huruf, fungsinya harus mengembalikan def square(x): y = x * x return y print(square(5) + square(5))5. Jika tidak, itu harus mengembalikan def square(x): y = x * x return y print(square(5) + square(5))6 Dalam hal ini, Anda akan menggunakan pernyataan bersyarat dalam kode yang ada di badan fungsi, blok kode diindentasi di bawah pernyataan definisi fungsi (seperti kode yang dimulai dengan baris def square(x): y = x * x return y print(square(5) + square(5))7 pada contoh di atas – itu adalah badan Tantangan bonus untuk belajar. Setelah anda melihat penjelasan di bawah ini, berhentilah melihat kode – deskripsi fungsi diatasnya saja, dan coba tulis kodenya sendiri. Kemudian uji pada daftar yang berbeda dan pastikan itu berfungsi. Namun bacalah penjelasannya terlebih dahulu, agar Anda yakin memiliki pemahaman yang kuat tentang mekanika fungsi tersebut Pertama, rencana bahasa Inggris untuk mendefinisikan fungsi baru ini disebut def square(x): y = x * x return y print(square(5) + square(5))4
Sekarang, kodenya Sejauh ini, kita baru saja melihat nilai pengembalian yang ditugaskan ke variabel. Misalnya, kami memiliki garis def square(x): y = x * x return y print(square(square(2)))2. Seperti semua pernyataan penugasan, sisi kanan dieksekusi terlebih dahulu. Ini memanggil fungsi square _, meneruskan nilai parameter 10 (nilai saat ini dari def addEm(x, y, z): print(x+y+z)3). Itu mengembalikan nilai 100, yang melengkapi evaluasi sisi kanan tugas. 100 kemudian ditugaskan ke variabel def square(x): y = x * x return y print(square(5) + square(5))2. Dalam hal ini, pemanggilan fungsi adalah seluruh ekspresi yang dievaluasi Akan tetapi, pemanggilan fungsi juga dapat digunakan sebagai bagian dari ekspresi yang lebih rumit. Misalnya, ________20______6. Dalam hal ini, nilai 100 dikembalikan dan kemudian dikalikan dengan 2 untuk menghasilkan nilai 200. Ketika python mengevaluasi ekspresi seperti def square(x): y = x * x return y print(square(square(2)))7, itu menggantikan nilai x saat ini ke dalam ekspresi dan kemudian melakukan perkalian. Ketika python mengevaluasi ekspresi seperti def square(x): y = x * x return y print(square(square(2)))_8, itu menggantikan nilai pengembalian 100 untuk seluruh pemanggilan fungsi dan kemudian melakukan perkalian Untuk mengulangi, ketika mengeksekusi baris kode def square(x): y = x * x return y print(square(square(2)))6, juru bahasa python melakukan langkah-langkah ini
Periksa pemahaman Anda Apa yang salah dengan definisi fungsi berikut def addEm(x, y, z): return x+y+z print('the answer is', x+y+z) Apa yang akan dikembalikan oleh fungsi berikut? def addEm(x, y, z): print(x+y+z) Apa yang akan dihasilkan oleh kode berikut? def square(x): y = x * x return y print(square(5) + square(5)) Apa yang akan dihasilkan oleh kode berikut? def square(x): y = x * x return y print(square(square(2))) Apa yang akan dihasilkan oleh kode berikut? def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long") Mana yang akan dicetak terlebih dahulu, persegi, g, atau angka? def square(x): print("square") return x*x def g(y): print("g") return y + 3 print(square(g(2))) Berapa banyak baris kode berikut yang akan dicetak? def show_me_numbers(list_of_ints): print(10) print("Next we'll accumulate the sum") accum = 0 for num in list_of_ints: accum = accum + num return accum print("All done with accumulation!") show_me_numbers([4,2,3]) 8. Tulis fungsi bernama def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")3 yang mengambil string sebagai input, dan cukup mengembalikan string itu 9. Tulis fungsi bernama def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")_4 yang mengembalikan parameter, tidak berubah 10. Tulis fungsi yang disebut def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")_5 yang mengambil bilangan bulat atau angka apa pun sebagai input, dan mengembalikan angka itu dikurangi tiga 11. Tulis fungsi yang disebut def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")_6 yang mengambil satu angka sebagai inputnya dan mengembalikan angka itu, ditambah 7 12. Tulis fungsi bernama def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")_7 yang menggunakan string sebagai input. String ini dimaksudkan sebagai nama seseorang dan keluarannya adalah sapaan standar. Misalnya, diberi string "Becky" sebagai input, fungsi tersebut harus dikembalikan. “Halo, nama saya Becky dan saya suka SI 106. ” 13. Tulis fungsi yang disebut def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")8 yang mengambil satu string sebagai input dan mengembalikan string itu, digabungkan dengan string ” untuk bersenang-senang. ” 14. Tulis fungsi bernama def cyu2(s1, s2): x = len(s1) y = len(s2) return x-y z = cyu2("Yes", "no") if z > 0: print("First one was longer") else: print("Second one was at least as long")9 yang menggunakan string sebagai input, lalu periksa jumlah karakter. Jika memiliki lebih dari 17 karakter, kembalikan "Ini adalah string yang panjang", jika lebih pendek atau memiliki 17 karakter, kembalikan "Ini adalah string pendek" Bagaimana Anda menetapkan nilai pengembalian ke variabel dengan Python?Pernyataan pengembalian Python adalah pernyataan khusus yang dapat Anda gunakan di dalam fungsi atau metode untuk mengirim kembali hasil fungsi ke pemanggil. Pernyataan return terdiri dari kata kunci return diikuti dengan nilai return opsional . Nilai pengembalian fungsi Python bisa berupa objek Python apa saja.
Bagaimana Anda menetapkan hasil fungsi ke variabel dengan Python?Operator penugasan, dilambangkan dengan simbol “=”, adalah operator yang digunakan untuk menetapkan nilai ke variabel dalam Python . Baris x=1 mengambil nilai yang diketahui, 1, dan menugaskan nilai itu ke variabel dengan nama "x". Setelah mengeksekusi baris ini, angka ini akan disimpan ke dalam variabel ini.
Bisakah suatu fungsi mengembalikan variabel Python?Fungsi Python dapat mengembalikan banyak variabel . Variabel ini dapat disimpan dalam variabel secara langsung. Suatu fungsi tidak diharuskan untuk mengembalikan variabel, ia dapat mengembalikan nol, satu, dua atau lebih variabel. Ini adalah properti unik Python, bahasa pemrograman lain seperti C++ atau Java tidak mendukung ini secara default.
Bagaimana Anda mengembalikan nilai dari variabel ke fungsi?Untuk mengembalikan nilai dari suatu fungsi, Anda harus menyertakan pernyataan pengembalian, diikuti dengan nilai yang akan dikembalikan, sebelum pernyataan akhir fungsi. If you do not include a return statement or if you do not specify a value after the keyword return, the value returned by the function is unpredictable. |