2014-11-30 2 views
-2

Я пытаюсь добавить ключ max первого словаря за секунду, но когда я запустил его, он показывает мне синтаксическую ошибку для sack{}. И я не могу понять, почему эта ошибка возникает. Может ли кто-нибудь объяснить, что такое ошибка? Спасибо.Попытка добавить max ключ к словарю в другом словаре Ошибка

Кодекс, как показано ниже:

#!/usr/bin/python3 
import sys 

def vault(dataFile): 
    gem = [] 
    weight = [] 
    value = [] 
    valPerCarat = []  
    for l in dataFile.readlines():  
     attribute = l.split(",") 
     gem.append(str(attribute[0])) 
     weight.append(float(attribute[1])) 
     value.append(int(attribute[2])) 
     valPerCarat.append(int(attribute[2])/float(attribute[1])) 
    booty = theft_preparation(gem, valPerCarat) 
    return (booty) 

    #return(gem, weight, value, valPerCarat) 

def theft_preparation(gem, valPerCarat): 
    loot = dict(zip(gem, valPerCarat) 
    sack = {} 
    precious = 0 
    while (precious =< 5.00): 
     max (loot, key=loot.get) 
     precious = dict.get(key, default=None) 
     precious +=precious 
     sack.update(key)   
     del(key) 

    return (sack) 


def main(): 
    fileFound = False 
    while not fileFound: 
     fileName = input("File name containing jewel data: ") 
     try: 
      dataFile = open(fileName, "r") 
      fileFound = True 

     except: 
      print("Could not find that file -- try again") 
    knapsackCapacity = 5.00 
    print (vault(dataFile)) 


main() 
+1

у вас есть ошибки, и многие из них. –

ответ

2

У вас не хватает закрывающей скобки на предыдущей строке:

loot = dict(zip(gem, valPerCarat) 
           ^HERE 
+2

... и это только первая из нескольких ошибок ('= <', неправильное использование 'max()', 'dict.get()' и '.update()', больше странных вещей ('del (ключ) ',' драгоценный + = драгоценный') - это займет некоторую работу ... –

+0

Да, я не изучил этот материал в школе, это просто вещи, которые я видел в Интернете. –

Смежные вопросы