Latest web development tutorials

fungsi Python

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 blok def kata kunci di awal, diikuti dengan nama fungsi dan pengenal dalam tanda kurung ().
  • Parameter masuk dan argumen harus ditempatkan dalam tanda kurung di tengah. Hal ini 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

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

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

contoh

Berikut ini adalah fungsi Python sederhana, lewat itu string sebagai parameter, lalu cetak ke perangkat tampilan standar.

def printme( str ):
   "打印传入的字符串到标准显示设备上"
   print str
   return

fungsi panggilan

Mendefinisikan fungsi hanya untuk nama fungsi, menentukan parameter, dan struktur kode blok berisi fungsi.

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

Contoh-contoh berikut disebut printme (fungsi):

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

Contoh output di atas:

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

Parameter yang dikirimkan oleh nilai dan lulus parameter dengan referensi

Semua parameter (argumen) di Python tersebut diteruskan oleh referensi. Jika Anda mengubah parameter dalam suatu fungsi, maka fungsi ini disebut fungsi, parameter asli juga berubah. Sebagai contoh:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
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 wajib
  • argumen kata kunci
  • Parameter default
  • parameter variabel-panjang

parameter wajib

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

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

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

Contoh output di atas:

Traceback (most recent call last):
  File "test.py", line 11, in <module>
    printme();
TypeError: printme() takes exactly 1 argument (0 given)

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/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
#调用printme函数
printme( str = "My string");

Contoh output di atas:

My string

Berikut contoh dapat memesan argumen kata kunci tidak menunjukkan penting lebih jelas:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printinfo( name, age ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );

Contoh output di atas:

Name:  miki
Age  50

Parameter default

Ketika fungsi ini disebut, nilai default jika parameter tidak lulus, nilai default dianggap. Secara default mencetak pertemuan rutin usia, jika usia tidak lulus:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );

Contoh output di atas:

Name:  miki
Age  50
Name:  miki
Age  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. parameter lulus mungkin sedikit pilihan. Contoh berikut:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
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.

  • 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/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2;
 
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )

Contoh output di atas:

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

pernyataan kembali

Pernyataan kembali [ekspresi] 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 akan menunjukkan cara untuk melakukannya:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print "函数内 : ", total
   return total;
 
# 调用sum函数
total = sum( 10, 20 );

Contoh output di atas:

函数内 :  30

Cakupan variabel

Semua variabel dalam sebuah program yang bukan posisi yang bisa diakses. 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/python
# -*- coding: UTF-8 -*-

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