如果输入是浮点数,如何不计算字符串的长度?

我的程序是使用 len() 方法计算字符串的长度。使用 input() 函数将字符串作为用户的输入。现在的问题是,如果输入是 int 而不是字符串,它不会计算长度。但是我无法执行第二部分,即如果输入是浮点数而不是字符串。我可以在代码中做什么或我可以使用哪些库函数?


def strlength(string):

    len1=len(string)

    return len1


len1=input("Enter any string:")


if len1.isdigit()==True:

    print("Integers cannot have length !")

elif bool(len1.find("."))==True:

    print("Float numbers cannot have length !")

else:

    print(strlength(len1))


开满天机
浏览 127回答 2
2回答

湖上湖

您可以尝试以另一种方式解决您的问题。据我了解,您的问题是输入是数字时,但输入法总是给出一个字符串。所以第一步尝试将输入值转换为一个数字,如果它有效,但如果它抛出一个 ValueError 你有一个字符串,所以你可以得到长度。def strlength(string):    """"""    try:        float(string)        print('The input was a number')        return None    except ValueError:        return len(string)len1 = input('Enter any string:')print(strlength(len1))但如果输入是一个数字后跟一个字符串,例如“ 15.2toto ”,则它不起作用。如果您真的不想考虑字符串中的任何数字,那么您应该查看re模块的sub方法以使用正则表达式删除任何数字。

UYOU

试试这个:它只接受非整数和浮点类型输入来返回正确的长度。def strlength(string):    if string.isdigit():        return False    if string.find('.') > 0:        a, b = string.split('.')         if a.isdigit() and b.isdigit():            return False     if  type(string) == str :            return len(string)length = strlength(input("Enter any string:"))if (length):    print("The length of the string is ", length)else:    print("The input was an integer or a float.")这应该有助于您的事业。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python