Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Python - Fungsi

Halaman SebelumnyaHalaman Berikutnya

Fungsi adalah blok kode yang terorganisir dan dapat digunakan kembali yang digunakan untuk melakukan satu tindakan terkait. Fungsi memberikan modularitas yang lebih baik untuk aplikasi Anda dan penggunaan ulang kode tingkat tinggi.

Seperti yang sudah Anda ketahui, Python memberi Anda banyak fungsi bawaan seperti print(), dll. tetapi Anda juga dapat membuat fungsi Anda sendiri. Fungsi-fungsi ini disebut fungsi yang ditentukan pengguna.

Mendefinisikan Fungsi

Anda dapat menentukan fungsi untuk menyediakan fungsionalitas yang diperlukan. Berikut adalah aturan sederhana untuk mendefinisikan fungsi dalam Python.

Sintaks

def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]

Secara default, parameter memiliki perilaku posisi dan Anda perlu memberi tahu mereka dalam urutan yang sama seperti yang ditentukan.

Contoh

Fungsi berikut mengambil string sebagai parameter input dan mencetaknya pada layar standar.

def printme( str ):
   "This prints a passed string into this function"
   print str
   return

Memanggil Fungsi

Mendefinisikan fungsi hanya memberinya nama, menentukan parameter yang akan disertakan dalam fungsi dan menyusun blok kode.

Setelah struktur dasar suatu fungsi selesai, Anda dapat menjalankannya dengan memanggilnya dari fungsi lain atau langsung dari prompt Python. Berikut adalah contoh untuk memanggil fungsi printme()

Demo Langsung
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme("I'm first call to user defined function!")
printme("Again second call to the same function")

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

I'm first call to user defined function!
Again second call to the same function

Lulus dengan referensi vs nilai

Semua parameter (argumen) dalam bahasa Python dilewatkan dengan referensi. Ini berarti jika Anda mengubah apa yang dirujuk oleh parameter di dalam suatu fungsi, perubahan tersebut juga mencerminkan kembali dalam fungsi pemanggilan. Misalnya

Demo Langsung
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist.append([1,2,3,4]);
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Di sini, kami mempertahankan referensi dari objek yang diteruskan dan menambahkan nilai dalam objek yang sama. Jadi, ini akan menghasilkan hasil berikut

Values inside the function:  [10, 20, 30, [1, 2, 3, 4]]
Values outside the function:  [10, 20, 30, [1, 2, 3, 4]]

Ada satu contoh lagi di mana argumen diteruskan dengan referensi dan referensi ditimpa di dalam fungsi yang dipanggil.

Demo Langsung
#!/usr/bin/python

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4]; # This would assig new reference in mylist
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

Parameter daftar saya adalah lokal untuk fungsi changeme. Mengubah daftar saya di dalam fungsi tidak memengaruhi daftar saya . Fungsi tidak menyelesaikan apa pun dan akhirnya ini akan menghasilkan hasil berikut

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Argumen Fungsi

Anda dapat memanggil fungsi dengan menggunakan tipe argumen formal berikut −

Argumen yang diperlukan

Argumen yang diperlukan adalah argumen yang diteruskan ke fungsi dalam urutan posisi yang benar. Di sini, jumlah argumen dalam pemanggilan fungsi harus sama persis dengan definisi fungsi.

Untuk memanggil fungsi printme() , Anda pasti harus memberikan satu argumen, jika tidak maka akan memberikan kesalahan sintaks sebagai berikut

Demo Langsung
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme()

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

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 terkait dengan pemanggilan fungsi. Saat Anda menggunakan argumen kata kunci dalam panggilan fungsi, pemanggil mengidentifikasi argumen dengan nama parameter.

Ini memungkinkan Anda untuk melewatkan argumen atau menempatkannya di luar urutan karena interpreter Python dapat menggunakan kata kunci yang disediakan untuk mencocokkan nilai dengan parameter. Anda juga dapat melakukan panggilan kata kunci ke printme() berfungsi dengan cara berikut

Demo Langsung
#!/usr/bin/python

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print str
   return;

# Now you can call printme function
printme( str = "My string")

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

My string

Contoh berikut memberikan gambaran yang lebih jelas. Perhatikan bahwa urutan parameter tidak penting.

Demo Langsung
#!/usr/bin/python

