Latest web development tutorials

fungsi Python3

Fungsi adalah organisasi yang baik, dapat digunakan kembali, digunakan untuk mencapai segmen kode tunggal, atau fungsi yang terkait.

Fungsi dapat diterapkan untuk meningkatkan modularitas dan menggunakan kembali kode. Anda sudah tahu bahwa Python menyediakan banyak fungsi built-in, seperti cetak (). Tapi Anda juga dapat membuat fungsi sendiri, yang disebut fungsi yang ditetapkan pengguna.


Mendefinisikan fungsi

Anda dapat menentukan fungsi dari fungsi yang Anda inginkan, aturan sederhana berikut:

  • Fungsi blokdef kata kunci di awal, diikuti dengan nama fungsi dan pengenal dalam tanda kurung ().
  • Parameter masuk dan argumen harus ditempatkan dalam tanda kurung di tengah, dapat digunakan untuk menentukan parameter antara kurung.
  • Baris pertama dari pernyataan fungsi opsional dapat menggunakan dokumen tali - digunakan untuk deskripsi fungsi.
  • Fungsi konten dimulai dengan usus besar dan lekukan.
  • kembali [ekspresi] akhir fungsi, opsional mengembalikan nilai ke pemanggil. kembali tanpa setara ekspresi untuk kembali ada.

tatabahasa

fungsi python-didefinisikan menggunakan def kata kunci, format umum adalah sebagai berikut:

def 函数名(参数列表):
    函数体

Secara default, nama parameter dan parameter nilai dalam urutan didefinisikan dalam deklarasi fungsi cocok up.

contoh

Mari kita gunakan fungsi untuk output "Hello World!":

>>> def hello() :
   print("Hello World!")

   
>>> hello()
Hello World!
>>> 

Penerapan titik yang lebih kompleks, untuk membawa variabel fungsi parameter:

#!/usr/bin/python3

# 计算面积函数
def area(width, height):
    return width * height
 
def print_welcome(name):
    print("Welcome", name)

print_welcome("w3big")
w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))

Contoh output di atas:

Welcome w3big
width = 4  height = 5  area = 20

fungsi panggilan

Mendefinisikan fungsi: untuk memberikan fungsi nama, menentukan parameter dari fungsi mengandung, dan struktur kode blok.

Setelah selesai dari struktur dasar dari fungsi ini, Anda dapat melakukan fungsi panggilan lain untuk dieksekusi langsung dari command prompt Python.

Contoh-contoh berikut disebut printme (fungsi):

#!/usr/bin/python3
 
# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");

Contoh output di atas:

我要调用用户自定义函数!
再次调用同一函数

Parameter yang dikirimkan oleh nilai dan lulus parameter dengan referensi

Dalam Python, semua parameter (variabel) yang disahkan oleh referensi. Jika Anda mengubah parameter dalam suatu fungsi, maka fungsi ini disebut fungsi, parameter asli juga berubah. Sebagai contoh:

#!/usr/bin/python3
 
# 可写函数说明
def changeme( mylist ):
   "修改传入的列表"
   mylist.append([1,2,3,4]);
   print ("函数内取值: ", mylist)
   return
 
# 调用changeme函数
mylist = [10,20,30];
changeme( mylist );
print ("函数外取值: ", mylist)

Dan dilewatkan ke fungsi dari objek pada akhir untuk menambahkan konten baru menggunakan referensi yang sama. Jadi hasil output adalah sebagai berikut:

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

parameter

Berikut ini adalah jenis parameter formal dapat digunakan saat memanggil fungsi:

  • parameter yang diperlukan
  • argumen kata kunci
  • Parameter default
  • parameter variabel-panjang

parameter yang diperlukan

parameter yang diperlukan dalam urutan yang benar untuk diteruskan ke fungsi. Ketika jumlah panggilan dan harus deklarasi yang sama.

printme panggilan () fungsi, Anda harus lulus dalam parameter, atau kesalahan sintaks akan terjadi:

#!/usr/bin/python3
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
#调用printme函数
printme();

Contoh output di atas:

Traceback (most recent call last):
  File "test.py", line 10, in <module>
    printme();
TypeError: printme() missing 1 required positional argument: 'str'

argumen kata kunci

argumen kata kunci dan fungsi panggilan dekat pemanggilan fungsi hubungan menggunakan argumen kata kunci untuk menentukan nilai parameter berlalu.

Bila menggunakan parameter kunci memungkinkan parameter fungsi agar panggilan tidak konsisten dengan pernyataan, karena interpreter Python mampu menyamai nilai parameter menggunakan nama parameter.

Fungsi Contoh berikut printme () disebut dengan nama parameter:

#!/usr/bin/python3
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
#调用printme函数
printme( str = "本教程");

