#python #loops
#python #циклы
Вопрос:
Итак, я попытался рассмотреть похожие вопросы и в своей книге, но не совсем соединил точки. У меня есть вычисления, но я не понимаю, как / где поместить функцию цикла, чтобы повторно ввести нового ученика с его оценками (кстати, 12 учеников).
Я попытался добавить цикл while в разных местах обозначено: <!!!>. Но я всегда получал другую ошибку.
def loop():
while newStudent =="y":
newStudent=input("Another student? (Enter y for yes): ")
name = input("Please enter name of student: ")
!!!
def scoreInput():
def calc_average(score1, score2, score3, score4, score5, score6, score7, score8):
def determine_grade(grade):
def results (score1, score2, score3, score4, score5, score6, score7, score8):
!!!
def main():
score1, score2, score3, score4, score5, score6, score7, score8 = scoreInput()
results (score1, score2, score3, score4, score5, score6, score7, score8)
!!!
main()
Любой совет о том, где я ошибаюсь в этом, был бы оценен или, может быть, я просто не понимаю. Также небольшое объяснение этого было бы полезно для понимания. : D
Комментарии:
1. Если вы что-то пробовали и получили ошибку, опубликовать это и решить ее было бы намного проще, чем это. Можете ли вы внести эти изменения?
2. По моему мнению, все вызовы функций, которые вы хотите повторить, должны находиться в цикле while. Итак, если вы вызываете функцию
loop
внутри main, все остальные функции и инструкции должны находиться внутриloop
функции в цикле while.3. Прошу прощения, я перепробовал больше вариантов, чем упоминал, и просто потерял отслеживание ошибок, связанных с каким местоположением.
4. Итак, вы говорите, def loop(): while newStudents=»y»: \ Все функции \ newStudent=input(«Другой студент? (Введите y для yes): «) def main(): цикл () ????
5. Да, @Snake780. Вы правильно поняли.
Ответ №1:
Грубый псевдокод для решения вашей проблемы будет
В вводе кода (main) запустите цикл,
def main():
loop()
В loop
функции есть рекурсия
def loop():
name = input("....")
scores = score_input()
show_results(scores)
new_student = input("Another student? (Enter y for yes): ")
if new_student == 'y':
loop()
else:
print('Exiting')
Комментарии:
1. Извините, я опоздал с ответом. Итак, вы хотите сказать, что я убираю другие функции и просто создаю одну функцию цикла со всем внутри?
2. Нет. просто функция вызывает внутри функции цикла.
Ответ №2:
Итак … радости кодирования сводятся к разным дням тестирования этого. Но это было просто, как добавление
for i in range(12):
На самом верху всего этого, чтобы заставить его работать 12 раз. Спасибо всем за вашу помощь!