如果语句 get 被跳过,而只有 else 语句被打印。我如何将字符串或 int 存储在单个变量中?

If statement get's a skipped, while only else statement get's printed .And how do I store a string or int in a single variable?

我正在尝试做一个练习,要求我们解决以下问题 Exercise problem image 我尝试这样做,但没有使用与练习中所示完全相同的关键字。

这是我的代码

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))

但我遇到的问题是,如果我添加任何文本,比如 "joker"。 它会将我的长度输出为“5”,这是正确的。

但是当我键入任何整数或浮点数时,例如“101”,它仍将其长度打印为“3”,因为它正在将其作为字符串读取。

所以我怎么添加变量,当我在其中输入整数或字符串时,它应该将其识别为字符串或整数

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

编辑:我添加了一个函数来测试输入的值是否为数字