Contoh output di atas:

本教程

Contoh berikut menunjukkan penggunaan parameter fungsi tidak perlu menggunakan urutan tertentu:

#!/usr/bin/python3
 
#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print ("名字: ", name);
   print ("年龄: ", age);
   return;
 
#调用printinfo函数
printinfo( age=50, name="w3big" );

Contoh output di atas:

名字:  w3big
年龄:  50

Parameter default

Ketika fungsi ini disebut, jika parameter tidak lulus, ia akan menggunakan parameter default. Contoh berikut, jika tidak ada parameter usia masuk, nilai default:

#!/usr/bin/python3
 
#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print ("名字: ", name);
   print ("年龄: ", age);
   return;
 
#调用printinfo函数
printinfo( age=50, name="w3big" );
print ("------------------------")
printinfo( name="w3big" );

Contoh output di atas:

名字:  w3big
年龄:  50
------------------------
名字:  w3big
年龄:  35

parameter variabel-panjang

Anda mungkin perlu fungsi yang dapat menangani lebih dari deklarasi asli parameter. Parameter ini disebut parameter panjang variabel, dan dua jenis parameter yang berbeda, tidak menyebut deklarasi. Sintaks dasar adalah sebagai berikut:

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

Dengan tanda bintang (*) akan disimpan dalam nama variabel semua variabel yang tidak disebutkan namanya parameter. Jika tidak ada argumen ketika fungsi dipanggil, itu adalah tupel kosong. Kami tidak bisa lewat variabel yang tidak disebutkan namanya ke fungsi. Contoh berikut:

#!/usr/bin/python3
 
# 可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print ("输出: ")
   print (arg1)
   for var in vartuple:
      print (var)
   return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

Contoh output di atas:

输出:
10
输出:
70
60
50

fungsi anonim

python menggunakan lambda untuk membuat fungsi anonim.

Yang disebut anonim, yang berarti tidak lagi menggunakan pernyataan bentuk def standar ini untuk mendefinisikan fungsi.

  • Hanya ekspresi lambda, fungsi tubuh jauh lebih sederhana daripada def.
  • tubuh adalah ekspresi lambda, bukan blok kode. Kami hanya dapat paket logika terbatas ke dalam ekspresi lambda.
  • Fungsi lambda memiliki namespace sendiri, dan tidak dapat diakses di luar daftar argumen sendiri atau parameter namespace global.
  • Meskipun fungsi lambda terlihat hanya menulis satu baris, tetapi tidak sama dengan fungsi inline di C atau C ++, tujuan terakhir ini tidak ditempati saat memanggil fungsi memori tumpukan kecil untuk meningkatkan efisiensi operasional.

tatabahasa

Lambda fungsi sintaks hanya berisi satu pernyataan, sebagai berikut:

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

Contoh berikut:

#!/usr/bin/python3
 
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2;
 
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))

Contoh output di atas:

相加后的值为 :  30
相加后的值为 :  40

pernyataan kembali

kembali [ekspresi] pernyataan digunakan untuk keluar fungsi, selektif ke pemanggil mengembalikan ekspresi.pernyataan kembali tanpa parameter kembali Tidak ada. Tidak ada contoh sebelumnya menunjukkan bagaimana mengembalikan nilai, contoh berikut menunjukkan penggunaan pernyataan kembali:

#!/usr/bin/python3

# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print ("函数内 : ", total)
   return total;

# 调用sum函数
total = sum( 10, 20 );
print ("函数外 : ", total)

Contoh output di atas:

函数内 :  30
函数外 :  30

Cakupan variabel

Pyhton, variabel tersebut tidak posisi di mana program ini dapat mengakses, akses tergantung pada di mana variabel ditugaskan.

Lingkup variabel menentukan bagian mana dari program di mana Anda dapat mengakses nama variabel tertentu. Dua lingkup variabel dasar sebagai berikut:

  • Variabel global
  • variabel lokal

variabel global dan lokal

Definisi fungsi variabel internal yang memiliki ruang lingkup lokal, sebagaimana didefinisikan dalam fungsi luar memiliki lingkup global.

variabel lokal hanya dapat dideklarasikan di dalam fungsi dari akses ke variabel global dapat diakses di seluruh prosedur. Ketika Anda memanggil fungsi, semua nama variabel dalam deklarasi fungsi akan ditambahkan ke ruang lingkup. Contoh berikut:

#!/usr/bin/python3

total = 0; # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
    #返回2个参数的和."
    total = arg1 + arg2; # total在这里是局部变量.
    print ("函数内是局部变量 : ", total)
    return total;

#调用sum函数
sum( 10, 20 );
print ("函数外是全局变量 : ", total)

Contoh output di atas:

函数内是局部变量 :  30
函数外是全局变量 :  0