2017-10-06 61 views
-3
def book_search(self,match): 
     self.match = match 
     for inum in range(len(self.mybooksinventory)): 
      if (self.match == self.mybooksinventory[inum]['name']): 
       print ("Congrats You Book is available") 
       self.book_details_print(inum) 
      elif (self.match == self.mybooksinventory[inum]['stuclass']): 
       print ("Congrats You Book is available") 
       self.book_details_print(inum) 
      elif (self.match == self.mybooksinventory[inum]['subject']): 
       print ("Congrats You Book is available") 
       self.book_details_print(inum) 
      else: 
       print ("+" * 55) 
       print ("Book You are looking for is not available") 
 
[bookstore]# ./Book.py 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
Book You are looking for is not available 
Congrats You Book is available 
******************************************************* 
Name: India 
for student of class: Arts 
Subject: History 
Language of Book is: English 
[[email protected] bookstore]# 

問題:當我能夠搜索到的書,這是正確的......那麼,爲什麼我的方案也說,「書你要找的是不可用」從別的循環... 如果條件爲真,那麼爲什麼它在循環中。哎呀蟒蛇如果ELFI錯誤

+0

請編輯您的問題,以包含一個能夠重現錯誤的[MCVE](https://stackoverflow.com/help/mcve)。 –

+1

您可以搜索整本書籍。因此,除了匹配之外,列表中的每本書都會出現「else」。您只想在列表中搜索錯誤消息_after_並且沒有找到匹配項(在「for」之外)。 –

+0

如果條件爲真,則不會進入else塊 - 編程語言不會中斷。如果它進入一個else塊,則條件爲false。期。 – csmckelvey

回答

0

添加break if/elif中的成功響應後。

def book_search(self,match): 
    self.match = match 
    is_match = False 
    for inum in range(len(self.mybooksinventory)): 
     if (self.match == self.mybooksinventory[inum]['name']): 
      print ("Congrats You Book is available") 
      self.book_details_print(inum) 
      is_match = True 
      break 
     elif (self.match == self.mybooksinventory[inum]['stuclass']): 
      print ("Congrats You Book is available") 
      self.book_details_print(inum) 
      is_match = True 
      break 
     elif (self.match == self.mybooksinventory[inum]['subject']): 
      print ("Congrats You Book is available") 
      self.book_details_print(inum) 
      is_match = True 
      break 
     else: 
      is_match = False 


    if is_match == False: 
     print ("+" * 55) 
     print ("Book You are looking for is not available") 
+0

它不適用於我..代碼不工作[root @ su01897 bookstore]#./Book.py 回溯(最近呼叫最後): 文件「./Book.py」,第18行,在 類BooksInventory(對象): 文件 「./Book.py」,線79,在BooksInventory 如果is_match ==題: NameError:名稱 'is_match' 沒有定義 [根@ su01897書店]# – user8588795

+0

[根@ su01897書店]#./Book.py 回溯(最近通話最後一個): 文件 「./Book.py」 18行,在 類BooksInventory(對象): 文件 「./Book.py」第79行,在BooksInventory if is_match == False: NameError:name'is_match'未定義 [root @ su01897 bookstore]# – user8588795