у меня экзамен, и я не знаю, в чем проблема в моем ответе

#python #python-3.x #python-2.7 #python-requests

Вопрос:

Напишите фрагмент кода Python, используйте управление потоком «if-elif» вместе с циклом «while», который будет:

  1. Проинструктируйте пользователя ввести число, которое больше 0 и меньше или равно 10, и сохраните входные данные в переменной в виде значения с плавающей запятой
  2. Если входное число больше 0 и меньше или равно 10,
  3. используйте цикл «while», чтобы добавить число к самому себе, пока сумма не превысит значение 100.
  4. После того как сумма превысит значение 100, используйте инструкцию print для вывода суммы
  5. В противном случае выведите сообщение «Вы не ввели значение от 0 до 10».

Мой Ответ :

 inval = float(input('Input a number greater than zero and less than or equal to 10: ')) if inval gt; 0 and inval lt;= 10:  while inval lt; 100:  inval  = inval  continue  else:  print(inval) elif inval lt;= 0 or inval gt; 10:  print('You did not enter a value between 0 and 10')  

Комментарии:

1. Мое предположение: inval lt; 100 должно быть inval lt;= 100 .

2. В чем проблема, с которой вы столкнулись? В качестве дополнительного примечания вам не нужно continue и else . Удалите их и снимите привязку print .

Ответ №1:

Причина, по которой ваш ответ неприемлем, заключается в том, что код должен возвращаться 100.0 для ввода типа 6.25 . Но ваш код возвращается 200.0 из-за вашего состояния while. Вы можете просто добавить знак равенства (=), чтобы решить эту проблему. А также я удалил ненужные части из вашего кода.

 inval = float(input('Input a number greater than zero and less than or equal to 10: ')) if inval gt; 0 and inval lt;= 10:  while inval lt;= 100:  inval  = inval  print(inval) else:  print('You did not enter a value between 0 and 10')  

Комментарии:

1. В требовании 3 говорится, что сумма «превышает 100,0», поэтому ваше условие меньше или равно неверно.

2. @PaulCornelius Тебе стоит подумать об этом еще раз.

3. Да! Ответ правильный.

Ответ №2:

Я думаю, что единственное, что может быть неправильным, — это условие цикла While (вы должны это сформулировать inval lt;= 100 ). Однако проблема может быть в другом внутри цикла; поскольку он не «эффективен», после того, как значение inval больше 100, он выведет значение, даже если другого там нет. Видеть:

 inval = float(input('Input a number greater than zero and less than or equal to 10: ')) if inval gt; 0 and inval lt;= 10:  while inval lt;= 100:  inval  = inval  print(inval)  elif inval lt;= 0 or inval gt; 10:  print('You did not enter a value between 0 and 10')  

Я не вижу другой проблемы в вашем коде 🙂