Tutorial pengen...login
Tutorial pengenalan asas Python
pengarang:php.cn  masa kemas kini:2022-04-18 16:14:50

Fungsi Python


Fungsi ialah segmen kod yang teratur dan boleh diguna semula yang digunakan untuk melaksanakan fungsi tunggal atau berkaitan. Fungsi

boleh meningkatkan modulariti aplikasi dan penggunaan semula kod. Anda sudah tahu bahawa Python menyediakan banyak fungsi terbina dalam, seperti print(). Tetapi anda juga boleh mencipta fungsi anda sendiri, yang dipanggil fungsi yang ditentukan pengguna.


Tentukan fungsi

Anda boleh mentakrifkan fungsi dengan fungsi yang anda mahu, berikut adalah peraturan mudah:

  • Kod fungsi A blok bermula dengan kata kunci def, diikuti dengan nama pengecam fungsi dan kurungan ().

  • Sebarang parameter dan hujah yang masuk mesti diletakkan di antara kurungan. Parameter boleh ditakrifkan antara kurungan.

  • Baris pertama fungsi boleh secara pilihan menggunakan docstring - digunakan untuk menyimpan perihalan fungsi.

  • Kandungan fungsi bermula dengan kolon dan diinden.

  • kembali [ungkapan] Menamatkan fungsi, secara pilihan mengembalikan nilai kepada pemanggil. Kembali tanpa ungkapan adalah bersamaan dengan mengembalikan Tiada.


Sintaks

def functionname(parameter):
"Function_docstring"
function_suite
kembalikan [ ungkapan]

Secara lalai, nilai parameter dan nama parameter dipadankan dalam susunan yang ditakrifkan dalam pengisytiharan fungsi.

Contoh

Berikut ialah fungsi Python mudah yang mengambil rentetan sebagai parameter input dan mencetaknya ke peranti paparan standard.

def printme(str):
"Cetak rentetan masuk ke peranti paparan standard"
print str
return

Panggilan fungsi

Mentakrifkan fungsi hanya memberikan nama fungsi, menentukan parameter yang terkandung dalam fungsi dan struktur blok kod.

Selepas struktur asas fungsi ini selesai, anda boleh melaksanakannya melalui panggilan fungsi lain atau terus daripada gesaan Python.

Fungsi printme() dipanggil dalam contoh berikut:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

# Tentukan fungsi
def printme(str):
"Cetak sebarang rentetan masuk"
print str;
return;

# Fungsi panggilan
printme("Saya mahu memanggil fungsi yang ditentukan pengguna!");
printme("Panggil fungsi yang sama sekali lagi");

Hasil keluaran contoh di atas:

Saya mahu memanggil fungsi yang ditentukan pengguna!
Panggil fungsi yang sama sekali lagi

Melalui parameter mengikut nilai dan menghantar parameter mengikut rujukan

Semua parameter (pembolehubah bebas) diluluskan melalui rujukan dalam Python. Jika anda menukar parameter dalam fungsi, parameter asal juga akan ditukar dalam fungsi yang memanggil fungsi ini. Contohnya:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

# Penerangan fungsi boleh tulis
def changeme (mylist):
"Ubah suai senarai masuk"
mylist.append([1,2,3,4]);
print "Nilai dalam fungsi: ", mylist
return

# Panggil fungsi changeme
mylist = [10,20,30];
changeme( mylist );
print "Nilai di luar fungsi: ", mylist

Objek yang dihantar ke dalam fungsi dan objek untuk menambah kandungan baharu pada akhirnya menggunakan rujukan yang sama. Oleh itu, hasil keluaran adalah seperti berikut:

Nilai dalam fungsi: [10, 20, 30, [1, 2, 3, 4]]
Nilai di luar fungsi: [10, 20, 30 , [1, 2, 3, 4]]

Parameter

Berikut ialah jenis parameter formal yang boleh digunakan apabila fungsi panggilan:

  • Parameter yang diperlukan

  • Parameter kata kunci

  • Parameter lalai

  • Parameter panjang boleh ubah

Parameter yang diperlukan

Parameter yang diperlukan mesti dihantar ke dalam fungsi dalam susunan yang betul. Kuantiti apabila dipanggil mestilah sama seperti semasa diisytiharkan.

Apabila memanggil fungsi printme(), anda mesti memasukkan parameter, jika tidak ralat sintaks akan berlaku:

#!/usr/bin/python
# - *- pengekodan : UTF-8 -*-

#Penerangan fungsi boleh tulis
def printme(str):
"Cetak sebarang rentetan masuk"
print str;
return; 🎜>
Fungsi #Panggil printme
printme();
Hasil keluaran contoh di atas:

Traceback (panggilan terbaharu terakhir):
Fail "test.py", baris 11, dalam <module>
printme();
TypeError: printme() mengambil tepat 1 argumen (0 diberikan)

Parameter kata kunci

Parameter kata kunci berkait rapat dengan panggilan fungsi menggunakan parameter kata kunci untuk menentukan nilai parameter yang dihantar.

Menggunakan hujah kata kunci membolehkan fungsi dipanggil dalam susunan yang berbeza daripada semasa ia diisytiharkan, kerana penterjemah Python dapat memadankan nama parameter dengan nilai parameter.

Contoh berikut menggunakan nama parameter apabila memanggil function printme():

#!/usr/bin/python
# -*- pengekodan: UTF-8 -* -

#Penerangan fungsi boleh tulis
def printme(str):
"Cetak sebarang rentetan masuk"
print str;
return;

#Panggil printme function
printme(str = "My string");

Contoh hasil output di atas:

My string

The contoh berikut boleh menunjukkan dengan lebih jelas bahawa susunan parameter kata kunci tidak penting:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

#Penerangan fungsi boleh tulis
def printinfo(nama, umur):
"Cetak sebarang rentetan masuk"
cetak "Nama: ", nama;
cetak "Umur " , umur;
kembali;

#Panggil fungsi printinfo
printinfo(age=50, name="miki");

Hasil output contoh di atas:

Nama: miki
Umur 50

Parameter lalai

Apabila memanggil fungsi, jika nilai parameter lalai tidak dimasukkan, ia dianggap sebagai nilai lalai. Contoh berikut akan mencetak umur lalai jika umur tidak dilalui:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

#Penerangan fungsi boleh tulis
def printinfo(nama, umur = 35):
"Cetak sebarang rentetan masuk"
cetak "Nama: ", nama;
cetak "Umur " , umur;
kembali;

#Panggil fungsi printinfo
printinfo(age=50, name="miki");
printinfo(name="miki");

Hasil keluaran contoh di atas:

Nama: miki
Umur 50
Nama: miki
Umur 35

Parameter panjang tidak tentu

Anda mungkin memerlukan fungsi yang boleh mengendalikan lebih banyak parameter daripada yang diisytiharkan pada asalnya. Parameter ini dipanggil parameter panjang berubah-ubah Tidak seperti dua parameter di atas, ia tidak akan dinamakan apabila diisytiharkan. Sintaks asas adalah seperti berikut:

def functionname([formal_args,] *var_args_tuple):
"Function_docstring"
function_suite
return [expression]

Nama pembolehubah dengan asterisk (*) akan menyimpan semua parameter pembolehubah yang tidak dinamakan. Anda juga boleh memilih untuk tidak melepasi lebih banyak parameter. Contoh berikut:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

# Penerangan fungsi boleh tulis
def printinfo(arg1, *vartuple):
"Cetak sebarang argumen yang diluluskan"
print "Output: "
print arg1
untuk var dalam vartuple:
print var
return; >
# Panggil fungsi printinfo
printinfo( 10 );
printinfo( 70, 60, 50 );
Contoh hasil output di atas:

Output:
10
Output:
70
60
50

Fungsi tanpa nama

python menggunakan lambda untuk Cipta fungsi tanpa nama.

  • lambda hanyalah ungkapan, dan badan fungsi jauh lebih ringkas daripada def.

  • Isi badan lambda ialah ungkapan, bukan blok kod. Hanya logik terhad boleh dirangkumkan dalam ungkapan lambda.

  • Fungsi lambda mempunyai ruang nama sendiri dan tidak boleh mengakses parameter di luar senarai parameternya sendiri atau dalam ruang nama global.

  • Walaupun fungsi lambda nampaknya hanya boleh menulis satu baris, ia tidak bersamaan dengan fungsi sebaris C atau C++ Tujuan yang terakhir adalah untuk memanggil fungsi kecil tanpa menduduki memori tindanan dan dengan itu meningkatkan kecekapan pelaksanaan.

Sintaks

Sintaks fungsi lambda hanya mengandungi satu pernyataan, seperti berikut:

lambda [arg1 [,arg2,. ... .argn]]:expression
Contoh berikut:

#!/usr/bin/python
# -*- pengekodan: UTF- 8 -*-

# Penerangan fungsi boleh tulis
sum = lambda arg1, arg2: arg1 + arg2;

# Panggil fungsi jumlah
cetak "Nilai tambah ialah: " , sum ( 10, 20 )
cetak "Nilai tambah ialah : ", sum( 20, 20 )
Contoh hasil output di atas:

Tambah Nilai selepas tambah ialah: 30
Nilai selepas tambah ialah: 40

kenyataan pulangan

kenyataan pulangan [ungkapan] keluar dari fungsi dan secara pilihan mengembalikan ungkapan kepada pemanggil. Kenyataan pulangan tanpa nilai parameter mengembalikan Tiada. Contoh sebelumnya tidak menunjukkan cara mengembalikan nilai Contoh berikut akan memberitahu anda cara melakukannya:

#!/usr/bin/python
# -*- pengekodan: UTF -8 -*-

# Penerangan fungsi boleh tulis
def sum(arg1, arg2):
#Mengembalikan jumlah 2 parameter "
jumlah = arg1 + arg2
". cetak dalam fungsi: ", jumlah
kembalikan jumlah;

# Fungsi jumlah panggilan
jumlah = jumlah(10, 20);
cetak "Di luar fungsi: ", jumlah

Hasil keluaran contoh di atas:

Di dalam fungsi: 30
Di luar fungsi: 30

Skop pembolehubah

program Tidak semua pembolehubah boleh diakses di semua lokasi bergantung pada tempat pembolehubah ditetapkan.