【问题标题】:Return a statement based on the type of the input(float/int/str)根据输入的类型返回语句(float/int/str)
【发布时间】:2019-03-21 04:56:00
【问题描述】:

我是 python 编码的初学者,我偶然发现了一个特定练习的问题。此练习涉及向用户询问输入字符串并打印出字符串的长度。如果用户输入一个整数,它应该说“你不能计算一个整数的长度”,如果用户输入一个浮点数,它应该说“你不能计算一个整数的长度”。这是我的代码。

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    

但它不起作用。如何修改我的代码来解决这个问题?

【问题讨论】:

  • 更好的方法是提出ValueErrorTypeError。亲自查看:len(3.14)len(3)

标签: python python-3.x input types casting


【解决方案1】:

误解是内置的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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 2020-07-21
    • 2021-09-30
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多