使用 str.replace 将小写字母更改为大写字母,反之亦然的问题
Problem with changing lowercase letters to uppercase and vice versa using str.replace
好的,这是我的代码,我不想使用内置的 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)
使用列表理解和三元表达式修改字母(参见Does Python have a ternary conditional operator?)
问题是您要替换字符串中出现的所有该字符。这里有一个可行的解决方案:
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"))
好的,这是我的代码,我不想使用内置的 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)
使用列表理解和三元表达式修改字母(参见Does Python have a ternary conditional operator?)
问题是您要替换字符串中出现的所有该字符。这里有一个可行的解决方案:
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"))