Python生日代码的语法错误

0 python python-3.x

我试图学习在Python(3.6.5)中使用这个简单的生日单行,但是我得到了SyntaxError:语法无效,有人可以帮我弄清楚我出错的地方:

print map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),range(4))
Run Code Online (Sandbox Code Playgroud)

谢谢!

FHT*_*ell 6

你已将其标记为python 3.x. 这是python 2.x代码.你需要

print(list(map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),
               range(4))))
Run Code Online (Sandbox Code Playgroud)

既然print是一个函数,而不是在Python 3中的声明也map返回了list在Python 2,但现在返回一个迭代器需要被包裹在list以打印值.


这也是略显旧式的python,这是一种现代的写作方式

print(["happy birthday to {}".format('you' if x != 2 else 'dear name') for x in range(4)]) 
Run Code Online (Sandbox Code Playgroud)