Python 根据输入类型(float/int/str)返回语句
我是python编码的初学者,在一个特定的练习中偶然发现了一个问题。本练习涉及向用户询问输入字符串并打印出字符串的长度。如果用户输入一个int,它应该说“你不能计算int的长度”,如果用户输入一个float,它应该说“你不能计算int的长度”。这是我的密码Python 根据输入类型(float/int/str)返回语句,python,python-3.x,input,types,casting,Python,Python 3.x,Input,Types,Casting,我是python编码的初学者,在一个特定的练习中偶然发现了一个问题。本练习涉及向用户询问输入字符串并打印出字符串的长度。如果用户输入一个int,它应该说“你不能计算int的长度”,如果用户输入一个float,它应该说“你不能计算int的长度”。这是我的密码 def string_length(mystring): if mystring.isdigit(): return "You can not calculate that length!" if isi
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
但它不起作用。如何修改代码以解决此问题 误解是内置的
输入
给出了一个依赖于输入值的类型。这不是真的。它总是在Python 3.x中提供字符串/str
输出
测试潜在非字符串输入的一种方法是尝试转换为float
。如果成功,打印您的错误消息。如果未成功,请计算并返回字符串的长度:
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))
误解是内置的输入
给出了一个依赖于输入值的类型。这不是真的。它总是在Python 3.x中提供字符串/str
输出
测试潜在非字符串输入的一种方法是尝试转换为float
。如果成功,打印您的错误消息。如果未成功,请计算并返回字符串的长度:
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))
更好的方法是提出ValueError
或TypeError
。请参见:len(3.14)
和len(3)
一个更好的方法是提出ValueError
或TypeError
。自己看:len(3.14)
和len(3)