Если оператор get пропущен, в то время как печатается только оператор else. И как мне сохранить строку или int в одной переменной? - PullRequest
0 голосов
/ 25 сентября 2018

Я пытался выполнить упражнение, которое попросило нас решить следующую проблему Изображение задачи упражнения , которое я пытался сделать, но не используя точно такие же ключевые слова, как показано в упражнении.

Вот мой код

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 Ответ

0 голосов
/ 25 сентября 2018

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

Редактировать: я добавил функцию для проверки, является ли введенное значение числом или нет

...