我有一个Python问题,我需要将输入作为函数中的字符串,并需要返回一个字符串,其中每个替换字母是一个小案例和大写案例的序列。例如:传递给函数的字符串:AmsTerdam
然后返回的字符串应为AmStErDaM
。它可以从任何情况开始,即小案或大小写。
我还处于Python的学习阶段并提出了以下内容,但不知何故,当我尝试执行时,代码挂起。有人可以帮我解决这个问题吗?
def myfunc(NAME='AmsTerdam'):
leng=len(NAME)
ind=1
newlist=[]
while ind <= leng:
if ind%2==0:
newlist.append(NAME[ind-1].upper())
else:
newlist.append(NAME[ind-1].lower())
str(mylist) # Can we typecast a list to a string?
return newlist
OUT=myfunc('Ankitkumarsharma')
print('Output: {}'.format(OUT))
如果无法完成类型转换,以下是否正确?
def myfunc(NAME='AmsTerdam'):
leng=len(NAME)
ind=1
newstr=''
while ind <= leng:
if ind%2==0:
newstr=newstr+NAME[ind-1].upper()
else:
newstr=newstr+NAME[ind-1].lower()
return newstr
OUT=myfunc('AmsTerdam')
print('Output: {}'.format(OUT))
答案 0 :(得分:1)
你本质上是写了一个真正的循环,没有休息条件。
按照你之前的逻辑,我们可以重写你的循环并假设ind=1
总是如此,我们得到:
def myfunc(NAME='AmsTerdam'):
leng=len(NAME)
newstr=''
while 1 <= leng:
if ind%2==0:
newstr=newstr+NAME[ind-1].upper()
else:
newstr=newstr+NAME[ind-1].lower()
return newstr
这意味着如果len(name) > 1
,循环将永远运行。解决这个问题,我们得到以下函数,它将终止。
def myfunc(NAME='AmsTerdam'):
leng=len(NAME)
newstr=''
ind=1
while ind <= leng:
if ind%2==0:
newstr=newstr+NAME[ind-1].upper()
else:
newstr=newstr+NAME[ind-1].lower()
ind+=1
return newstr
答案 1 :(得分:0)
resolutionAnd