Расчет суммы переменных

Я хочу узнать, каков общий балл, который вы даете каждому виду спорта в моем коде.

Просто чтобы отметить, что я ранее попросил их ввести состояние в другой функции.

STATES = ["California", "New Mexico", "Ohio", "Maryland"]   
SPORTS = ["Football", "Baseball", "Basketball"]

def results(any_state):   
 SCORE = []   
 STATES.remove("{}" .format(any_state.title()))  
 for i in range(len(STATES)):  
  for j in range(len(SPORTS)):   
   scores = int(raw_input("What do you score {} in {}?".format(SPORTS[j], STATES[i])))
   SCORE.append(STATES[i])  
   SCORE.append(scores)   
   return(SCORE)

Если бы Калифорния была введена, я бы хотел, чтобы она закончила печатать.

Что ты забиваешь Футбол в Нью-Мексико?

Что ты забиваешь Футбол в Огайо?

Что ты забиваешь Футбол в Мэриленде?

Вы набрали в футболе всего ____.

Что вы набрали в бейсбол в Нью-Мексико?

Что ты забиваешь в бейсболе в Огайо?

Что ты забиваешь в бейсболе в Мэриленде?

Вы забили бейсбол в общей сложности ____.

Что ты забиваешь Баскетбол в Нью-Мексико?

Что ты забиваешь Баскетболу в Огайо?

Что ты забиваешь Баскетбол в Мэриленде?

Вы забили Баскетбол в общей сложности ____.

2 ответа

STATES = ["California", "New Mexico", "Ohio", "Maryland"]
SPORTS = ["Football", "Baseball", "Basketball"]

def results(state):
    for i in SPORTS:  # iterate for sports so that you can maintain your order of question by sports
        temp_scores = []   # construct a temporary list to create score
        for j in STATES:  #  iterate over states
            if j.lower() != state.lower():  # execute code only if iterated state is not same as state passed as function argument (case-insensitive match if you use .lower())
                scores = int(raw_input("What do you score {} in {}?".format(i, j)))
                temp_scores.append(scores)   # append scores
        print("You scored {} a total of {}".format(i, sum(temp_scores)))   # print score

results(STATES[0])  # call function with state

Ты можешь использовать:

sum(scores)

Пока scores это список (или итеративный)

Но то, как вы создаете и используете SCORES очень странно Было бы намного проще создать диктовку:

def results(any_state):   
 SCORE = {}
 for i in range(len(STATES)):  
   for j in range(len(SPORTS)):   
     scores = int(raw_input("What do you score {} in {}?".format(SPORTS[j], STATES[i])))
     SCORE[STATES[i]) = scores

Возвращение (SCORE)

Затем вы можете использовать:

sum(SCORE.values())
Другие вопросы по тегам