(python)这个i怎么才能设置为normalize 内部函数可以互相访问的变量 而不影响外部主程序
defnormalize(s):i=0defg(s):forstins:globaliifi==0:st=st.upper()else:st=st.lower()i=i+...
def normalize(s):
i = 0
def g(s):
for st in s:
global i
if i == 0:
st = st.upper()
else:
st = st.lower()
i = i + 1
return st
def f(s):
result = []
str = ''
for item in s:
global i
x = map(g,item)
i = 0
result.append(str.join(tuple(x)))
return result
return f(s) 展开
i = 0
def g(s):
for st in s:
global i
if i == 0:
st = st.upper()
else:
st = st.lower()
i = i + 1
return st
def f(s):
result = []
str = ''
for item in s:
global i
x = map(g,item)
i = 0
result.append(str.join(tuple(x)))
return result
return f(s) 展开
1个回答
2017-01-15 · 知道合伙人软件行家
老夭来了
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1806
获赞数:8100
2008年从事软件开发,拥有多年的python,php,linux工作经验,发布过多个python,php的开源项目。
向TA提问 私信TA
关注
展开全部
两种方法
如果是python3可以食用nonlocal关键字,在嵌套函数中声明i变量
如果是python2,可以使用字典或列表封装,然后改变其中的i,而不是重新赋值
def foo():
i = 0
def printi():
nonlocal i
i = 2
print 1
printi()
def foo():
i = [0]
def printi():
i[0] = 2
print 1
printi()
print i
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询