Я исправил свой код для вас. Для будущих вопросов, пожалуйста, разместите свой код непосредственно в своем вопросе и отступьте его на 4 пробела, чтобы правильно отформатировать его.
addition_integer = 0
divison_integer = 0
while True:
test = int(input("Enter test score: "))
if test == 0:
break
else:
addition_integer += test
divison_integer += 1
print("The average is {}%".format(addition_integer/divison_integer))
Вот объяснение того, что я сделал, чтобы исправить это:
Вы были зацикливание while True
, который является правильным, однако у вас не было никакой возможности вырваться из цикла. Ваша строка, указывающая, что if test == '0'
никогда не решит истину, потому что вы принимаете ввод как int
от пользователя, не говоря уже о том, что он был неуместен и не имел правильного синтаксиса. То, что я делаю в приведенном выше коде, продолжается до тех пор, пока вход пользователя не будет равен 0
(целое число, а не строка). Если пользователь вводит 0
, мы просто выходим из цикла и печатаем среднее значение. До тех пор, мы продолжаем добавлять ввод в addition_integer
и приращение division_integer
на 1.
В общем, вы были очень близки к решению, просто необходимо несколько изменений синтаксиса и управляться в правильном направлении, чтобы как вы можете вырваться из бесконечного цикла.
Наконец, вот тест, используя цифры, которые вы предоставили в вашем вопросе:
Enter test score: 80
Enter test score: 70
Enter test score: 90
Enter test score: 88
Enter test score: 0
The average is 82%
'если тест ==«0'' не действует линия по себе. Что вы хотите сделать там? – Harrison
Пожалуйста, не публикуйте скриншот вашего кода. Скопируйте свой код в свой вопрос и используйте инструменты форматирования. Кроме того, вставьте * точное сообщение об ошибке, в котором происходит синтаксическая ошибка – idjaw
Я не вижу, как вы выходите из бесконечного цикла или почему вы ожидаете проверить целое число по сравнению со строкой –