Если оператор get пропущен, в то время как печатается только оператор else. И как мне сохранить строку или int в одной переменной?
Я пытался выполнить упражнение, которое попросило нас решить следующую проблему. Упражнение "Образ задачи", которое я пытался выполнить, но не используя те же ключевые слова, которые показаны в упражнении.
Вот мой код
def StringLength(length_of_String):
return len(text)
text = input("length_of_String :")
if type(text) == int:
print ("python doesn't show length of integers")
else :
print (len(text))
Но проблема, которую я здесь получаю, заключается в том, что, если я добавлю какой-нибудь текст, скажем, как "Джокер". Это выведет мне длину как "5", что правильно.
Но когда я набираю любое целое число или число с плавающей точкой, скажем "101", он все равно печатает его длину как "3", потому что он читает его как строку.
Так почему же я добавил переменную, в которой при вводе целого числа или строки он должен распознавать ее как строку или целое число?
1 ответ
some_variable = input()
по умолчанию выдаст вам строку. Вы можете изменить свой код:
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
def StringLength():
text = input('Enter:')
if is_number(text):
print ("python doesn't show length of integers")
else :
return(len(text))
#StringLength() #Remove the '#' at the start of the line to test the function
Изменить: я добавил функцию для проверки, является ли введенное значение числом или нет