好,所以这是我的代码,我不想使用内置的swapcase()方法。它不适用于给定的字符串。
def myFunc(a):
for chars in range(0,len(a)):
if a[chars].islower():
a = a.replace(a[chars], a[chars].upper())
elif a[chars].isupper():
a = a.replace(a[chars], a[chars].lower())
return a
print(myFunc("AaAAaaaAAaAa"))
[replace
更改所有字母,然后将值分配回a
,因此最后所有大写字母都结束了。
def myFunc(a):
# use a list to collect changed letters
new_text = []
for char in a:
if char.islower():
new_text.append(char.upper())
else:
new_text.append(char.lower())
# join the letters back into a string
return ''.join(new_text)
print(myFunc("AaAAaaaAAaAa")) # aAaaAAAaaAaA
或更短:
def my2ndFunc(text):
return ''.join( a.upper() if a.islower() else a.lower() for a in text)
问题是您正在替换字符串中该字符的所有重复出现。在这里,您有一个可行的解决方案:
def myFunc(a):
result = ''
for chars in range(0,len(a)):
print(a[chars])
if a[chars].islower():
result += a[chars].upper()
elif a[chars].isupper():
result += a[chars].lower()
return result
print(myFunc("AaAAaaaAAaAa"))