Я прошу прощения, если это оказывается дубликат, но я не мог найти что-нибудь по этому поводу ...Оценивает истинное вне выражения, но ложь внутри
(Python 2.7.6)
В Ессенции, Я использую варианты кода ниже:
def isnum(a):
try:
float(a)
return True
except ValueError:
return False
, который определяет, действительно ли введен пользователем номер или нет.
isnum(3)
True
isnum("3")
True
Если я использую следующий код:
def input():
while True:
a = raw_input("Please enter a number:")
if isnum(a):
print float(a)
break
else:
print "Please enter only numbers!",a,'is invalid'
input()
Я хотел бы также отметить, что я пытался isnum(a) == True
, а также ...
я получаю «ввода только цифры» ошибка при вводе «3» при появлении запроса !.
Please enter a number:"3"
Please enter only numbers! "3" is invalid
Заранее спасибо.
Вы не должны вводить '' 3 "', просто '3'. – thefourtheye
'float ('" 3 "')' отличается от 'float (" 3 ")'. –
Кроме того, 'str.isdigit()' является встроенным, который делает то, что делает ваш 'isnum()'. – msvalkon