Два цикла while, которые работают одновременно - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь получить первый, пока Истина l oop, чтобы задать вопрос. Если вы ответили «y» для «да», то оно продолжается до секунды, пока test_score! = 999: l oop. Если введено что-либо кроме ay, оно должно остановиться. Как только второй, пока l oop запускается, пользователь вводит свои результаты тестов и вводит «конец», когда они заканчивают и код выполняет, первое «пока истинно» l oop должно спрашивать, хочет ли пользователь ввести другой набор тестовых баллов. Если введено «y», то процесс завершается заново. Я знаю, что второй является вложенным, в то время как l oop. Однако в PyCharm я отступил в соответствии с правилами отступа python, и он все еще говорит мне, что у меня есть ошибки отступа, и я не запустил программу. Вот почему они оба выстроены друг под другом, внизу. С учетом сказанного, когда я запускаю его, как указано ниже, он дает следующий ответ:

Enter test scores
Enter end to end the input
==========================
Get entries for another set of scores? y
Enter your information below
Get entries for another set of scores? n
((When I type in 'n' for no, it shows the following:))
Thank you for using the Test Scores application. Goodbye!
Enter test score: 80 (I entered this as the input)
Enter test score: 80 (I entered this as the input)
Enter test score: end (I entered this to stop the program)
==========================
Total score: 160
Average score: 80

Когда я отвечал «у», он начинал непрерывно l oop. Когда я ответил 'n', он дал заявление на печать. Тем не менее, это также позволило мне ввести в мои результаты тестов, ввести завершение и выполнить программу. Но он также не спросил пользователя, хочет ли он ввести новый набор результатов тестов. Любые предложения о том, где я иду не так?

print("The Test Scores application")
print()
print("Enter test scores")
print("Enter end to end input")
print("======================")

# initialize variables
counter = 0
score_total = 0
test_score = 0

while True:
    get_entries = input("Get entries for another set of scores?  ")
    if get_entries == 'n':
        print("Thank you for using the Test Scores application. Goodbye!")
        break
    else:
        print("Enter your information below")
        continue

counter = 0
score_total = 0
test_score = 0

while test_score != 999:
    test_score = input("Enter test score: ")

    if test_score == 'end':
        break
    elif (int(test_score) >= 0) and (int(test_score) <= 100):
        score_total += int(test_score)
        counter += 1
    elif test_score == 999:
        break
    else:
        print("Test score must be from 0 through 100. Score discarded. Try again.")

    # calculate average score
average_score = round(score_total / counter)

# format and display the result
print("======================")
print("Total Score:", score_total,
      "\nAverage Score:", average_score)

1 Ответ

0 голосов
/ 12 марта 2020

Циклы while должны быть вложенными, чтобы иметь повторяющиеся записи

print("The Test Scores application")
print()
print("Enter test scores")
print("Enter end to end input")
print("======================")

# initialize variables
counter = 0
score_total = 0
test_score = 0

while True:
    get_entries = input("Get entries for another set of scores?  ")
    if get_entries == 'n':
        print("Thank you for using the Test Scores application. Goodbye!")
        break
    else:
        print("Enter your information below")
        counter = 0
        score_total = 0
        test_score = 0

        while test_score != 999:
            test_score = input("Enter test a score: ")

            if test_score == 'end':
                break
            elif (int(test_score) >= 0) and (int(test_score) <= 100):
                score_total += int(test_score)
                counter += 1
            elif test_score == 999:
                break
            else:
                print("Test score must be from 0 through 100. Score discarded. Try again.")

# calculate average score
        average_score = round(score_total / counter)

# format and display the result
        print("======================")
        print("Total Score:", score_total,
              "\nAverage Score:", average_score)

Вывод:

The Test Scores application

Enter test scores
Enter end to end input
======================

Get entries for another set of scores?  y
Enter your information below

Enter test a score: 60

Enter test a score: 80

Enter test a score: 90

Enter test a score: 70

Enter test a score: end
======================
Total Score: 300 
Average Score: 75

Get entries for another set of scores?  y
Enter your information below

Enter test a score: 80

Enter test a score: 80

Enter test a score: end
======================
Total Score: 160 
Average Score: 80

Get entries for another set of scores?  n
Thank you for using the Test Scores application. Goodbye!
...