歡迎來到本 python 函數系列的第三部分, 也是最后一部分!如果您錯過了第1部分第2部分, 請按照這些鏈接查看它們。

python 遞歸函數

什么是 python 中的遞歸?

遞歸是根據自身定義事物的過程。

一個現實世界的例子是把兩個平行的鏡子面對面。它們之間的任何對象都將遞歸反映。

python 遞歸函數

我們知道, 在 python 中, 函數可以調用其他函數。函數甚至可以自調用自己。這些類型的構造稱為遞歸函數。

下面是一個遞歸函數的示例, 用于查找整數的階乘。

數字的階乘是從1到該數字的所有整數的乘積。例如, 階乘 5 (表示為 5!) 為 1 * 2 * 3 * 4 * 5 = 120。

例子:

# An example of a recursive function to
# find the factorial of a number

def calc_factorial(x):
    <em>"""This is a recursive function
    to find the factorial of an integer"""

    </em>if x == 1:
        return 1
    else:
        return (x * calc_factorial(x-1))

num = 4

在上面的示例中, calc_factorial() 是一個遞歸函數, 因為它調用自己。

當我們用一個正整數調用這個函數時, 它將通過減少數字來遞歸地調用自己。

每個函數調用數字的倍數, 其階乘數為 1, 直到數字等于1。

當數字減少到 1時, 我們的遞歸就結束了。這稱為基本條件。每個遞歸函數都必須有一個基本條件來停止遞歸, 否則函數會無限調用自己2;顏色: rgb(34, 38, 53);保證金上衣: 20px;邊際底部: 5px;字體大小:25 px;清楚的: 兩者;字體樣式: 正常;字體-變種連字: 正常;字體變量帽: 正常;字母間距: 正常;孤兒: 2;文本對齊: 開始;文本縮進: 0px;文本轉換: 無;空白: 正常;寡婦: 2;字間距: 0px;-webkit-text-寬度: 0px;背景顏色: rgb(255, 255, 255);文本裝飾風格: 初始;文本裝飾顏色: 初始; “>遞歸的優點

  1. 遞歸功能使代碼看起來干凈優雅。
  2. 復雜的任務可以使用遞歸分解為更簡單的子問題。
  3. 與使用一些嵌套迭代相比, 遞歸更容易生成序列。

遞歸的缺點

  1. 有時遞歸背后的邏輯很難遵循。
  2. 遞歸呼叫成本很高 (效率低下), 因為它們占用了大量的內存和時間。
  3. 遞歸函數很難調試。

接下來是這篇 python 函數文章, 讓我們檢查 python 中的 ambda 函數。

python ambda 函數

什么是蘭姆達功能?

在 python 中, 匿名函數是在沒有名稱的情況下定義的函數。

雖然正常函數是使用 def 關鍵字定義的, 但在 python 匿名函數中, 是使用 lambda 關鍵字定義的。

因此, 匿名函數也稱為 lambda 函數。

例子

# Program to show the use of lambda functions

double = lambda x: x * 2

# Output: 10
print(double(5))

輸出

10

在 [1] 中:

在上面的程序中, lambda x: x * 2 是 ambda 函數。下面 是參數, x * 2 是得到計算和返回的表達式。

此函數沒有名稱。它返回分配給標識符的函數 double 對象。我們現在可以用我們調用正常函數的方式來稱呼它。該聲明

double = lambda x: x * 2

幾乎是相同的

def double(x):
   return x * 2

接下來, 讓我們看看如何在 python 中使用用戶定義的函數

python 用戶定義的函數

python 中的用戶定義函數是什么?

我們為自己定義的函數執行特定任務稱為用戶定義的函數。我們在 python 中定義和調用函數的方式已經討論過了。

python 附帶的函數稱為內置函數。如果我們使用其他人通過庫編寫的函數, 它們被稱為庫函數。

我們自己編寫的所有其他函數都屬于用戶定義的函數。因此, 我們的用戶定義函數可以是給其他人的庫函數。

用戶定義函數的優點

  1. 用戶定義的函數有助于將大型程序分解為小段, 從而使程序易于理解、維護和調試。
  2. 如果在程序中發生重復代碼, 則該函數可用于包括這些代碼, 并在需要時通過調用該函數執行

語法

 def function_name(argument1, argument2, ...) :
      statement_1
      statement_2
      ....

例子

# Program to illustrate
# the use of user-defined functions

def add_numbers(x,y):
   sum = x + y
   return sum

num1 = 5
num2 = 6

print("The sum is", add_numbers(num1, num2))

輸出

Enter a number: 2.4
Enter another number: 6.5
The sum is 8.9

現在, 讓我們看看如何使用 python 創建一個簡單的應用程序。

創建簡單計算器應用程序的 python 程序

在本例中, 您將學習創建一個簡單的計算器, 該計算器可以根據用戶的輸入添加、減去、乘法或除法。

代碼

# Program make a simple calculator that can add, subtract, multiply and divide using functions

# This function adds two numbers 
def add(x, y):
   return x + y

# This function subtracts two numbers 
def subtract(x, y):
   return x - y

# This function multiplies two numbers
def multiply(x, y):
   return x * y

# This function divides two numbers
def divide(x, y):
   return x / y

print("Select operation.")
print("1.Add")
print("2.Subtract")
print("3.Multiply")
print("4.Divide")

# Take input from the user 
choice = input("Enter choice(1/2/3/4):")

num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))

if choice == '1':
   print(num1,"+",num2,"=", add(num1,num2))

elif choice == '2':
   print(num1,"-",num2,"=", subtract(num1,num2))

elif choice == '3':
   print(num1,"*",num2,"=", multiply(num1,num2))

elif choice == '4':
   print(num1,"/",num2,"=", divide(num1,num2))
else:
   print("Invalid input")

輸出

Select operation.
1.Add
2.Subtract
3.Multiply
4.Divide
Enter choice(1/2/3/4): 3
Enter first number: 15
Enter second number: 14
15 * 14 = 210

在此程序中, 我們要求用戶選擇所需的操作。選項1、2、3和4有效。取兩個數字, 并 if...elif...else 使用分支執行特定的節。用戶定義的函數 add() subtract() , multiply()divide() 評估各自的操作。

本教程中討論的概念應通過添加功能和可操作性, 幫助您使用 python 構建自己的函數。

當您嘗試通過簡化過程并使其適合您的個人需求來創建應用程序時, 這將非常方便。現在, 您還應該能夠使用這些 python 函數直接在 python 的幫助下輕松開發應用程序。

Comments are closed.