Tutorial Python untuk bukan pengatur cara/Fungsi: Perbezaan antara semakan

Kandungan dihapus Kandungan ditambah
Aurora (bincang | sumb.)
kemas
Aurora (bincang | sumb.)
terjemah
Baris 34:
print "Nilai mutlak", a, "dan", b, "adalah sama"
else:
print "Nilai mutlak", a, "dan", b, "berbeza"
</source lang=python>
 
akan memaparkan:
<pre>
Nilai mutlak 23 dan -23 adalah sama
</pre>
Ciri utama program diatas adalah <tt>def</tt>. <tt>def</tt> (kependekan untuk define - definisi). <tt>def</tt> dituruti oleh '''nama''' fungsi (<tt>mutlak</tt>). Kemudian parameter <tt>num</tt> dihantar (passed) daripada program kepada fungsi mutlak() tadi. Statement selepas <tt>:</tt> (colon) akan dilaksanakan apabila fungsi dipanggil. Statement didalam fungsi akan terus dilaksanakan sehingga katakunci (keyword) <tt>return</tt> ditemukan atau indentasi fungsi berakhir. <tt>return</tt> akan mengembalikan nilai kepada program utama.
 
Nilai mutlak 23 dan -23 adalah sama
Perhatikan nilai <tt>a</tt> dan <tt>b</tt> diatas tidak berubah. Fungsi boleh digunakan untuk mengulangi tugas (task) yang tidak mengembalikan apa-apa nilai. Contoh:
 
<pre>
Ciri utama program diatasdi atas adalah <ttcode>def</ttcode>. <ttcode>def</ttcode> (kependekan untuk ''define'' - definisi). <tt>def</tt> dituruti oleh '''nama''' fungsi (<ttcode>mutlak</ttcode>). Kemudian parameter <ttcode>num</ttcode> dihantar (passed)daripada daripadaatur programcara kepada fungsi mutlak() tadi. StatementKenyataan selepas <tt>:</tt> (colon) akan dilaksanakan apabila fungsi dipanggil. StatementKenyatan didalamdi dalam fungsi akan terus dilaksanakan sehingga katakuncikata (keyword)kunci <ttcode>return</ttcode> ditemukanditemui atau indentasiengsotan fungsi berakhir. <ttcode>return</ttcode> akan mengembalikan nilai kepada programatur cara utama.
 
Perhatikan nilai <ttcode>a</ttcode> dan <ttcode>b</ttcode> diatasdi atas tidak berubah. Fungsi boleh digunakan untuk mengulangi tugas (task) yang tidak mengembalikan apa-apa nilai. Contoh:
<source lang="python">
def hello():
print "Hello"
Baris 60 ⟶ 61:
h = 5
print "lebar =", w, "tinggi =", h, "keluasan =", area(w, h)
</presource>
akan memaparkan:
<pre>
Baris 73 ⟶ 74:
<!-- Fungsi boleh digunakan untuk mengurangkan kod yang berulang-ulang (repetitive). -->
 
=== '''Pembolehubah''' di dalam '''Fungsi'''fungsi ===
Apabila membuang kod yang berulang, biasanya akan ada pembolehubah didalamnya. Dalam Python, pembolehubah akan diuruskan dalam cara yang istimewa. Setakat ini, semua pembolehubah yang dipakai adalah global (didalam program utama, diluar fungsi).
Fungsi ada sejenis pembolehubah istimewa dipanggil '''pembolehubah setempat''' (local variables). Pembolehubah jenis ini hanya akan wujud (secara maya) apabila fungsinya dipanggil/dijalankan.
Baris 118 ⟶ 119:
</pre>
 
Didalam contoh ini, pembolehubah <ttcode>a_var</ttcode>, <ttcode>b_var</ttcode>, dan <ttcode>d_var</ttcode> adalah pembolehubah setempat, apabila berada didalam fungsi <ttcode>a_func</ttcode>. Selepas kenyataan <ttcode>return b_var + 10</ttcode> dijalankan, keempat-empat pembolehubah tadi akan lenyap. Pembolehubah <ttcode>a_var</ttcode> akan secara automatik menjadi pembolehubah setempat kerana ia adalah parameter kepada fungsi <ttcode>a_func</ttcode>. Pembolehubah <ttcode>b_var</ttcode> dan <ttcode>d_var</ttcode> juga adalah pembolehubah setempat kerana kedua-duanya berada disebelah kiri tanda <ttcode>=</ttcode> didalam pernyataan <ttcode>b_var = 100 + a_var</ttcode> and <ttcode>d_var = 2 * a_var</ttcode>.
 
Semasa didalam fungsi, <ttcode>a_var</ttcode> = 15 kerana fungsi tersebut dipanggil dengan <ttcode>a_func(b_var)</ttcode>. Disebabkan semasa itu <ttcode>b_var</ttcode> = 15, maka panggilan kepada fungsi tersebut menjadi <ttcode>a_func(15)</ttcode>. Ini menyebabkan <ttcode>a_var</ttcode> menjadi 15 semasa ia berada didalam <ttcode>a_func</ttcode>
 
Seperti yang dapat dilihat, sebaik sahaja fungsi <ttcode>a_func</ttcode> habis dijalankan, pembolehubah setempat <ttcode>a_var</ttcode> dan <ttcode>b_var</ttcode> akan hilang dan digantikan dengan pembolehubah yang asal. Kenyataan <ttcode>print "a_var = ", a_var</ttcode> akan memaparkan nilai <ttcode>10</ttcode> (bukan <ttcode>15</ttcode>) kerana pembolehubah setempat telah hilang.
 
Perhatikan juga <ttcode>NameError</ttcode> yang berlaku. Pembolehubah <ttcode>d_var</ttcode> tidak lagi wujud kerana <ttcode>a_func</ttcode> telah habis dijalankan. Jika terdapat nilai yang dikehendaki dari sesuatu fungsi, bolehlah menggunakan <ttcode>return</ttcode>, contohnya <ttcode>return a_var</ttcode>.
 
Satu perkara lagi, perhatikan nilai <ttcode>e_var</ttcode> yang tidak berubah semasa didalam <ttcode>a_func</ttcode> kerana ia tidak menjadi parameter dan tiada kenyataan didalam fungsi tersebut yang mengubah nilainya.
 
Sesuatu fungsi membenarkan pembolehubah setempat wujud hanya didalam fungsi itu sahaja. Ia juga akan menyorokkan pembolehubah yang mempunyai nama yang sama diluar fungsi tersebut.
 
=== ExamplesContoh ===
temperature2.py
<pre>