【发布时间】:2018-02-11 15:25:10
【问题描述】:
我尝试在 Python 中复制 C++ 风格的单行条件,如下所示:
我定义了一个函数:isPalidrome (mystr) - 如果mystr 是回文,则返回True,否则返回False。该功能有效。
现在我有一个简单的 main 函数,如下所示:
mystr =''
isitapalindromealready = lambda : if isPalindrome(mystr) ==True: return "" else return 'not'
while mystr != 'quit':
mystr = input("enter a string: ")
print ('{} is {} a palindrome'.format(mystr, isitapalindromealready())
但我得到一个语法错误 -
File "scratch1.py", line 45
isitapalindromealready = lambda : if isPalindrome(mystr) ==True: return "" else return 'not'
^
SyntaxError: invalid syntax
我确实检查了一个类似的线程,该线程非常接近于复制我上面的逻辑(它只是不会在任何地方将 lambda 作为函数调用)。
Conditional statement in a one line lambda function in python?
但是,没有一个答案可以解释为什么它是语法错误。如果您忽略 PEP 8,则语法是有效的,除非您不能将 else 包含在与 if 相同的行中。
任何帮助、选项、替代注意事项?
顺便说一句:我编写了这个简单的程序来检查这个特性,以减少更大模块的逻辑大小。我很清楚,我可以在isPalindrome 函数中检查它是否是回文。那不是我问题的重点。
【问题讨论】:
-
@DYZ:请注意,您之前的编辑使发布的错误消息无效,所以我回滚了。
标签: python lambda conditional