我该怎么做一个条件,要求在一定范围内有一个奇数?

2024-04-19 10:54:09 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个非常简单的例子来说明我的意思:

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

所以只要我在这个范围内输入一个数字,它就会打印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"

但这行不通。你知道吗


Tags: innumberhelloinputif定义defrange
3条回答

注意:python2.x没有进行优化-因此这只适用于python3.x的range

您可以利用xrange(或者3.x中的range不需要生成列表,并且可以进行成员资格测试…),方法是为它提供一个step参数以及start和end stops。。。你知道吗

所以,你可以用来检查奇数直到30000:

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

例如:

>>> for number in (1, 2, 3, 999999):
    print number in xrange(1, 30000, 2)

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

奇数不能除以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"

相关问题 更多 >