for循环嵌套在if语句的表达式内

for循环嵌套在if语句的表达式内

问题描述:

这是一个关于语法的问题。我很确定我几乎是正确的,但并不完全。我试图在if语句的表达式中放置一个for循环。for循环嵌套在if语句的表达式内

什么,我认为这应该是一个简单的回文测试仪模拟式:

toTest = "asdffdsa" 
if toTest[i]==toTest[-i] for i in range(len(toTest)/2): 
    print("It's a palendrome!") 

预先感谢您的帮助!

+0

http://docs.python.org/tutorial/controlflow.html – 2012-02-21 02:11:02

+0

我做了仔细看看,但是没有一个我正在寻找的例子。 – Mokolodi1 2012-02-21 02:12:39

我猜你的意思是

if all(toTest[i] == toTest[-i] for i in range(len(toTest)/2)): 
    print("It's a palindrome!") 

注意,这将是很容易做的

if toTest == toTest[::-1]: 
    print("It's a palindrome!") 
+0

谢谢!你刚回答我的问题,并教我一个新的关键字。 “toTest [:: - 1]”中的“-1”是否反转列表? – Mokolodi1 2012-02-21 02:15:55

+1

@ Mokolodi1:是的,它反转字符串,请参阅http://*.com/a/3705676/279627。 – 2012-02-21 02:17:22

+0

不是关键字; 'all'是一个功能。 – 2012-02-21 03:40:15

虽然它可能不是你在寻找什么,这里是一个简短的手检查一个字符串是否是Python中的回文:

toTest = "asdffdsa" 
if toTest == toTest[::-1]: print ("It's a palindrome!")