【问题标题】:Python IF/ELIF statementPython IF/ELIF 语句
【发布时间】:2015-11-21 17:40:53
【问题描述】:

好吧,由于某种原因,if 语句有效,但 elif 没有.. 不知道为什么,没有语法或缩进错误,脚本运行正常但它不使用 elif没写..

代码示例:

try:
    if '120' in resp.read():
        print '120'
        self.write_to_file('120' '\n')
        return True
    elif '130' in resp.read():
        print '130'
        self.write_to_file('130' '\n')
        return True
    else:
        print 'no number'
        return False
except:

【问题讨论】:

标签: python if-statement


【解决方案1】:

您应该读取一次,然后与读取的值进行比较:

try:
    value = resp.read()
    if '120' in value:
        print '120'
        self.write_to_file('120' '\n')
        return True
    elif '130' in value:
        print '130'
        self.write_to_file('130' '\n')
        return True
    else:
        print 'no number'
        return False
except:
    # do something here!
    print('error')

【讨论】:

  • 谢谢你的工作:)
【解决方案2】:

使用一次resp.read() 将完全读取响应,因此后续调用resp.read() 将不会产生任何输出。

您需要先将输出存储在一个变量中,然后再次检查该变量而不是响应:

response = resp.read()
if '120' in response:
    print '120'
    self.write_to_file('120' '\n')
    return True
elif '130' in response:
    print '130'
    self.write_to_file('130' '\n')
    return True
else:
    print 'no number'
    return False

【讨论】:

  • 感谢您的支持:)