我是python新手,正在使用Atom文本编辑器/IDE。我正在写一个简单的代码,这是从用户的输入,并告诉它是整数或not.Here是代码。
def check(string):
if type(string) == int:
return "Integer"
else:
return "String"
string=input()
print (check(string))无论输入的是10还是hello,此函数都会返回"String“。请帮助,什么改变代码需要,以便它可以区分整数和字符串。
发布于 2020-04-21 03:29:26
下面是一个使用isnumeric的解决方案
def check(string):
if string.isnumeric():
return "Integer"
else:
return "String"
string=input()
print (check(string))发布于 2020-04-21 03:23:42
强制转换它,如果失败,它就是一个非整数
def check(string):
try:
int(string)
return 'Integer'
except ValueError:
return 'String'
string=input('Enter anything: ')
print(string, 'is', check(string))如果你更喜欢LBYL:
def check(string):
if string.isnumeric() or (string and string[0] in ['-', '+'] and string[1:].isnumeric()):
return 'Integer'
else:
return 'String'发布于 2020-04-21 03:22:57
试试这个:
def check(inp):
if isinstance(inp , int) :
return "Integer"
elif isinstance(inp , str) :
return "String"
else:
return "Other"您应该尝试使用isinstance()进行运行时类型检查。无论如何,input()总是返回字符串。
https://stackoverflow.com/questions/61330352
复制相似问题