首页 > 解决方案 > if 语句 get 被跳过,而只有 else 语句 get 被打印。我如何将字符串或 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))

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

但是当我输入任何整数或浮点数时,比如 "101" ,它仍然将它的长度打印为 "3",因为它将它作为字符串读取。

那么我为什么要添加变量,当我输入一个整数或字符串时,它应该将其识别为字符串或整数

标签: python-3.xif-statementatom-editorstring-lengthplatformio

解决方案


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

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


推荐阅读