Я создаю функцию в Python для вычисления длины строки, сообщая пользователю, что Int и float не являются строкой. Секция Int работает, однако функция не учитывает число с плавающей запятой, и я не знаю, почему.
Я использую Visual Studio Code в Windows 10. Python 3.7.0 [MSC v.1914 64 бит (AMD64)] на win32
def length_string(mystring):
try:
if type(int(mystring)) == int:
return f"Hello, this is not {mystring} a string"
elif type(mystring) == float:
return f"Hello, this is not {mystring} a string"
elif type(str(mystring)) == str:
return len(mystring)
except:
return len(mystring)
string_name = input("Пожалуйста, введите значение: ") print(length_string(string_name))`
Result String Hello: 5 Result Int 555 = Hello, это не 555 строка Result Float 555.0 = 5, но должно быть таким же, как int.
int
и поэтому никогда не пройдет дальше вашего первого if. - person Chris Mueller   schedule 07.09.2018type(int(mystring)) == int
всегда либо True, либо вызывает ValueError — невозможно достичь ни одного из следующихelif
. После явного преобразования строки вint
нет особого смысла проверять, является лиint
int
! - person jasonharper   schedule 07.09.2018