搜尋
首頁後端開發Python教學關於Lambda表達式的實例教程
關於Lambda表達式的實例教程Jun 20, 2017 pm 03:01 PM
lambda練習表達式

Lambda表達式的五練習

語法:

#Lambda函數,是一個匿名函數,建立語法:

 lambda parameters:express

parameters:可選,如果提供,通常是逗號分隔的變數表達式形式,即位置參數。

expression:不能包含分支或迴圈(但允許條件式),也不能包含return(或yield)函數。如果為元組,則應用圓括號將其包含起來。

呼叫lambda函數,傳回的結果是對表達式計算產生的結果

  • 1.題目:利用條件運算子的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。

print( str(score) + ' belongs to ' +

        (lambda x:(x>=90 and 'A' or x>= 60 and 'B' or 'C'))(score))

 

#2.題目:lambda的遞迴呼叫。將一個整數n,拆分列印出來。如234,應2,3,4分三行列印出來。

 

n = int(input ())
f=m,f:( (m / 10) !=0 f( int(m/10),f) ( m!=0  print(%(m%10) )))
f(n,f)

 

#3.主題:將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。

程式分析:對n進行分解質因數,應先找出一個最小的質數k,然後按下述步驟完成:

(1)如果這個質數剛好等於n ,則說明分解質因數的過程已經結束,列印出來即可。

(2)如果nk,但n能被k整除,則應印出k的值,並用n除以k的商,作為新的正整數你n,

重複執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。

 

import os
import sys
from functools import reduce
from math import sqrt

n = int(input ("Please input a int:\n"))
ans =[]
nn=n
f=lambda m,i,c,f:(m%i ==0 and f(m//i,i,c+1,f) or (m,c))
def func(x,y):
    ret,count=f(x,y,0,f )
    if count >0:
       ans.append(count * [y] )
    return ret
reduce(func,[nn]+list(range(2,nn)))
print(ans)

 

4.題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由輸入控制。


n= int(input("n=:\n"))
aa =a= int(input('a= :\n'))

f=lambda n,a,ans,la,f: n==0 and ans or f(n-1,a,ans+[la* 10+a],la*10+a,f )

print(reduce(lambda x,y:x+y,f(n,aa,[],0,f )))

 

  • 5.主題:一個數字如果剛好等於它的因式總和,這個數字就稱為「完數」。例如6=1+2+3.

程式設計:找出1000以內的所有完數。

                   
factors = lambda x:filter( lambda i: x%i==0 and i,range(1,x))))))#1(cda i: x%i==0 and i,range(1,x))))##f = 10 xd == x
print( [(i,list(factors(i))) for i in list(filter( f, range(2,1001)))])

以上是關於Lambda表達式的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
lambda 表达式在 C++ 中如何处理异常?lambda 表达式在 C++ 中如何处理异常?Apr 17, 2024 pm 12:42 PM

在C++中,使用Lambda表达式处理异常有两种方法:使用try-catch块捕获异常,并在catch块中处理或重新抛出异常。使用std::function类型的包装函数,其try_emplace方法可以捕获Lambda表达式中的异常。

C++ lambda 表达式中闭包的含义是什么?C++ lambda 表达式中闭包的含义是什么?Apr 17, 2024 pm 06:15 PM

在C++中,闭包是能够访问外部变量的lambda表达式。要创建闭包,请捕获lambda表达式中的外部变量。闭包提供可复用性、信息隐藏和延迟求值等优势。它们在事件处理程序等实际情况中很有用,其中即使外部变量被销毁,闭包仍然可以访问它们。

用 C++ lambda 表达式实现多线程编程的优势是什么?用 C++ lambda 表达式实现多线程编程的优势是什么?Apr 17, 2024 pm 05:24 PM

lambda表达式在C++多线程编程中的优势包括:简洁性、灵活性、易于传参和并行性。实战案例:使用lambda表达式创建多线程​​,在不同线程中打印线程ID,展示了该方法的简洁和易用性。

C++ lambda 表达式如何捕获外部变量?C++ lambda 表达式如何捕获外部变量?Apr 17, 2024 pm 04:39 PM

在C++中捕获外部变量的lambda表达式有三种方法:按值捕获:创建一个变量副本。按引用捕获:获得变量引用。同时按值和引用捕获:允许捕获多个变量,按值或按引用。

如何使用 C++ lambda 表达式执行延迟求值?如何使用 C++ lambda 表达式执行延迟求值?Apr 17, 2024 pm 12:36 PM

如何使用C++lambda表达式执行延迟求值?使用lambda表达式创建延迟求值的函数对象。延迟计算推迟到需要时才执行。仅当需要时才计算结果,提高性能。

C++ lambda 表达式的性能优化有哪些技巧?C++ lambda 表达式的性能优化有哪些技巧?Apr 17, 2024 pm 05:45 PM

优化C++Lambda表达式的性能技巧包括:避免创建不必要的lambda对象通过std::bind显式捕获最小的对象使用std::move移动捕获的变量以避免复制优化lambda体,避免不必要的内存分配、重复计算和全局变量访问

C++ lambda 表达式如何与标准算法库配合使用?C++ lambda 表达式如何与标准算法库配合使用?Apr 17, 2024 pm 05:51 PM

C++Lambda表达式与标准算法库紧密协作,允许创建匿名函数,简化对数据的处理。具体用途包括:排序向量:使用lambda表达式对元素进行排序。查找元素:使用lambda表达式在容器中查找特定元素。

C++ 函数返回 Lambda 表达式时有什么限制?C++ 函数返回 Lambda 表达式时有什么限制?Apr 20, 2024 pm 12:42 PM

回答:C++函数可以返回Lambda表达式,但存在以下限制:限制:Lambda表达式应捕获存储类型(CapturesbyValue)Lambda表达式不能返回局部变量Lambda表达式不能返回Lambda表达式

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中