2015-10-17 78 views
0

我目前在教自己python 3,還有一件事情讓我感到困惑:我的意思是我期望的一切,包括lambda。但是,如何編寫代碼塊?Python:如何編寫一段代碼?

比如我怎麼用Python語言編寫以下簡單的程序代碼(2或3):

( (lambda() (display "hello ") (display "world") (newline)) ) 
=> hello world 

現在蟒蛇:

=> >>> lambda :print("hello") print("world"); 

回答

1

想你指的這個,

>>> f = lambda : print("hello","world") 
>>> f 
<function <lambda> at 0x7faeca581d08> 
>>> f() 
hello world 
1

這不是你寫Python的方式。 Lambda是句法糖非常簡單功能只,並且只能包含一個單一的表達式。如果你想做其他任何事情,你必須寫一個函數。

def hello_world(): 
    print("hello") 
    print("world") 

請注意,這不是lambda的事實沒有任何區別;你仍然可以通過hello_world作爲第一類對象。

+0

很好的解釋,但你的代碼打印兩行,當它應該是一個:'print('hello world')' –

0

如果你真的想在一個lambda表達式中對多個表達式進行排序,可以通過構建多個子表達式中的數據結構來排序「僞造」。 Python會在構建數據結構時評估數據結構中的項目。元組是更高效的數據結構中的一種使用方法:

>>> f = lambda: (print('Hello ', end=''), print('World')) 
>>> x = f() 
Hello World 

注意˚F返回包含兩個打印函數調用的返回值的元組,每一個都是

>>> x 
(None, None) 

這工作,你期望它的工作,因爲Python是保證從左至右評估,以便元組表達式,如這裏所描述的方法: