Pengaturcaraan Python: Menguasai takrifan fungsi, jenis dan cara menghantar parameter dengan mudah

WBOY
Lepaskan: 2023-04-13 08:49:07
ke hadapan
1039 orang telah melayarinya

Kata Pengantar

Artikel ini membantu anda memahami dan menguasai ciri teras bahasa Python dengan mudah - fungsi: mentakrifkan bentuk sintaks dan fungsi, serta memperkenalkan dua cara untuk menghantar parameter fungsi.

Maksud fungsi

Fungsi ialah blok pernyataan yang melaksanakan tugas tertentu Ia merupakan sebahagian daripada kod yang membolehkan pengaturcara menggunakan semula, yang menggalakkan konsep modular daripada program perisian. Idea utama di sebalik pendekatan ini adalah untuk membahagikan blok besar kod kepada bahagian bebas yang lebih kecil dan oleh itu sub-blok yang lebih mudah diurus. Terdapat dua jenis fungsi dalam Python:

Fungsi terbina dalam (Terbina dalam): Anda boleh menggunakan fungsi ini secara langsung dalam atur cara tanpa mentakrifkannya semasa pengaturcaraan. Fungsi jenis ini sering digunakan dalam pembelajaran awal (contohnya, print(), input(), sum(), dll.).

Fungsi ditakrifkan pengguna: Python membenarkan pengaturcara mencipta fungsi mereka sendiri. Jenis fungsi khusus ini akan diserlahkan seterusnya.

Ringkasnya, fungsi ialah blok yang ditentukan bagi pernyataan berstruktur yang boleh dipanggil berulang kali. Fungsi ini mempunyai nama unik, boleh menerima parameter, dan mengembalikan hasil (nilai) yang sepadan kepada pemanggil seperti yang diperlukan, atau tidak mengembalikan nilai.

Takrifan fungsi

Peraturan utama untuk mentakrifkan fungsi dalam Python adalah seperti berikut:

  • Sebuah blok fungsi bermula dengan kata kunci def, diikuti dengan nama fungsi dan kurungan. Ambil perhatian bahawa memandangkan Python sensitif huruf besar-besaran, def mesti digunakan dan bukannya Def.
  • Serupa dengan nama pembolehubah, nama fungsi boleh mengandungi huruf atau nombor, tetapi tidak mengandungi ruang atau aksara khas dan tidak boleh bermula dengan nombor.
  • Parameter input pilihan (dipanggil argumen) hendaklah diletakkan dalam kurungan - bilangan dan jenis parameter adalah seperti yang diperlukan.
  • Nama fungsi diikuti dengan titik bertindih Biasanya blok pernyataan dalam fungsi bermula dengan baris baharu selepas kolon dan diinden.
  • Fungsi yang mengembalikan data mesti mengandungi pulangan kata kunci dalam blok kodnya.

Ringkasnya, terdapat empat jenis fungsi:

  • Fungsi tanpa parameter dan tiada nilai pulangan
  • Fungsi dengan parameter dan tiada nilai pulangan ;
  • Fungsi tanpa parameter dan nilai pulangan;
  • Fungsi dengan parameter dan nilai pulangan.

Format sintaks definisi fungsi adalah seperti berikut:

def functionName (var1, var2, … etc.):
 Statements
Salin selepas log masuk

Mengikut kehadiran atau ketiadaan parameter sebenar dan kehadiran input dan/ atau mengembalikan nilai, fungsi Boleh dibahagikan kepada empat jenis yang mungkin di atas. Mereka akan diperkenalkan secara berasingan di bawah.

Fungsi tanpa parameter dan nilai pulangan

Dalam jenis ini, fungsi tidak menerima pembolehubah sebagai parameter dan tidak mengembalikan sebarang data. Sebagai contoh, demonstrasi skrip berikut ialah fungsi sedemikian, yang hanya mencetak rentetan yang dipratentukan pada skrin.

