我试图复制C++式单线条件语句在Python像这样:单行条件句
我有一个函数定义:isPalidrome (mystr)
- 返回True
如果mystr
是palidrome,False
否则。该功能起作用。
现在我有一个简单的主要功能如下所示:
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,则语法有效,除非您不能在与if
相同的行中包含else
。
任何帮助,选项,替代考虑? 顺便说一句:我写了这个简单的程序来检查此功能,以减少更大的模块的逻辑大小。我非常清楚,如果在isPalindrome
函数中检查其回文是否可以脱身。那不是我的问题的重点。
@DYZ:请注意,您的上一次编辑使发布的错误消息无效,所以我将其回滚。 –
[Python是否有三元条件运算符?](https://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator) –