2013-02-25 78 views
-1

下午好。我正在尝试创建一个打印数字描述的程序。我在非常基本的Python中,并且在这个特定问题上有点困难。任何人都可以告诉我如何让程序区分数字以继续程序,并且Q,Bye或回车结束语句?如何让程序确定输入是否是python中的int?

while True: 

    N = eval(input("Enter an input: number to continue, Q, bye or carriage return to quit") 

    if N == int 

     N => 0 print("positive") 

     else print("negative") 
+0

它应该如何反应浮动? – askewchan 2013-02-25 19:19:17

+0

除非你知道它可以做什么(邪恶的东西),并且只有在没有其他方法达到预期结果时才使用'eval'。 – Matthias 2013-02-25 20:14:33

回答

5

您可以使用isinstance

if isinstance(N,int): 
    #do something 

注意,不建议这样的事情。特别是当你是eval ing raw_input。在这里,我会尝试这样的:

#python2 
try: 
    N = int(raw_input("Enter integer:")) 
except ValueError: 
    print "Not an integer!" 

或python3:

#python2 
try: 
    N = int(input("Enter integer:")) 
except ValueError: 
    print("Not an integer!") 
1

我用几种不同的方法,根据上下文:

try: 
    i = int(a) 
except ValueError: 
    print >>sys.stderr, "Cannot be converted to integer" 

if type(a) == type(1): 
    print "Yep, that's an int" 
+0

那是一些丑陋的蟒蛇 – 2013-02-25 19:18:04

+0

很难与你不同意,雅各布。我从来没有喜欢Python中的类型检查代码。我使用这些是因为它们清晰流畅。从mgilson的答案isinstance可能会稍微优雅... – DrSkippy 2013-02-25 19:23:33

相关问题