我目前在教自己python 3,還有一件事情讓我感到困惑:我的意思是我期望的一切,包括lambda。但是,如何編寫代碼塊?Python:如何編寫一段代碼?
比如我怎麼用Python語言編寫以下簡單的程序代碼(2或3):
( (lambda() (display "hello ") (display "world") (newline)) )
=> hello world
現在蟒蛇:
=> >>> lambda :print("hello") print("world");
我目前在教自己python 3,還有一件事情讓我感到困惑:我的意思是我期望的一切,包括lambda。但是,如何編寫代碼塊?Python:如何編寫一段代碼?
比如我怎麼用Python語言編寫以下簡單的程序代碼(2或3):
( (lambda() (display "hello ") (display "world") (newline)) )
=> hello world
現在蟒蛇:
=> >>> lambda :print("hello") print("world");
想你指的這個,
>>> f = lambda : print("hello","world")
>>> f
<function <lambda> at 0x7faeca581d08>
>>> f()
hello world
這不是你寫Python的方式。 Lambda是句法糖非常簡單功能只,並且只能包含一個單一的表達式。如果你想做其他任何事情,你必須寫一個函數。
def hello_world():
print("hello")
print("world")
請注意,這不是lambda的事實沒有任何區別;你仍然可以通過hello_world
作爲第一類對象。
如果你真的想在一個lambda表達式中對多個表達式進行排序,可以通過構建多個子表達式中的數據結構來排序「僞造」。 Python會在構建數據結構時評估數據結構中的項目。元組是更高效的數據結構中的一種使用方法:
>>> f = lambda: (print('Hello ', end=''), print('World'))
>>> x = f()
Hello World
注意˚F返回包含兩個打印函數調用的返回值的元組,每一個都是無。
>>> x
(None, None)
這工作,你期望它的工作,因爲Python是保證從左至右評估,以便元組表達式,如這裏所描述的方法:
很好的解釋,但你的代碼打印兩行,當它應該是一個:'print('hello world')' –