如何在一定范围内制作需要奇数的条件?

时间:2013-10-06 22:35:40

标签: python

这是一个非常简单的例子:

def work():
    x = input("Give me a number : ")
    if x in range(30000):
        print "hello"

所以只要我在该范围内输入一个数字就会打印你好,但是如果我希望它只接受该范围内的奇数呢?我尝试定义一个单独的函数,其范围只是这样的奇数:

def work():
    a = input("Give me a number : ")
    if a in range(30000):
       X = range(30001)
       y = (2*X)-1
       if a in range(y):
           print "hello"

但这不起作用。

4 个答案:

答案 0 :(得分:6)

if 0 <= x < 30000 and x % 2 == 1:
    print "hello"

答案 1 :(得分:1)

注意:Python 2.x没有进行优化 - 因此这仅适用于Python 3.x的range

您可以通过为其提供步骤参数以及{1}}(或3.x中的xrange - 无需生成列表并可以进行成员资格测试...)开始和结束都停止......

因此,你可以用来检查奇数到30000:

range

例如:

if number in xrange(1, 30000, 2):
    pass

答案 2 :(得分:0)

奇数不会除以2,因此您可以使用modulo operator

进行验证
x % 2

在Python中,一个不等于0的数字被认为是True,所以这将完成工作:

def work():
    x = input("Give me a number : ")
    if x in range(30000) and x % 2:
        print "hello"

答案 3 :(得分:0)

如果你想列出数字,这里有一般的方法(但你应该使用range()函数):

def every(increment, range, offset=0):
    current = offset
    yield current
    while(1):
        current += increment
        if current < range:
           yield current
        else:
           break

因此,对于30,000的赔率,它将是:

for i in every(2, 30000, 1):
    ...