Уведомления

Группа в Telegram: присоединиться

#1 Янв. 16, 2020 10:02:45

IvanItterov
Зарегистрирован: 2020-01-16
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

Такая проблема.

Хочу чтоб при 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)

Офлайн

#2 Янв. 16, 2020 11:47:31

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 167
Репутация: +  19  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

Насколько понимаю, задача исключить из ввода числовых значений?
Если да, то сделай функцию проверки, которая будет вызываться с значением из input.
Насколько знаю, input всегда возвращает только строку. При преобразовании строки во float абсолютно фиолетово: введена строка с целочисленным представлением или с “запятой”.
В функции достаточно сделать блок try для преобразования string во float. Если преобразование прошло успешно, вернуть False, если ошибка преобразования, тогда вернуть True. Далее действовать по полученному из функции результату.

Офлайн

#3 Янв. 16, 2020 16:48:59

IvanItterov
Зарегистрирован: 2020-01-16
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

Rafik
Насколько понимаю, задача исключить из ввода числовых значений?Если да, то сделай функцию проверки, которая будет вызываться с значением из input.Насколько знаю, input всегда возвращает только строку. При преобразовании строки во float абсолютно фиолетово: введена строка с целочисленным представлением или с “запятой”.В функции достаточно сделать блок try для преобразования string во float. Если преобразование прошло успешно, вернуть False, если ошибка преобразования, тогда вернуть True. Далее действовать по полученному из функции результату.
Извини) Я не знаю функции все. Я только 4 день учу питон, поэтому) Ну мне надр показать код и объяснмть че да как

Офлайн

#4 Янв. 16, 2020 19:51:54

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 550
Репутация: +  63  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

IvanItterov
Т.е этот код ,когда будут вводить буквы то будет выдавать ошибку, как сделать также чтоб при вводе цифр выходила ошибка
а что вы хотите тогда вводить? символы ?

Офлайн

#5 Янв. 16, 2020 20:16:42

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 276
Репутация: +  12  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

я так понимаю 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
# ну а что в строке с числами итд ... см. ниже

строка и ее методы
https://docs.python.org/3/library/string.html
или регэксп
https://docs.python.org/3/library/re.html?highlight=re#module-re

зы
IvanItterov
при вводе цифр выходила ошибка
те вам принт нужен или исключение поднять?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. что бы вставить изображение нажмите и вставте ссылку на его url (например)

есчщо

Отредактировано AD0DE412 (Янв. 16, 2020 20:45:41)

Офлайн

#6 Янв. 17, 2020 06:22:54

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 167
Репутация: +  19  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

Примерно как-то так:

 def ne_chislo(stro):
    try:
        x = float(stro)
    except ValueError:
        return True
    return False
while True:
    n = input('>>')
    if ne_chislo(n):
        # если было введено число, то цикл вернёт пользователя на ввод значения
        # если НЕ числовое значение, прерываем цикл, т.е. идём далее
        break
    

Офлайн

#7 Янв. 17, 2020 10:59:18

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 276
Репутация: +  12  -
Профиль   Отправить e-mail  

Помогите сделать проверку на input

поправочка таки при int(str(“”)) вернет исключение



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. что бы вставить изображение нажмите и вставте ссылку на его url (например)

есчщо

Отредактировано AD0DE412 (Янв. 17, 2020 11:10:40)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version