我是python编码的初学者,偶然发现了一个特定练习的问题。此练习涉及向用户询问输入字符串并打印出字符串的长度。如果用户键入一个int,则应说“您不能计算int的长度”,如果用户输入一个浮点数,则应说“您不能计算int的长度”。这是我的代码。
def string_length(mystring):
if mystring.isdigit():
return "You can not calculate that length!"
if isinstance(mystring,float):
return "You can not calculate that length!"
else:
return len(mystring)
mystring = input("Enter some random string ")
print(string_length(mystring))
这不会打印出任何错误,但是当我输入浮点数作为输入时,函数本身不起作用。我尝试过
type(mystring) == int/float
,但是它不起作用。如何修改我的代码以解决此问题?
答案 0 :(得分:2)
误解是内置的input
根据输入的值给出了类型。这不是真的它总是在Python 3.x中提供字符串/ str
输出。
可以测试进行潜在的非字符串输入的一种方法是尝试转换为float
。如果成功,则print
错误消息。如果不成功,则计算并return
字符串的长度:
def string_length(mystring):
try:
float(mystring)
return 'You cannot calculate the length of a number'
except ValueError:
return len(mystring)
mystring = input("Enter some random string ")
print(string_length(mystring))