# Function definition is here
def printinfo( name, age ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

Name:  miki
Age  50

Argumen default

Argumen default adalah argumen yang mengasumsikan nilai default jika nilai tidak disediakan dalam pemanggilan fungsi untuk argumen itu. Contoh berikut memberikan ide tentang argumen default, ia mencetak usia default jika tidak lulus −

Demo Langsung
#!/usr/bin/python

# Function definition is here
def printinfo( name, age = 35 ):
   "This prints a passed info into this function"
   print "Name: ", name
   print "Age ", age
   return;

# Now you can call printinfo function
printinfo( age=50, name="miki" )
printinfo( name="miki" )

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

Name:  miki
Age  50
Name:  miki
Age  35

Argumen panjang variabel

Anda mungkin perlu memproses fungsi untuk lebih banyak argumen daripada yang Anda tentukan saat mendefinisikan fungsi. Argumen ini disebut panjang variabel argumen dan tidak disebutkan dalam definisi fungsi, tidak seperti argumen wajib dan default.

Sintaks untuk fungsi dengan argumen variabel non-kata kunci adalah ini −

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

Tanda bintang (*) ditempatkan sebelum nama variabel yang menyimpan nilai semua argumen variabel bukan kata kunci. Tuple ini tetap kosong jika tidak ada argumen tambahan yang ditentukan selama pemanggilan fungsi. Berikut ini adalah contoh sederhana

Demo Langsung
#!/usr/bin/python

# Function definition is here
def printinfo( arg1, *vartuple ):
   "This prints a variable passed arguments"
   print "Output is: "
   print arg1
   for var in vartuple:
      print var
   return;

# Now you can call printinfo function
printinfo( 10 )
printinfo( 70, 60, 50 )

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

Output is:
10
Output is:
70
60
50

Yang Anonim Fungsi

Fungsi-fungsi ini disebut anonim karena tidak dideklarasikan dengan cara standar dengan menggunakan def kata kunci. Anda dapat menggunakan lambda kata kunci untuk membuat fungsi anonim kecil.

Sintaks

Sintaks lambda fungsi hanya berisi satu pernyataan, yaitu sebagai berikut

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

Berikut adalah contoh untuk menunjukkan bagaimana lambda bentuk fungsi bekerja

Demo Langsung
#!/usr/bin/python

# Function definition is here
sum = lambda arg1, arg2: arg1 + arg2;

# Now you can call sum as a function
print "Value of total : ", sum( 10, 20 )
print "Value of total : ", sum( 20, 20 )

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

Value of total :  30
Value of total :  40

Kembali Pernyataan

Pernyataan return [ekspresi] keluar dari suatu fungsi, secara opsional meneruskan kembali ekspresi ke pemanggil. Pernyataan return tanpa argumen sama dengan return None.

Semua contoh di atas tidak mengembalikan nilai apa pun. Anda dapat mengembalikan nilai dari fungsi sebagai berikut

Demo Langsung
#!/usr/bin/python

# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2
   print "Inside the function : ", total
   return total;

# Now you can call sum function
total = sum( 10, 20 );
print "Outside the function : ", total 

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

Inside the function :  30
Outside the function :  30

Cakupan Variabel

Semua variabel dalam suatu program mungkin tidak dapat diakses di semua lokasi dalam program itu. Ini tergantung di mana Anda mendeklarasikan variabel.

Lingkup variabel menentukan bagian program di mana Anda dapat mengakses pengenal tertentu. Ada dua lingkup dasar variabel dalam Python

Variabel global vs. Lokal

Variabel yang didefinisikan di dalam badan fungsi memiliki cakupan lokal, dan variabel yang didefinisikan di luar memiliki cakupan global.

Ini berarti bahwa variabel lokal hanya dapat diakses di dalam fungsi di mana mereka dideklarasikan, sedangkan variabel global dapat diakses di seluruh badan program oleh semua fungsi. Saat Anda memanggil suatu fungsi, variabel yang dideklarasikan di dalamnya dibawa ke dalam ruang lingkup. Berikut ini adalah contoh sederhana

Demo Langsung
#!/usr/bin/python

total = 0; # This is global variable.
# Function definition is here
def sum( arg1, arg2 ):
   # Add both the parameters and return them."
   total = arg1 + arg2; # Here total is local variable.
   print "Inside the function local total : ", total
   return total;

# Now you can call sum function
sum( 10, 20 );
print "Outside the function global total : ", total 

Ketika kode di atas dijalankan, menghasilkan hasil sebagai berikut

Inside the function local total :  30
Outside the function global total :  0

Python

  1. Fungsi Python Anonim/Lambda
  2. Generator Python
  3. Penutupan Python
  4. Dekorator Python
  5. 10 Fungsi Populer di Stratasys Insight
  6. Fungsi C++ dengan Contoh Program
  7. Python String strip() Fungsi dengan CONTOH
  8. Fungsi Python Lambda dengan CONTOH
  9. Python abs() Fungsi:Contoh Nilai Absolut
  10. Python round() fungsi dengan CONTOH