相关文章推荐
精明的饺子  ·  java.io.FileNotFoundEx ...·  7 月前    · 
任性的菠菜  ·  Linux ...·  1 年前    · 
乖乖的牛肉面  ·  android - ...·  1 年前    · 
如何在 Python 中使用lambda与if-else 条件

在这篇文章中,我们将学习如何在 Python 中使用 lambda if-else 条件 。当你需要更高级的匿名函数时,将这两者搭配起来会非常有用。

任何编程语言中的条件语句都是需要学习的基本概念之一。它们的主要用途是根据所提供的条件行事。每个程序员都必须学习这些,然后再继续学习高级主题。在几乎所有的语言中,只有三个条件语句:

  • else if
  • 什么是 Python 中的 lambda 函数?

    Python 中的 lambda 函数是一个 匿名函数 。使用这个概念的核心目的是它使函数的创建变得简单。

    兰姆达函数的语法

    variable = lambda parameters_list : expression
    

    Lambda 语法

    为了获得更多的信息,输入以下命令。

    help('lambda')
    

    我们得到以下输出

    Lambdas
    *******
       lambda_expr        ::= "lambda" [parameter_list] ":" expression
       lambda_expr_nocond ::= "lambda" [parameter_list] ":" expression_nocond
    Lambda expressions (sometimes called lambda forms) are used to create
    anonymous functions. The expression "lambda parameters: expression"
    yields a function object.  The unnamed object behaves like a function
    object defined with:
       def <lambda>(parameters):
           return expression
    Note that functions created with lambda expressions cannot contain
    statements or annotations.
    

    使用lambdas,我们可以进行以下操作,以方便初学者:

    其他高级操作包括:

  • 在函数式编程中使用。
  • 在面向对象的编程中使用。
  • 对一个特定类的方法进行参数化。
  • 让我们看一下λ函数的几个例子

    add = lambda a, b: a + b
    print(add(5, 5))
    # output: 10
    

    这段代码很简单。我们首先创建一个lambda对象作为add。然后我们在lambda表达式里面存储两个参数。这些参数是两个数字,用于加法运算。之后在冒号里,我们把加法表达式放在冒号前面。

    subtract = lambda a, b: a - b
    print(add(100, 50))
    # output: 50
    
    multiply = lambda a, b: a * b
    print(multiply(100, 50))
    # output: 5000
    

    使用带有if-else条件的Lambda

    使用带有if-else条件的lambda是一种有用的技术。这也减少了代码的行数。现在,请注意,lambdas中的表达式部分一次只能容纳一个表达式。

    在Python中使用带有if-else条件的lambda的一般语法

    variable_name = lambda parameters : code_for_if if (condition) else code_for_else
    

    语法与lambda的核心实现有一点不同。所以,只需在if 语句前声明代码,然后写上带有条件的if语句。如果需要,else块直接在if语句之后。

    Lambda If Else Block

    conditional_lambda = lambda x: x/100 if x < 20 else x
    print(conditional_lambda(4))
    # output: 0.04
    
  • 我们创建一个lambda对象作为conditional_lambda
  • 然后,我们存储一个变量x 和表达式x/100,与之结合的是我们的条件语句。
  • 该语句说,如果x小于20就除以100,否则按原样打印。
  • 然后我们调用conditional_lambda函数,并在其中放置参数4。
  • 由于4小于20,它将被除以100,在屏幕上的输出为0.04。
  • 现在我们将研究如何利用这个函数进行其他高级运算。

    例子-使用lambdas检查给定的数字是偶数还是奇数

    # setup lambda 
    check = lambda num : print(num, 'is Even') if num%2 == 0 else print(num, ' is Odd')
    # input from user
    num = int(input('Enter any number: '))
    a = check(num)
    print(a)
    
    >>> Enter any number: 65
    65 is Odd 
    
    >>> Enter any number: -56
    -56 is Even
    

    例子使用lambdas检查给定的数字是偶数还是奇数

    check = lambda a, b : print(a,'is divisible by', b) if (a%b == 0) else print(a ,' is indivisible by ', b)
    a = int(input('Enter value for a: '))
    b = int(input('Enter value for b: '))
    obj = check(a, b)
    
    >>> Enter value for a: 45
    >>> Enter value for b: 45
    45 is divisible by 45
    
    >>> Enter value for a: 3
    >>> Enter value for b: 9
    3 is indivisible by 9
    
  • 首先,我们定义lambda的语句。该函数有两个参数ab,函数名是check
  • 然后在if块之后。主要条件是a应该能被b整除。如果这是真的,该块将打印("a能被b整除")。但如果余数不为零,那么else块就会打印出不可分割。
  • 然后我们创建一个函数对象作为obj ,并调用它关于check(a, b)
  • 这样,我们就到了这个话题的结尾。使用带有if-else条件的Lambda是保持单行代码可见性的关键话题之一。最重要的是我们不需要改变核心语法,只需要编辑我们的条件和其他东西。读者必须修改代码并多次尝试以理解代码。

    分类:
    代码人生
    标签: