Python 有人能给我解释一下代码中的这个片段吗;启动+;开始%2“吗;?
此代码块用于确定和打印偶数Python 有人能给我解释一下代码中的这个片段吗;启动+;开始%2“吗;?,python,python-3.x,Python,Python 3.x,此代码块用于确定和打印偶数 def print_even_numbers(start, stop): for i in range(start + start % 2, stop, 2): print(i) 此start+start%2被用来代替if语句。它的作用是什么?它用于从start的“下一个偶数”开始量程 考虑基本情况(无+开始%2):步骤2的范围为开始到停止。这将打印范围内的所有偶数,前提是start本身是偶数(否则将打印所有奇数)
def print_even_numbers(start, stop):
for i in range(start + start % 2, stop, 2):
print(i)
此
start+start%2
被用来代替if语句。它的作用是什么?它用于从start
的“下一个偶数”开始量程
考虑基本情况(无+开始%2
):步骤2的范围为开始
到停止
。这将打印范围内的所有偶数,前提是start
本身是偶数(否则将打印所有奇数)
+开始%2
将除2之外的其余部分添加到开始
,即0(当开始
为偶数时)或1(当开始
为奇数时),以确保范围确实从下一个偶数开始
因此,它只是一种更紧凑的形式:
def print_even_numbers(start, stop):
# add 1 if start is odd
if start % 2 == 1:
start = start + 1
for i in range(start, stop, 2):
print(i)
start+start%2
为您提供大于或等于start
的第一个偶数。
%
是模运算符。例如,a%b
返回除a/b
的剩余部分
所以如果start是偶数,start%2=0
,因为start
可以被2
整除(因为它是偶数)。所以start+start%2
就等于start
如果start是奇数,start%2
将是1,因此start+start%2
将等于start+1
。奇数加1总是偶数
因此,范围总是从偶数开始,即最接近
开始
,然后递增2,直到达到停止
。结果是开始
和停止
之间的所有偶数究竟什么不清楚?你自己做了什么来理解它?你的发现是什么?简单地要求为我解释这段代码并不是本文的主题。请阅读给定函数名的内容,您会认为如果start
是偶数,那么它也应该是偶数printed@OneCricketeer是的。不,start
input参数不打印,只打印下一个偶数number@OneCricketeer是的;)试试看。Doh:(我想它总是在添加一些东西