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方法以使用正则表达式删除任何数字。
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.")
这应该有助于您的事业。
添加回答
举报