2013-01-17 170 views
0

所以基本上,我想要做的是使用“if/else”作为开关来选择路径。是否有可能在if语句中放置if else语句?

如果我的elif语句错误,我想要更多的缩进if/else不起作用。可能吗?

代码:

aStr = "abcdef" 
char = "e" 
if aStr == '': 
    return False 
elif len(aStr) == 1: 
    if char == aStr: 
     return True 
    else: 
     print "Python is stupid" 
     return False 
else: 

,并返回 “Python是愚蠢的”,这一点我并不意味着它做的!

+0

最后的'else'子句是什么?在我看来,应该是你的程序需要的分支... – mgilson

+3

你确定这个程序没有做你认为它的作用吗? (也就是说,这段代码做了你想做的事情,而不是你声称它做的事情) – tacaswell

+2

考虑到你在示例代码中提供的aStr,你的结果应该流到外部'else'语句。 – monkut

回答

1

如果你想让它时,它不是真正的运行,你需要扭转在elif你的逻辑:

aStr = "abcdef" 
char = "e" 
if aStr == '': 
    return False 
elif len(aStr) != 1: 
    if char == aStr: 
     return True 
    else: 
     print "Python is stupid" 
     return False 

if(通过扩展,elif)语句运行块,如果给定的表达式真正。如果你想检查是不是是真的,你倒过来的逻辑(把not放在它的前面,或使用逆运算符)。

请注意Pythonic检查空字符串的方法是执行if not aStr:,而不是检查与空字符串是否相等。

+0

Thx试图帮助。问题是,这不是我想要的逻辑。 事情是,我得做二分搜寻找或找不到他们的性格。我想,我只需要在函数BS中使用函数。 – 5brickbomzh

+0

这就是你要求的逻辑。你需要澄清你想要的。 –