早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求问Python编程definterval(start,stop=None,step=1):'Imitatesrange()forstep>0'ifstopisNone:start,stop=0,startresult=[]i=startwhilei

题目详情
求问Python编程
def interval(start,stop=None,step=1):
'Imitates range() for step>0'
if stop is None:
start,stop=0,start
result=[]
i=start
while i result.append(i)
i+=step
return result
请问以上程序中,start,stop=0,start这一句是什么意思?是start,stop=0同时等于0,还是什么?比如输入interval(10),start,stop=0,start赋值是什么情况?当i=start=10,stop=0,之后的部分是怎么运行的?
谢谢
▼优质解答
答案和解析
啊哈,这个问题我尝试着解答哈。
Python是个非常舒服的语言,比如你这句
start,stop=0,start
其实已经完成了两个赋值操作
1.start=0
2.stop=startps
p.s.这种方法有什么用处呢?在交换数字的时候特别有用
比如你a=3,b=4
你写成a,b=b,a
执行完后a=4,b=3
就直接完成了两个数字交换的操作,PYTHON魅力所在啊!
甚至可以交换N个数字
a=3,b=4,c=5
写成a,b,c=b,c,a
执行完后a=4,b=5,c=3
好了,第一个问题解答完了。
第二个问题,如果输入interval(10),我们来看下怎么执行的。
因为只有一个参数,所以start被赋值了,值为10,即start=10,stop=None,step=1 后面两个参数默认
所以start,stop=0,start 执行完后 start=0,stop=10(明白了吧)
所以i=start=0 并非你说的i=start=10
所以程序就进入while循环啦
之后应该不用我解释了哈!
Python是一个非常好玩的脚本语言,希望你能坚持!我学了一个多月了,越来越热爱它了,加油!共勉之!