Напишите программу, которая выдает входные данные от пользователя, запрашивая «Введите мне входные данные:»

#python-3.x

#python-3.x

Вопрос:

Напишите программу, которая получает входные данные от пользователя, запрашивая «Дайте мне ввод:», и передает эту строку в «silly_function», если функция возвращает без ошибок. просто распечатайте все, что она вернула. Однако: если функция выдает ошибку ValueError, программа должна вместо этого напечатать «Я не могу использовать это значение»; если функция выдает ошибку TypeError, программа должна вместо этого напечатать «Недопустимый ввод»

 def silly_function(a):
    a = input('Give me an input')
    try:
        sily_function(a)
    except ValueError:
        print('I cannot see this value')[enter image description here][1]
  

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

1. Здравствуйте, добро пожаловать в SO, в чем ваш вопрос?

2. Где ошибки моей программы?

3. Есть silly_function != sily_function ?. Если да, то каков код для функции sily ? Если нет, то прямо сейчас вы повторяете бесконечно. Невозможно, чтобы silly_function выводила значение Value_Error, поскольку в нем ничего нет, и никакого завершения вообще.

4. я забыл букву «l» в «sily_function (a)», которая должна быть silly_function (a)

Ответ №1:

Давайте попробуем это вместе.

Анализ кода

 def silly_function(a):
    a = input('Give me an input')
  

это нормально, это предложит пользователю ввести**

     try:
        silly_function(a)
  

Зачем вам нужно снова вызывать silly_function ? Я не думаю, что это было предполагаемое поведение?

Кроме того, silly_function не делает ничего, что приведет к завершению рекурсии или генерированию ошибки, поэтому это неизбежно приведет к сбою.

     except ValueError:
        print('I cannot see this value')[enter image description here][1]
  

Предположим, что это опечатка, но see != use и вы обрабатываете только одну ошибку, а не другую.

Предложение

Давайте прямо в псевдокоде немного поможем

 def error_handling_function(a):
    a = input('Give me an input')
    try:
        silly_function(a)
    except #input error here:
        #handle error here
    except #input error here:
        #handle error here

def silly_function(a):
    #write code that can break and generate the two error you are looking for