我是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))
每当我在结果中键入一个整数时,它就会为我提供该整数中的位数。但是,我想显示一条消息“输入不能为整数”。
我的代码中是否有任何错误,或者还有另一种方式来做到这一点。请回答。谢谢!
答案 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))