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

2024-04-25 14:06:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: 方法字符串用户程序功能trueinputstring
2条回答

试试这个:

它只接受非整数和无浮点类型的输入以返回正确的长度。你知道吗

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


这应该有助于你的事业。你知道吗

你可以试着用另一种方式来解决你的问题。据我所知,你的问题是当输入是一个数字,但输入法总是给出一个字符串。因此,第一步尝试将输入值转换为一个数字,如果它有效,则不执行任何操作,但如果它抛出一个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方法来使用regex删除任何数字。你知道吗

相关问题 更多 >