Найти - Пользователи
Полная версия: Помогите сделать проверку на input
Начало » Python для новичков » Помогите сделать проверку на input
1
IvanItterov
Такая проблема.

Хочу чтоб при input если тип равен int либо float выводило print ошибка

 n = input(»)
while type (n) != int:
    try:
        n = int(n)
    except ValueError:
        print(‘ошиб’)
        n = input(»)

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

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

Rafik
Примерно как-то так:
 def ne_chislo(stro):
    try:
        x = float(stro)
    except ValueError:
        return True
    return False
while True:
    n = input('>>')
    if ne_chislo(n):
        # если было введено число, то цикл вернёт пользователя на ввод значения
        # если НЕ числовое значение, прерываем цикл, т.е. идём далее
        break
    
AD0DE412
поправочка таки при int(str(“”)) вернет исключение
Arushi
В функции достаточно сделать блок try для преобразования string во float. Если преобразование прошло успешно, вернуть False, если ошибка преобразования, тогда вернуть True. Далее действовать по полученному из функции результату.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB