我想把字符串的字符从小写改为大写。
我的代码在下面,我的代码的输出是a;请告诉我哪里错了,并解释为什么?提前感谢
test = "AltERNating"
def to_alternating_case(string):
words = list(string)
for word in words:
if word.isupper() == True:
return word.lower()
else:
return word.upper()
print to_alternating_case(test)发布于 2016-03-27 12:22:39
如果要反转该字符串的情况,请尝试如下:
>>> 'AltERNating'.swapcase()
'aLTernATING'发布于 2016-03-27 12:25:28
这有两个答案:一个简单的答案和一个困难的答案。
easy
Python有一个内置的函数来完成这个任务,我不太记得它是什么,而是类似于
string.swapcase()The hard one
你定义了自己的功能。创建函数的方式是错误的,因为迭代字符串将逐个字母返回,您只返回第一个字母,而不是继续迭代。
def to_alternating_case(string):
temp = ""
for character in string:
if character.isupper() == True:
temp += character.lower()
else:
temp += word.upper()
return temp发布于 2016-03-27 12:15:36
这是因为函数只返回第一个字符。我的意思是return关键字破坏了您的for循环。
另外,请注意,没有必要通过运行words = list(string)将字符串转换为列表,因为可以对字符串进行迭代。就像您对列表所做的那样。
如果您正在寻找一个算法解决方案,而不是swapcase(),那么请这样修改您的方法:
test = "AltERNating"
def to_alternating_case(string):
res = ""
for word in string:
if word.isupper() == True:
res = res + word.lower()
else:
res = res + word.upper()
return res
print to_alternating_case(test)https://stackoverflow.com/questions/36247173
复制相似问题