Найти - Пользователи
Полная версия: Проверка на ввод числа
Начало » Python для новичков » Проверка на ввод числа
1
Like_a_Doshi
Здравствуйте пользователи сообщества, подскажите как повторить запрос ввода если пользователь вводит строку? Когда гуглил нашел решение c try и except, но это работает только в том случае если первый раз был ввод числа а последующие(бесконечный цикл while == 0) строки или символы.
Пробывал через if type(s) == str, но это не работает( Я еще совсем новичок,подскажите пожалуйста. На всякий выложу код целиком.

 a = 25
b = 10
c = 5
d = 1
i = 0	#25
f = 0	#10
g = 0	#5
h = 0	#1
x = 0
while x == 0:
	try:
		s = float(input("Введите вашу сдачу в $:"))
	except ValueError:
		print("Введите числовое значение")
	if s <= 0:
		print("Неверное значение, повторите ввод")
	else:
		if s > 0:
			s = s * 100
			#print("Ваша сдача:", s,"центов")
			print("Сдача выдается монетами следующих номиналов: \n", a ,'центов ||', b, 'центов ||', c, 'центов ||', d,"цент")
			print("При расчете будет указано общее кол-во монет")
			if s > a:
				while s >= a:
					s = s - a
					i += 1
				while s >= b:
					s = s - b
					f += 1
				while s >= c:
					s = s - c
					g += 1
				while s >= d:
					s = s - d
					h += 1
			n = int(i + f + g + h)
			print("Ваша сдача:", n)
			#x += 1
PEHDOM
самый просто способ
 ...
except ValueError:
	print("Введите числовое значение")
        continue # переход к следующему витку цикла
...
или же
 ...
    try:
      ....
    except ValueError:
	print("Введите числовое значение")
    else: # else выполниться только если не было исключения
	if s <= 0:
           .....
Like_a_Doshi
PEHDOM
самый просто способ
Благодарю, работает.
Только вот теперь когда я ввожу дробное значение например 0.50 $ он мне выдает 25 монет,а должен 2 монеты по 25. Нужно будет пересмотреть цикл.
Но это уже моя проблема)
Хотелось бы еще узнать почему не работает условие:
 if type(s) != float:
Мне как для новичка такая запись очень удобна и понятна,может это работает только в старых версиях python? или это вообще на другом языке ? XD
PEHDOM
Like_a_Doshi
Хотелось бы еще узнать почему не работает условие: if type(s) != float:
это пому что input всегда строку возвращает, а float(input()) или успешно преобразует в float или выдаст исключение и условие или всегда ложно или до него даже не доходит.
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