为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2022-05-24 16:05:31
我的程序是使用 len() 方法计算字符串的长度。使用 input() 函数将字符串作为用户的输入。现在的问题是,如果输入是 int 而不是字符串,它不会计算长度。但是我无法执行第二部分,即如果输入是浮点数而不是字符串。我可以在代码中做什么或我可以使用哪些库函数?def strlength(string):    len1=len(string)    return len1len1=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))
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超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方法以使用正则表达式删除任何数字。


查看完整回答
反对 回复 2022-05-24
?
UYOU

TA贡献1878条经验 获得超4个赞

试试这个:


它只接受非整数和浮点类型输入来返回正确的长度。


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



这应该有助于您的事业。


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信