Найти - Пользователи
Полная версия: Проверка данных после ввода
Начало » Python для новичков » Проверка данных после ввода
1
tv.vldmr
Доброе,
пишу маленькую первую программу. python изучаю 3-4 день, первый язык программирования для меня.

Столкнулся с проблемой …проверки введенных данных.

def commision :
moneybank = input ("Есть ли деньги в банке? 1 - ДА, 2 - Нет: ")
if moneybank == 2 :
moneynobank()
elif moneybank == 1:
moneyyesbank()
else type(moneybank) != int:
print "Вы ввели не корректные данные. Сделайте выбор заново."
print "================================================================"
commision()
Если вводить не правильные цифры - то проверка работает без проблем, но если ввести любую букву, то в ответ получаю:

NameError: name 'd' is not defined
Нужна помощь для реализации проверки введенных данных.

Спасибо!
Zzzz
Попробуй так:
# -*- coding: utf-8 -*-
while 1:
try:
num = int(raw_input("Введите целое число:\n"))
break
except ValueError:
print "Вы ошиблись. Попробуйте снова."
tv.vldmr
Zzzz
немного не понял, как должна выглядеть функция с таким кодом…

попробую Ваш вариант…
Zzzz
Если убрать бесконечный цикл (while 1) и выход из него (break), будет выглядеть понятнее:
# -*- coding: utf-8 -*-
try:
num = int(raw_input("Введите целое число:\n"))
print num
except ValueError:
print "Вы ошиблись. Попробуйте снова."
но уже после первого неверно введённого символа программа будет завершать работу с сообщением “Вы ошиблись. Попробуйте снова.”
Бесконечный цикл позволяет пользователю вводить значение до тех пор, пока не будет введено верное не вызывая при это остановки программы.
tv.vldmr
Zzzz
ага, понял, получается придется чуток переделывать функцию в целом)
py.user.next
def moneyyesbank():
print 'yes'

def moneynobank():
print 'no'

moneybank = 0
while moneybank not in (1, 2):
try:
moneybank = input ("Есть ли деньги в банке? 1 - ДА, 2 - Нет: ")
except NameError:
print "Вы ввели не корректные данные. Сделайте выбор заново."
print "================================================================"
continue
if moneybank == 1:
moneyyesbank()
elif moneybank == 2:
moneynobank()
tv.vldmr
py.user.next
def moneyyesbank():
print 'yes'

def moneynobank():
print 'no'

moneybank = 0
while moneybank not in (1, 2):
try:
moneybank = input ("Есть ли деньги в банке? 1 - ДА, 2 - Нет: ")
except NameError:
print "Вы ввели не корректные данные. Сделайте выбор заново."
print "================================================================"
continue
if moneybank == 1:
moneyyesbank()
elif moneybank == 2:
moneynobank()
Спасибо большое ;-) Думал когда приеду домой самому попытаться сделать ;-) Но всё же, очень приятно!
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