【问题标题】: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

【问题讨论】:

    标签: python python-3.x


    【解决方案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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-15
        • 1970-01-01
        • 2014-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        相关资源
        最近更新 更多