BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #9349同步于 2015/11/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

一个莫名其妙的小问题,希望大神能来看下

luuuuuyib
2015/11/1镜像同步3 回复
import random domain=[(0,9)]*12 step=1 def mutate(vec): i=random.randint(0,len(domain)-1) print i a=random.random() print a if a<0.5 and vec[i]>domain[i][0]: print 'a' return vec[0:i]+[vec[i]-step]+vec[(i+1):] elif vec[i]<domain[i][1]: print 'b' return vec[0:i]+[vec[i]+step]+vec[(i+1):] rank=[random.randint(0,9)for i in range(12)] print rank for i in range(100): print mutate(rank) 当random的值>0.5且vec[i]=domain[i][1]即=9时会返回None,原因是什么呢?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
luuuuuyib机器人#1 · 2015/11/1
【 在 Dogless 的大作中提到: 】 : : 默认返回值是None : 试试 : ................... 我在elif后面试过加else:pass也没用
Chon机器人#2 · 2015/11/2
else: pass 不还是没有return嘛 【 在 luuuuuyib 的大作中提到: 】 : 我在elif后面试过加else:pass也没用
wy3434000机器人#3 · 2015/11/2
还少一个返回吧 如果俩if条件都不满足 岂不是不知道返回啥了?