如何在Python中获取函数的新值?
如果我输入“Ab3”作为参数,我该怎么做才能得到“Ab4”这个值呢?
这个函数的目标是取字符串的第三个字符,然后给它加一,除非这个字符是4,这种情况下就不加一,直接退出。我不知道怎么从“Ab3”得到函数生成的“Ab4”,并把它重新赋值给“area”这个变量。
def east(area):
area_list = list(area)
if "1" == area_list[2]:
area_list[2] = "2"
elif "2" == area_list[2]:
area_list[2] = "3"
elif "3" == area_list[2]:
area_list[2] = "4"
elif "4" == area_list[2]:
cannot_go(why)
else:
exit(0)
area = "".join(area_list)
3 个回答
0
你现在的代码是可以工作的,只需要返回一个值。把最后一行改成 return ''.join(area_list)
就可以了。
1
Python中的字符串是不可变的,这意味着你不能直接修改一个字符串对象(比如这里提到的'area'对象)。虽然你可以把'area'重新赋值为一个新的字符串,但这并不是在改变原来的字符串。如果你想让调用这个字符串的地方得到新的值,你应该把新的'area'返回给它(也就是用return area)。
5
你在函数里漏掉了返回语句。因为你使用的是字符串输入,而字符串是不可改变的,所以你需要这个返回语句。你可以参考下面的代码:
def east(area):
if area[-1] in '123':
return area[:-1] + str(int(area[-1])+1)
elif "4" == area[-1]:
print 'no way'
return area
else:
return 'incorrect input'# or throw and exception depends on what you really need
根据Chris的评论进行了编辑