Python 用于循环和范围

Python 用于循环和范围,python,loops,for-loop,Python,Loops,For Loop,我是编程和Python的初学者,我想澄清一个关于for循环的简单问题 def check(number): for number in range(0,10): if number/2*2==number: print "Even nos:", (number) else: print "Odd nos:", (number) check(6) 有人知道我为什么会得到这个结果吗 Even nos: 0 Odd

我是编程和Python的初学者,我想澄清一个关于for循环的简单问题

def check(number):
  for number in range(0,10):
        if number/2*2==number:
            print "Even nos:", (number)

        else:
            print "Odd nos:", (number)
check(6)
有人知道我为什么会得到这个结果吗

Even nos: 0
Odd nos: 1
Even nos: 2
Odd nos: 3
Even nos: 4
Odd nos: 5
Even nos: 6
Odd nos: 7
Even nos: 8
Odd nos: 9
我想看看6号是不是偶数。。除非括号内的数字并不重要,因为这段代码将检查整个范围(0到10)中的偶数?很抱歉现在对此感到困惑:(谢谢你的帮助

除非括号内的数字并不重要,因为这段代码将检查整个范围(0到10)中的偶数

答对了。您传入了
number
,但随后您的循环忽略传入的内容,并根据循环定义更改
number
,循环范围为0-9

你可能想要这样的东西:

def check(number):
    print number % 2 == 0
或:

请注意模(%)运算符的使用,如果您:

def check(number):
  for number in range(0,10):
在函数的第一行,你重新定义了你的参数,因此你再也不能访问它了。你的函数总是以同样的方式运行,不管你给它什么

我想你想做的是:

def check(number):
     if number/2*2==number:
        print "Even nos:", (number)
     else:
        print "Odd nos:", (number)
然后

check(6)

总之,检查数字均匀性的更好方法是
数字%2==0
,这意味着“当我将这个数字除以2时,它是否仍然是零”

您可以使用模数(%)检查偶数/奇数:

In [20]: def isodd(number):
    return bool(number%2)
   ....: 

In [21]: isodd(6)
Out[21]: False
避免了问题


但正如@devnull所建议的,您正在重新定义传递的参数“number”是什么。您的代码似乎在尝试做两件事。

所以您只想知道
是否检查(6)==True
?如果重新定义变量,您认为会发生什么?如果我正确理解您的问题,您的
number/2*2==number
条件不需要
for
循环。啊,谢谢大家的回答!我现在明白我哪里出错了!:)
for number in range(0,10):check(number)
In [20]: def isodd(number):
    return bool(number%2)
   ....: 

In [21]: isodd(6)
Out[21]: False