Как ввести ValueError и использовать его (Python 3.7)

1

Это мой код для моего класса Computer Science. Я добавил функцию, чтобы убедиться, что пользователь не вводит не-int/float. Я пытаюсь получить доступ к записи пользователя, чтобы повторить ее, чтобы она выглядела следующим образом:

Enter your first number:
> not_a_valid_float_or_int
"not_a_valid_float_or_int" is not a valid number, try again.

Поэтому в основном я пытаюсь заменить "Что вы ввели" на то, что пользователь ввел.

print("Hello!\n")
while True:
    try:
        firstnumber = float(input("Enter your first number:\n"))
    except ValueError:
        print("\nWhat you have entered is not a valid number, try again.")
    else:
        break
print()
while True:
    try:
        secondnumber = float(input("Enter your second number:\n"))
    except ValueError:
        print("\nWhat you have entered is not a valid number, try again.")
    else:
        break
print("\nThe first number is:", str(firstnumber).rstrip("0").rstrip(".") , "\nThe second number is:", str(secondnumber).rstrip("0").rstrip("."), "\nThe sum is:", str(firstnumber + secondnumber).rstrip("0").rstrip("."), "\nThe product is:", str(firstnumber * secondnumber).rstrip("0").rstrip("."))

Большое спасибо!

Дэвид

PS, пожалуйста, знайте, что я очень хорошо знаком с сценой кодирования.

  • 0
    Сохраните входную строку как переменную вне блоков try/except , затем try использовать float() , и если ошибка обнаружена, вы можете использовать эту строку в печати ошибок.
Теги:
python-3.x

1 ответ

1
Лучший ответ

Чтобы дать вам представление о том, что означает комментарий,

while True:
    firstnumber_raw = input("Enter your first number:\n")
    try:
        firstnumber = float(firstnumber_raw)
    except ValueError:
        print("\n'" + firstnumber_raw "' is not a valid number, try again.")
    else:
        break

В качестве примечания, поскольку вы отметили Python 3.7, f-string - ваш друг.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню