【发布时间】:2019-09-09 22:57:55
【问题描述】:
我的程序是使用 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))
【问题讨论】:
-
input总是返回一个字符串,您似乎知道,但为什么1234不是包含 4 个数字字符的有效字符串?另外,为什么hello...不是一个有效的 8 个字符的字符串?另请注意,如果未找到子字符串/字符,str.find将返回-1,而在这种情况下,bool(-1)始终为True- 唯一会为假的情况是当它为 0 时,实际上是发现不是您想要的第一个字符...您需要明确检查-1那里... -
isinstance(mynumber, float)怎么样?对你的案子有帮助吗?您也可以使用Decimal类来生成数字,这是恕我直言的最佳方式。您还可以使用input.replace(".", "")函数清理用户输入。
标签: python python-3.x