0

如何编写python代码要求用户输入一个数字,返回数字的int,如果用户输入一个str,例如“One”,返回一个错误信息,比如“please input a int number”?我怎么能那样做?

另外我必须检查这个数字是否是奇数,所以我不确定我是否可以用 try 和 except 来做到这一点。我不知道如何在我的代码中添加它。

谢谢。

def getnum(): 

    errormessage="Please input a odd number"

    asknum=raw_input("Please input a number: ")
    num=int(asknum)

    if num%2!=0:  #return num if it is odd number
        print num

    else:
        print errormessage
        return getnum()

getnum()
4

6 回答 6

6
try:
    a = int(raw_input("Enter an integer: "))
    print a  # or do anything else with "a"
except ValueError:
    print "Please enter an integer."


编辑回应OP的评论

try:
    a = int(raw_input("Enter an integer: "))
    if a % 2 == 1:
       print "Integer is odd"  # or do anything else
    else:
       print "Integer is even"  # or do anything else
except ValueError:
    print "Please enter an integer."
于 2012-09-21T03:31:40.350 回答
1

请注意,使用 raw_input() 会将变量存储为字符串,如果要将其自动存储为 int,请使用 input()。这适用于 3 之前的 Python 版本。

于 2012-09-21T05:26:23.593 回答
0

您可以使用提到的其他答案做您想做的事。对于一些额外的信息,python中变量的类型可以通过使用type()

>>> a = 1
>>> type(a)
<type 'int'>
>>> b = 'str'
<type 'str'>

您可以通过以下方式检查变量的类型

>>> if type(a) == int:
...     print 'a is integer'
... 
a is integer
于 2012-09-21T03:42:13.987 回答
0

您可以尝试多种方法。

一种方法是

userinput = raw_input()
if not all(x in string.digits for x in userinput):
     print 'Please enter an int number'

但这在验证方面有点弱 - 它只是检查所有输入字符是否都是数字。

或者你可以试试

userinput = raw_input()
try:
     asint = int(userinput)
except ValueError:
     print 'Please enter an int number'

但这使用 try/except 来处理应该是简单的 if/else 的东西。

于 2012-09-21T03:34:38.327 回答
0
s = input()
try:
    return int(s)
except:
    return 'Error'
于 2012-09-21T03:34:51.133 回答
0

对字符串对象使用 isdigit() 函数。

如果数字为假,则返回真。

于 2012-09-21T03:35:16.687 回答