Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 区别于;“字符串”;及;整数;_Python - Fatal编程技术网

Python 区别于;“字符串”;及;整数;

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。 请提供帮助,了解代码需要哪

我是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(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”,则会失败。我想您可以检查第一个字符是否为运算符,如果是,则检查字符串的其余部分是否为数字。