Five Lambda expressions and five lambda expressions
Lambda expressions
Syntax:
Lambda function isAnonymous Functions, Create Syntax:
Lambda parameters: express
Parameters: Optional. If provided, it is usually a comma-separated variable expression form, that is, the location parameter.
Expression: it cannot contain branches or loops (but canConditional expressions), And cannot contain the return (or yield) function. IfTuples, Then the applicationParenthesesInclude it.
When the lambda function is called, the returned result isResult of expression Calculation.
- 1. question: Use nested conditional operators to complete this question: Students with scores> = 90 are represented by A, students with scores between 60 and 89 are represented by B, and students with scores below 60 are represented by C.
Print (str (score) + 'belongs to '+
(Lambda x :( x> = 90 and 'A' or x> = 60 and 'B' or 'C') (score ))
2. Question: recursive call of lambda. Split and print an integer n. For example, 234 rows should be printed in 3, 3, and 4 rows.
n = int(input ("Please input a int:\n"))
f=lambda m,f:( (m / 10) !=0 and f( int(m/10),f) or ( m!=0 and print("%d" %(m%10) )))
f(n,f)
3. Question: decompose a positive integer into a prime factor. For example, enter 90 and print 90 = 2*3*3*5.
Program Analysis: to break down the prime factor of n, first find a minimum prime number k, and then follow the steps below:
(1) If the prime number is equal to n, it indicates that the process of decomposing the prime factor is over. Print it out.
(2) If n <> k, but n can be divisible by k, the value of k should be printed, and n is divided by the quotient of k, as the new positive integer you n,
Repeat the first step.
(3) If n cannot be divisible by k, k + 1 is used as the value of k and the first step is repeated.
Import OS
Import sys
From functools importreduce
From math import sqrt
N = int (input ("Pleaseinput a int: \ n "))
Ans = []
Nn = n
F = lambda m, I, c, f :( m % I = 0and 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. Question: calculate the value of s = a + aa + aaa + aaaa + aa... a, where a is a number. For example, 2 + 22 + 222 + 2222 + 22222 (a total of 5 numbers are added at this time). The addition of several numbers is controlled by the input.
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. Question: If a number is equal to the sum of its factors, it is called the "complete number ". For example, 6 = 1 + 2 + 3.
Programming: Find all the final numbers within 1000.
Factors = lambda x: filter (lambda I: x % I = 0 and I, range (1, x ))
F = lambda x: sum (factors (x) = x
Print ([(I, list (factors (I) for I in list (filter (f, range (2,1001)])