使用条件语句的语义错误[重复]
Posted
技术标签:
【中文标题】使用条件语句的语义错误[重复]【英文标题】:Semantic Error using Conditionals statements [duplicate] 【发布时间】:2019-05-27 18:21:38 【问题描述】:我正在尝试构建一个执行字符串长度的代码
此代码应该能够只接受字符串并返回它们的长度,但是当给出整数或浮点值时,它也会计算它们的长度。
def length(string):
if type(string)== int:
return "Not Available"
elif type(string) == float:
return "Not Allowed"
else:
return len(string)
string=input("Enter a string: ")
print(length(string))
输出:
Enter a string: 45
2
【问题讨论】:
【参考方案1】:您希望为输入 45
获得输出 'Not Available'
。但这不会发生,因为,
从键盘读取输入时默认类型是字符串。因此,输入45
的类型为str
。因此您的代码给出了输出2
。
【讨论】:
【参考方案2】:input
返回一个字符串,所以如果你检查它的类型,它总是字符串。要检查它是 int 还是 float,您必须尝试强制转换它。
try:
int(input)
except ValueError:
# not an int
return "Not Available"
try:
float(input)
except ValueError:
# not a float
return "Not Allowed"
return len(string)
【讨论】:
以上是关于使用条件语句的语义错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章