Kod itu jelas terdapat parameter formal dalam takrifan, tiada parameter sebenar semasa memanggil dan tiada pernyataan pulangan dalam blok pernyataan. Struktur hanya memanggil fungsi print() untuk memaparkan mesej yang dikehendaki. Memanggil fungsi sedemikian dalam atur cara utama adalah agak mudah dan mudah, seperti yang ditunjukkan di bawah:

# 定义一个既无参数也无返回值的函数
def printSomething():
print('Hello world')

# 在主程序中直接调用
printSomething()
Salin selepas log masuk

Selepas menjalankan program, hasil output ialah:

Hello world
Salin selepas log masuk

Fungsi dengan parameter dan tiada nilai pulangan

Satu lagi jenis fungsi menerima pembolehubah sebagai parameter tetapi tidak mengembalikan sebarang data. Dalam contoh berikut, fungsi dipanggil dengan nama yang diisytiharkan sambil memasukkan beberapa nilai dalam kurungan fungsi yang dipanggil. Nilai ini dihantar ke badan utama fungsi dan boleh dianggap sebagai pembolehubah biasa:

# 定义接收参数但无返回值的函数
def printMyName(fName, lName):
print('Your name is:', fName, lName)

# 提示用户输入姓名
firstName = input('Enter your first name: ')
lastName = input('Enter your last name: ')

# 在主程序中调用所定义的函数
printMyName(firstName, lastName)
Salin selepas log masuk

Jalankan atur cara, dan hasilnya akan serupa dengan yang berikut:

Enter your first name:Solo
Enter your last name: Cui
Your name is: Solo Cui
Salin selepas log masuk

Fungsi tanpa parameter dan nilai pulangan

Jenis ketiga ialah fungsi yang tidak menerima parameter tetapi mengembalikan data. Adalah penting untuk diingat bahawa kerana fungsi jenis ini mengembalikan nilai kepada kod panggilan, nilai ini mesti diberikan kepada pembolehubah sebelum ia boleh digunakan atau diproses. Contohnya adalah seperti berikut:

# 定义无参数但有返回值的函数
def returnFloatNumber():
inputFloat = float(input('输入一个数字,其将返回给主程序:'))
return inputFloat

# 主程序调用函数并显示输入结果
x = returnFloatNumber()
print('输入的数字为:', x)
Salin selepas log masuk

Hasil menjalankan program adalah serupa dengan yang berikut:

输入一个数字,其将返回给主程序: 5.7
输入的数字为:: 5.7
Salin selepas log masuk

Fungsi dengan parameter dan nilai pulangan

Jenis ini of function menerima parameter dan mengembalikan Nilai dikembalikan kepada kod panggilan. Contoh situasi di bawah. Dalam kes ini, panggilan fungsi mesti termasuk senarai parameter dan menetapkan nilai pulangan kepada pembolehubah tertentu untuk kegunaan kemudian:

# 有参有返回值函数
def calculateSum(number1, number2):
print('计算两个数字和.')
return(number1 + number2)

# 接受用户输入的两个数字
num1 = float(input('输入第一个数字: '))
num2 = float(input('输入第二个数字: '))

# 调用函数计算俩个数字和
addNumbers = calculateSum(num1, num2)

# 输出两个数字和
print('两个数字和为:', addNumbers)
Salin selepas log masuk

Hasil menjalankan program adalah serupa dengan yang berikut:

输入第一个数字: 3
输入第二个数字: 5
计算两个数字和...
两个数字和为:: 8.0
Salin selepas log masuk

Kaedah lulus parameter fungsi

Terdapat dua kaedah berbeza untuk menghantar parameter kepada fungsi. Menentukan yang mana antara dua kaedah untuk dipilih harus bergantung pada sama ada nilai pembolehubah asal boleh diubah dalam fungsi. Terdapat dua cara untuk menghantar nilai parameter ke fungsi, biasanya dipanggil panggilan/laluan nilai dan panggilan/laluan rujukan.

