Расчет суммы переменных
Я хочу узнать, каков общий балл, который вы даете каждому виду спорта в моем коде.
Просто чтобы отметить, что я ранее попросил их ввести состояние в другой функции.
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())