Python 用于循环和范围
我是编程和Python的初学者,我想澄清一个关于for循环的简单问题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
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