>백엔드 개발 >파이썬 튜토리얼 >람다 표현식에 대한 예제 튜토리얼

람다 표현식에 대한 예제 튜토리얼

PHP中文网
PHP中文网원래의
2017-06-20 15:01:141839검색

람다 표현식을 위한 5가지 연습

구문: ​​

Lambda 함수는 익명 함수입니다. 생성 구문:

람다 매개변수:express

매개변수: 옵션(제공된 경우), 일반적으로 쉼표로 구분된 변수 표현식 형식, 즉, 위치 매개변수입니다.

표현식: 분기나 루프를 포함할 수 없으며(그러나 조건식은 허용됨) 반환(또는 산출) 함수도 포함할 수 없습니다. 튜플인 경우 괄호로 묶어야 합니다.

람다 함수를 호출하면 반환된 결과는 표현식 계산의 결과 입니다.

  • 1. 질문: 조건부 연산자의 중첩을 사용하여 이 질문을 완성하세요. 학업 점수가 90점보다 큰 학생은 A로 표시되고, 점수가 60~89점 사이인 학생은 B로 표시되며, 점수가 그 이하인 학생은 표시됩니다. 60은 C라는 뜻으로 표현됩니다.

print( str(score) + '는 ' +

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

2. 주제: 람다의 재귀 호출. 정수 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("제발 int 입력:n"))
ans =[]
nn=n
f=lambda m,i,c,f:(m%i ==0 및 f(m//i,i,c+1,f) 또는 (m,c))
def func(x,y):
ret,count=f(x,y,0,f)
개수인 경우 & gt; 0: n 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 및 ans 또는 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 이내의 완전수를 모두 찾습니다. ... i,list(factors(i))) for i in list(filter( f, range(2,1001)))])

위 내용은 람다 표현식에 대한 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.