Форум сайта python.su
Такая проблема.
Хочу чтоб при input если тип равен int либо float выводило print ошибка
n = input(») while type (n) != int: try: n = int(n) except ValueError: print(‘ошиб’) n = input(»)
Отредактировано FishHook (Янв. 16, 2020 10:50:03)
Офлайн
Насколько понимаю, задача исключить из ввода числовых значений?
Если да, то сделай функцию проверки, которая будет вызываться с значением из input.
Насколько знаю, input всегда возвращает только строку. При преобразовании строки во float абсолютно фиолетово: введена строка с целочисленным представлением или с “запятой”.
В функции достаточно сделать блок try для преобразования string во float. Если преобразование прошло успешно, вернуть False, если ошибка преобразования, тогда вернуть True. Далее действовать по полученному из функции результату.
Офлайн
RafikИзвини) Я не знаю функции все. Я только 4 день учу питон, поэтому) Ну мне надр показать код и объяснмть че да как
Насколько понимаю, задача исключить из ввода числовых значений?Если да, то сделай функцию проверки, которая будет вызываться с значением из input.Насколько знаю, input всегда возвращает только строку. При преобразовании строки во float абсолютно фиолетово: введена строка с целочисленным представлением или с “запятой”.В функции достаточно сделать блок try для преобразования string во float. Если преобразование прошло успешно, вернуть False, если ошибка преобразования, тогда вернуть True. Далее действовать по полученному из функции результату.
Офлайн
IvanItterovа что вы хотите тогда вводить? символы ?
Т.е этот код ,когда будут вводить буквы то будет выдавать ошибку, как сделать также чтоб при вводе цифр выходила ошибка
Офлайн
я так понимаю try - except тут за место if - elif - else (зачем?)
# получаем строку n = input(») #проверяем тип тут if должен быть наверное while type (n) != int: try: #если n не int делаем его им зачем n = int(n) except ValueError: #и если не получится это почему не получится то print(‘ошиб’) #сново ввод вы зциклить хотели наверное и где кавычки n = input(») #--------------------------------------------------------------- # я тоже из это ... новичков пэтому как новичек новичку # бесконечный цикл с выходом по enter while True: n = input("»") if n == "": break # ну а что в строке с числами итд ... см. ниже
IvanItterovте вам принт нужен или исключение поднять?
при вводе цифр выходила ошибка
Отредактировано AD0DE412 (Янв. 16, 2020 20:45:41)
Офлайн
Примерно как-то так:
def ne_chislo(stro): try: x = float(stro) except ValueError: return True return False while True: n = input('>>') if ne_chislo(n): # если было введено число, то цикл вернёт пользователя на ввод значения # если НЕ числовое значение, прерываем цикл, т.е. идём далее break
Офлайн
поправочка таки при int(str(“”)) вернет исключение
Отредактировано AD0DE412 (Янв. 17, 2020 11:10:40)
Офлайн
В функции достаточно сделать блок try для преобразования string во float. Если преобразование прошло успешно, вернуть False, если ошибка преобразования, тогда вернуть True. Далее действовать по полученному из функции результату.
Офлайн