代码无法在python中的elif中达到else语句

时间:2015-06-15 07:19:29

标签: python-2.7

其他条件没有执行。我无法在else语句后打印数据。 我得到输出aS resp = []而不是resp [0] = - 1

为什么我得到这个?我的代码中有任何错误::

请考虑以下代码段

 import os
 import re
 import time
 import sys
 import random
 res="Received CommandCEPTfrfg45g45g54g54hg \
 Received ComTvtv56g56gh65ghbtg56hg3g5ty7u6y45g4 vReceived ComRCE_vrff \
   Rece mcmprepmoinReceivedCommanAPcdcdcdcReceived CommanP"
 def checkit(val):
     resp=[]
     test_comment=[]
     if val=='0x01':
         print "reached condition"
         if re.search("Received Command fcvdfc:",res):
            resp.append(0)
     elif(val=='0x02'):
     #if re.search("Received",res):
        resp.append(0)
     elif(val=='0x03'):
         if re.search("Received Command wedwedewd:",res):
            resp.append(0)
     elif(val=='0x04'):
         if re.search("Receive 1",res):
            resp.append(0)
     elif(val=='0x05'):
         if re.search("Receiv2",res):
             resp.append(0)
     elif(val=='0x06'):
         if re.search("Recei2",res):
             resp.append(0)
     elif(val=='0x07'):
         if re.search("Received2 Co",res):
             resp.append(0)
     elif(val=='0x08'):
         if re.search("Receiv3",res):
             resp.append(0)
     elif(val=='0x09'):
         if re.search("Received7",res):
             resp.append(0)
     elif(val=='0x0a'):
         print "reached condition"
         if re.search("Received8",res):
             resp.append(0)
     elif(val=='0x0b'):
         print "reached condition"
         if re.search("Received8",res):
             resp.append(0)
     elif(val=='0x0c'):
          print "reached condition"
          if re.search("ReceivedT9",res):
              resp.append(0)
     elif(val=='0x0d'):
         print "reached condition"
         if re.search("fwefef",res):
            resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
         #return
     test_comment.append(str(res))
     resp.append(test_comment)
     #print test_comment
     return resp

li=['0x01','0x02','0x03','0x04','0x05','0x06','0x07','0x08','0x09','0x0a','0x0b','0x0c','0x0d'];
for i in range(10):
    val=random.choice(li)
    print val
    ret=checkit(val);
    print "response:",ret,"\n"

2 个答案:

答案 0 :(得分:0)

checkit("0x00")    # makes the else branch executed

答案 1 :(得分:0)

如果我在条件之后放置其他条件而不是最后我不知道为什么会有效吗?

import os
import re
import time
import sys
import random
res="Received CommandCEPTfrfg45g45g54g54hg \
Received ComTvtv56g56gh65ghbtg56hg3g5ty7uReceived Command wedwedewd6y45g4Received Command fcvdfc vReceived ComRCE_vrff \
Rece mcmprepmoinReceivedCommanAPcdcdcdcReceived CommanP"
def checkit(val):
   resp=[]
   test_comment=[]
 if val=='0x01':
     print "reached condition"
     if re.search("Received Command fcvdfc:",res):
        resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x02'):
 #if re.search("Received",res):
    resp.append(0)
    else:
        print "reached else condition"
        resp.append(-1)
 elif(val=='0x03'):
     if re.search("Received Command wedwedewd:",res):
        resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x04'):
     if re.search("Receive 1",res):
        resp.append(0)
     else:
        print "reached else condition"
        resp.append(-1)
 elif(val=='0x05'):
     if re.search("Receiv2",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x06'):
     if re.search("Recei2",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x07'):
     if re.search("Received2 Co",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x08'):
     if re.search("Receiv3",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x09'):
     if re.search("Received7",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x0a'):
     print "reached condition"
     if re.search("Received8",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x0b'):
     print "reached condition"
     if re.search("Received8",res):
         resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
 elif(val=='0x0c'):
      print "reached condition"
      if re.search("ReceivedT9",res):
          resp.append(0)
      else:
          print "reached else condition"
          resp.append(-1)
 elif(val=='0x0d'):
     print "reached condition"
     if re.search("fwefef",res):
        resp.append(0)
     else:
         print "reached else condition"
         resp.append(-1)
     #return
 test_comment.append(str(res))
 resp.append(test_comment)
 #print test_comment
 return resp

li=['0x01','0x02','0x03','0x04','0x05','0x06','0x07','0x08','0x09','0x0a','0x0b','0x0c','0x0d'];
for i in range(10):
   val=random.choice(li)
   print val
   ret=checkit(val);
   print "response:",ret,"\n"