如果我输入“Ab3”作为参数,我将如何将“Ab4”值返回给我?
此函数的目标是获取字符串的第3个字符并向其中添加一个字符,除非它是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)
答案 0 :(得分:5)
你只是错过了函数中的return语句,你需要它,因为你使用的是不可变的字符串输入。您可以使用以下代码:
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评论编辑
答案 1 :(得分:1)
Python字符串是不可变的(http://docs.python.org/library/stdtypes.html),因此您无法实际更新'区域'对象(尽管您可以将区域重新分配给新值,如您所示)。如果希望调用者获取新值,则应返回新的区域变量(返回区域)。
答案 2 :(得分:0)
你所拥有的将会奏效,你只需要返回价值。将最后一行更改为return ''.join(area_list)
。