代码没有像我期望的那样交换大小写
Code isn't swapping cases as I expect it to
我写了一些代码来交换字符串的大小写,但看起来它做的很不一致。我希望你们中的一些人能澄清什么是错的。作为记录,我知道 swapcase()
方法,但我最初的尝试是测试没有它我将如何解决问题。事不宜迟:
p = "Www.HackerRank.com → wWW.hACKERrANK.COM"
p1 = p.split(" ")
n = []
for i in p1:
item = list(p1[p1.index(i)])
for i in item:
if i.isalpha()==True:
if i.isupper()==True:
item[item.index(i)] = i.lower()
elif i.islower()==True:
item[item.index(i)] = i.upper()
else: pass
n.append(item)
for i in n:
n[n.index(i)] = "".join(n[n.index(i)])
n = " ".join(n)
这就是代码。初始字符串 p
是 "Www.HackerRank.com → wWW.hACKERrANK.COM"
。然而,最终结果 n 是 "WWw.hACKErRANK.COM → wwW.HackeRrank.com"
.
所以我们有:
"Www.HackerRank.com → wWW.hACKERrANK.COM"
= p
"WWw.hACKErRANK.COM → wwW.HackeRrank.com"
= n
如您所见,一些字母已正确转换,而另一些则没有。是否可以修复代码以便实现我想要的?
我的建议是直接遍历字符串的字母,而不是先将其拆分为单词:
positive = "Www.HackerRank.com → wWW.hACKERrANK.COM"
negative = []
for letter in positive:
if letter.isalpha():
if letter.isupper():
negative.append(letter.lower())
else:
negative.append(letter.upper())
else:
negative.append(letter)
negative = "".join(negative)
请尽量使用有意义的名称(这会让您在一两个月后重新访问自己的代码时更轻松)。
我写了一些代码来交换字符串的大小写,但看起来它做的很不一致。我希望你们中的一些人能澄清什么是错的。作为记录,我知道 swapcase()
方法,但我最初的尝试是测试没有它我将如何解决问题。事不宜迟:
p = "Www.HackerRank.com → wWW.hACKERrANK.COM"
p1 = p.split(" ")
n = []
for i in p1:
item = list(p1[p1.index(i)])
for i in item:
if i.isalpha()==True:
if i.isupper()==True:
item[item.index(i)] = i.lower()
elif i.islower()==True:
item[item.index(i)] = i.upper()
else: pass
n.append(item)
for i in n:
n[n.index(i)] = "".join(n[n.index(i)])
n = " ".join(n)
这就是代码。初始字符串 p
是 "Www.HackerRank.com → wWW.hACKERrANK.COM"
。然而,最终结果 n 是 "WWw.hACKErRANK.COM → wwW.HackeRrank.com"
.
所以我们有:
"Www.HackerRank.com → wWW.hACKERrANK.COM"
= p
"WWw.hACKErRANK.COM → wwW.HackeRrank.com"
= n
如您所见,一些字母已正确转换,而另一些则没有。是否可以修复代码以便实现我想要的?
我的建议是直接遍历字符串的字母,而不是先将其拆分为单词:
positive = "Www.HackerRank.com → wWW.hACKERrANK.COM"
negative = []
for letter in positive:
if letter.isalpha():
if letter.isupper():
negative.append(letter.lower())
else:
negative.append(letter.upper())
else:
negative.append(letter)
negative = "".join(negative)
请尽量使用有意义的名称(这会让您在一两个月后重新访问自己的代码时更轻松)。