Ringkasnya, pemindahan parameter fungsi:

Pertama, mengikut nilai: parameter ialah salinan pembolehubah asal, mengekalkan salinan tanpa mengubah nilai asal

Kedua , dengan rujukan: perubahan bertindak secara langsung pada pembolehubah asal, dengan itu mengubah nilai asal.

Nilai panggilan/laluan

Dalam kes ini, nilai parameter sebenar (parameter formal) dianggap sebagai salinan pembolehubah asal. Oleh itu, apabila kawalan program kembali kepada pemanggil, pembolehubah asal dalam skop pemanggil kekal tidak berubah.

在Python中,如果将不可变参数(例如,整数和字符串)传递给函数,通常的做法是按值调用/传递参数。下面的示例通过介绍id()函数说明了这种情况。它接受一个对象作为参数(即id(object)),并返回这个特定对象的标识。Id()返回值是一个整数,它在对象的生命周期内是惟一的和永久的。如示例所示,在调用checkParamemterID函数之前,变量x的id为4564813232。需要注意的是,只要x的值没有更新,x的id在函数中就不会改变。但是,一旦该值更新为20,其对应的id将更改为4564813552。需要注意的最重要的一点是,x的id在调用函数后不会改变,它的原始值保持不变(4564813232)。这意味着对x值的更改应用于变量的副本,而不是调用者作用域内的原始变量。

示例代码如下:

#按值传递参数
# 定义函数'checkParameterID',带参且按值传递
def checkParameterID(x):
print('在checkParameterID函数内x值改变之前其值为 ', x, 'n其id 为', id(x))
# 在函数范围内改变参数x的值
x = 20
print('checkParameterID中x的值改变后为', x, 'n 其id为', id(x))

# 在主程序声明变量x并赋予初始值
x = 10

print('调用checkParameterID函数之前x的值是', x, 'n 其id为', id(x))

# 调用'checkParameterID'函数
checkParameterID(x)

# 函数调用后在主程序中显示关于'x'的信息
print('调用checkParameterID函数后x的值为', x, 'n 其id为', id(x))
Salin selepas log masuk

运行输出结果类似如下:

调用checkParameterID函数之前x的值是 10
其id为 2570870194704
在checkParameterID函数内x值改变之前其值为 10
其id 为 2570870194704
checkParameterID中x的值改变后为 20
其id为 2570870195024
调用checkParameterID函数后x的值为 10
其id为 2570870194704
Salin selepas log masuk

按引用调用/传递

在这种情况下,函数获取实参(即原始变量)的引用,而不是它的副本。如果函数内发生更改,则调用者作用域中原始变量的值也将被修改。在Python中,如果可变参数(如列表)传递给函数,则调用/传递是通过引用进行的。如下所示,updateList将值5追加到名为y的列表中。即原始可变变量x的值发生了变化,这证明函数按引用调用/传递参数的特征。示例代码如下:

# 定义函数'upDateList' 其改变列表内的值
def updateList(y):
y = y.append(5)
return y

# 声明列表'x' 有四个元素值
x = [1, 2, 3, 4]
print('在调用updateList函数之前,x的内容是:', x)

# 调用函数'updateList'
print('调用函数updateList')
updateList(x)
print('调用updateList函数后x的内容为:', x)
Salin selepas log masuk

运行程序输出结果类似如下:

在调用updateList函数之前,x的内容是: [1, 2, 3, 4]
调用函数updateList
调用updateList函数后x的内容为: [1, 2, 3, 4, 5]
Salin selepas log masuk

本文小结

本期内容介绍了函数的基本内容和实现语法,以及参数传递、有无参数和返回值的函数形式以及函数调用/传递的实现。

Atas ialah kandungan terperinci Pengaturcaraan Python: Menguasai takrifan fungsi, jenis dan cara menghantar parameter dengan mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan