2016-12-31 67 views
-2

我的代码:如何解决“ValueError异常:值过多解压(预期2)”在Python

print("Welcome to the Apple troubleshooting program") 
query = input("Please type your problem and make sure all words are spelled correctly") 
problems = (('My phone does not turn on.', 
      {'power', 'turn', 'on', 'off'}, 
      ('Make sure the phone is fully charged.', 
       'Try hard-resetting the phone.', 
       'Buy a new battery and get it fitted by a professional.')), 
      ('My phone is freezing.', 
      {'freeze', 'freezing'}, 
      ('Clear the cache.', 
       'Free up memory by deleting unwanted apps and media.', 
       'If all fails, contact a professional.')), 
      ('The screen is cracked.', 
      {'cracked', 'crack', 'broke', 'broken', 'screen'}, 
      ('Contact your insurance company.', 
       'Purchase a new screen.', 
       'Get the screen fitted by a professional.')), 
      ('I dropped my phone in water.', 
      {'water', 'drop', 'dropped'}, 
      ('Buy a bag of rice big enough to house your phone.', 
       'Submerged the phone in the rice for 24-48 hours.', 
       'Take your phone out of the rice and it should have absorbed the moisture.'))) 


words = {''.join(filter(str.isalpha, word)) 
      for word in query.lower().split()} 
for problem, keywords in problems: 
     if words & keywords: 
      solution = input('Is this what the problem is?', problems) 
     else: 
      print("Sorry, I do not understand") 
     if solution == "yes": 
          print('Please follow these steps to fix your phone:') 
for number, step in enumerate(steps, 1): 

print('{}. {}'.format(number, step)) 
+1

确保'problems'只包含长度为2的元组,或者更改'for'循环以期望其实际包含的3-tuples - 对于问题,关键字和问题的解决方案: '。 – jonrsharpe

+0

请格式化您的示例。 – ppasler

+1

然后你会很乐意发现'input'的函数签名。你的提示是'input'不是'print'。 – TigerhawkT3

回答

1

problems列表中的每个项目包括3项,所以你的for循环需要解压3值:

for problem, keywords, solutions in problems: 
    ... 
+0

谢谢@ @ro主角 – vicev3nom

相关问题