Discuss / Python / 原来if语句有先后顺序

原来if语句有先后顺序

Topic source

小喵biubiu

#1 Created at ... [Delete] [Delete and Lock User]

-- coding:utf-8 --

def trim(s): if s[:] == ' ': return ' ' elif s[:] == ' ': return ' ' elif (s[:1] == ' ') and (s[-1:] != ' '): return s[1:] elif (s[-1:] ==' ') and (s[:1] != ' '): return s[:-1] else: return s[1:-1]

if trim('hello ') != 'hello': print('fail') elif trim(' hello') != 'hello': print('fail') elif trim(' hello ') != 'hello': print('fail') elif trim(' hello world ') != 'hello world': print('fail') elif trim(' ') != ' ': print('fail') elif trim(' ') != ' ': print('fail') else: print('success')

如果把判断单侧空格的if语句放在判断双侧空格的if语句前面,那么双侧空格的语句会优先执行单侧的if语句,从而导致结果fail。可以像这样加上双重判断,就可以避免。 或者把判断双侧的if语句放在单侧if语句的前面,那么判断单侧的if语句就可以不必加双重判断也可以避免。 应该还可以继续优化,研究完以后再发。

小喵biubiu

#2 Created at ... [Delete] [Delete and Lock User]

而且多重空格和单空格也有区分,我觉得是个坑,但是不知道怎样才可以一次判断,有大神希望可以指点一下。

小喵biubiu

#3 Created at ... [Delete] [Delete and Lock User]

单重空格和多重空格也是有区别,我感觉也是个坑,但是不知道有什么办法可以一次性判断,希望有大神可以指点出来。


  • 1

Reply