没有获得所需的输出(条件+功能)

时间:2019-05-26 17:46:33

标签: python

我是Python的新手,一段代码似乎无法按需工作。 这是代码:

#Create a function that takes any string as argument and returns the length of that string. Provided it can't take integers.

def length_function(string):
    length = len(string)
    return length

string_input=input("Enter the string: ")
if type(string_input) == int:
    print("Input can not be an integer")
else:
    print(length_function(string_input))

每当我在结果中键入一个整数时,它就会为我提供该整数中的位数。但是,我想显示一条消息“输入不能为整数”。

我的代码中是否有任何错误,或者还有另一种方式来做到这一点。请回答。谢谢!

3 个答案:

答案 0 :(得分:3)

输入的任何输入始终为字符串。无法检查它的int值。它将永远失败。您可以执行以下操作。

def length_function(string):
    length = len(string)
    return length

string_input=input("Enter the string: ")
if string_input.isdigit():
    print("Input can not be an integer")
else:
    print(length_function(string_input))

输出:

Enter the string: Check
5

Enter the string: 1
Input can not be an integer

答案 1 :(得分:1)

我不确定您为什么将len()包装在length_function中,但这不是必须的。 input()的结果将始终是字符串,因此if不能评估为true。要将其转换为数字,请使用int()。如果无法将输入解析为整数,则此操作将失败,因此,如果不是...,那么您可能想要做类似

try:
    int(string_input)
    print("Input cannot be an integer")
except ValueError:
    print(length_function(string_input))

答案 2 :(得分:0)

例如,即使整数也被用作字符串,而不是10,而整数却是“ 10”。

def RepresentsInt(s):
try: 
    int(s)
    return True
except ValueError:
    return False

def length_function(string):
length = len(string)
return length

string_input=input("Enter the string: ")
if RepresentsInt(String_input):
    print("Input can not be an integer")
else:
    print(length_function(string_input))