python中的for循环的步长如果是负值,该怎么处理?

ccmfk 2007-08-01 03:11:16
我有一个方法,接收了几个参数,其中一个参数为该方法中for循环的步长,可能为正也可能为负,但是为负值时就出现了错误。请问各位该如何解决?谢谢了!
例:
def testmethod(x,stepx):
if(stepx != 0):
for i in range(x+stepx,18,stepx):
if(i < 1):
break
print "i:"+str(i)
print testmethod(17,-1)
...全文
828 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccmfk 2007-09-29
  • 打赏
  • 举报
回复
我个问题我已经解决了,但却忘了结帖,不好意思了各位!
zwo0o 2007-08-02
  • 打赏
  • 举报
回复
我今天又思考了一下,觉得如果把程序改成这样不知道行不行!我是在不知道楼主原意的情况下改的,还请见谅!代码如下:
def testmethod(x,stepx):
if(stepx > 0 and (x + stepx)<18) or (stepx < 0 and (x + stepx)>18):
for i in range(x+stepx,18,stepx):
if(i < 1):
break
print "i:"+str(i)
else:
print "testmethod() 的返回值为[]"
xyzxyz1111 2007-08-01
  • 打赏
  • 举报
回复
楼主的错误是什么? 希望有什么结果?
iambic 2007-08-01
  • 打赏
  • 举报
回复
呵呵,他原来就没有return语句,返回的当然是None。
zwo0o 2007-08-01
  • 打赏
  • 举报
回复
楼上给的答案还是有些问题,如果x+stepx大于等于18的,返回值为None.

建议楼主能否把需求也说下,大家共同学习,我也是新手!请多多指教!
iambic 2007-08-01
  • 打赏
  • 举报
回复
def testmethod(x,stepx):
if(stepx > 0):
for i in range(x+stepx,18,stepx):
if(i < 1):
break
print "i:"+str(i)
elif(stepx < 0):
for i in range(18, x+stepx,stepx):
if(i < 1):
break
print "i:"+str(i)


37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