使用条件语句的语义错误[重复]

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)

【讨论】:

以上是关于使用条件语句的语义错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

条件语句 PHP 5.4 出现意外的“)”错误 [重复]

if语句

如何使用条件语句应用 ngclass [重复]

错误打破了for循环:条件try语句?

js中if条件语句以及switch条件语句的使用

如果条件语句不适用于 IE 11 [重复]