Python 区别于;“字符串”;及;整数;
我是python新手,使用Atom文本编辑器/IDE。我正在写一个简单的代码,它接收用户的输入,并判断它是否为整数Python 区别于;“字符串”;及;整数;,python,Python,我是python新手,使用Atom文本编辑器/IDE。我正在写一个简单的代码,它接收用户的输入,并判断它是否为整数 def check(string): if type(string) == int: return "Integer" else: return "String" string=input() print (check(string)) 无论键入什么,此函数都返回“String”,例如10或hello。 请提供帮助,了解代码需要哪
def check(string):
if type(string) == int:
return "Integer"
else:
return "String"
string=input()
print (check(string))
无论键入什么,此函数都返回“String”,例如10或hello。
请提供帮助,了解代码需要哪些更改,以便区分整数和字符串。尝试以下操作:
def check(inp):
if isinstance(inp , int) :
return "Integer"
elif isinstance(inp , str) :
return "String"
else:
return "Other"
您应该尝试使用
isinstance()
进行运行时类型检查。无论如何,input()
总是返回字符串。强制转换它,如果失败,则为非整数
def check(string):
try:
int(string)
return 'Integer'
except ValueError:
return 'String'
string=input('Enter anything: ')
print(string, 'is', check(string))
如果你更像是一个白手起家的人:
def check(string):
if string.isnumeric() or (string and string[0] in ['-', '+'] and string[1:].isnumeric()):
return 'Integer'
else:
return 'String'
下面是一个使用isnumeric的解决方案
def check(string):
if string.isnumeric():
return "Integer"
else:
return "String"
string=input()
print (check(string))
查看isinstance()和isnumeric()
输入将始终返回字符串。即使键入10
,这也只是字符串“10”
,在控制流中使用异常通常不是最好的主意。@rdas并不意味着它是错误的。如果输入为“10”
,则不会返回整数。如果输入为“-1”或“+1”,则会失败。我想您可以检查第一个字符是否为运算符,如果是,则检查字符串的其余部分是否为数字。