我試圖複製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) –