Python 在字符串中交换案例
我正在尝试解决,它要求将所有小写字母转换为大写字母,反之亦然 我尝试使用以下代码:Python 在字符串中交换案例,python,string,python-3.x,Python,String,Python 3.x,我正在尝试解决,它要求将所有小写字母转换为大写字母,反之亦然 我尝试使用以下代码: def swap_case(s): length = len(s) i=0 while length: if s1[i].isupper(): s[i].lower() elif s[i].islower(): s[i].upper() length-=1 i+=1 re
def swap_case(s):
length = len(s)
i=0
while length:
if s1[i].isupper():
s[i].lower()
elif s[i].islower():
s[i].upper()
length-=1
i+=1
return s
if __name__ == '__main__':
s = input()
result = swap_case(s)
print(result)
但是,返回的字符串与传递到函数中的字符串相同。错误在哪里?正如@Julien在注释
upper
和lower
中所述,方法返回一个副本,并且不更改对象本身。看
EDIT@aryamcarthy提醒我python中已经存在用于此类任务的功能:
swapcase()
方法。查看更多。注意,这也会返回字符串的副本。如注释和其他答案中所述,字符串是不可变的
请尝试以下操作:
s = input("Enter input: ")
def convert(ss):
# Convert it into list and then change it
newSS = list(ss)
for i,c in enumerate(newSS):
newSS[i] = c.upper() if c.islower() else c.lower()
# Convert list back to string
return ''.join(newSS)
print(s)
print(convert(s))
# Or use string build in method
print (s.swapcase())
内置程序已经做到了这一点
def swap_case(s):
return s.swapcase()
试试这个
def交换案例:
l=[]
str1=''
对于s中的i:
如果i.isupper():
l、 追加(i.lower())
埃利夫岛()
l、 追加(i.upper())
其他:
l、 附加(i)
返回(str1.join(l))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
s=输入()
结果=交换案例
打印(结果)
Python-3内置swapcase函数
def swap_case(s):
return s.swapcase()
if __name__ == '__main__':
s = input()
result = swap_case(s)
print(result)
输入:
"Pythonist 3"
输出:
"pYTHONIST 3"
def交换案例:
a=“”
对于s中的i:
如果i==i.lower():
a=a+(i.上()
其他:
a=a+(i.下部()
报税表(a)
**在这个问题中,我使用了一个名为“string”的模块,在这个模块中有大写字母的属性,而小写字母**字符串是不可变的
s[i].upper()
返回s[i]
的大写“copy”,它不修改s[i]
本身。您需要完全创建一个新的字符串对象……就像@Julien提到的那样,您实际上并没有更改原始字符串。考虑使用另一个变量来保存每一个新的更新,并返回新的变量,对于它的值,Python已经有一个内置函数,它是这样的:<代码> ST.SWAPCASE()/<代码>。这能回答你的问题吗?我已经赞扬了你的评论,但不幸的是这些都没有任何名声。“朱利安考虑添加一个详细的答案。评论并没有增加rep.@Julien如果你的话是为了回答这个问题,也许你应该发布一个答案而不是评论这个问题。工作很快。谢谢,欢迎光临!您可以选择,您应该(重新)阅读帮助主题,了解如何做出贡献。您应该始终解释您的代码和答案,以便其他人可以从中获益。“Just code”答案的质量很差,将来可能会被删除,这会使您的工作完全无用。或者您也可以使用return s.swapcase()请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票。欢迎来到Stack Overflow。对于堆栈溢出,不鼓励使用仅代码的答案,因为它们没有解释堆栈溢出是如何解决问题的。请编辑您的答案,以解释代码的作用以及它如何回答问题,这样对于其他有类似问题的用户也很有用,而且OPIt最好在堆栈溢出时为您发布的代码添加说明。
def swap_case(s):
return s.swapcase()
#or you can use list comprehension
def swap_case(s):
new=[ch.lower() if ch.isupper() else ch.upper() for ch in s]
new=''.join(new)
return new
if __name__ == '__main__':
s = input()
result = swap_case(s)
print(result)
def swap_case(s):
l = list(s)
for i in range(len(s)):
if l[i].islower():
l[i] = l[i].upper()
else:
l[i] = l[i].lower()
k = "".join(map(str,l))
return k
def swap_case(s):
new = ""
for i in range(len(s)):
if str.isupper(s[i]):
new = new + str.lower(s[i])
elif str.islower(s[i]):
new = new + str.upper(s[i])
else:
new = new + str(s[i])
return (new)
if __name__ == '__main__':
s = input()
result = swap_case(s)
print(result)
def swap_case(s):
list_s= list(s)
for index,char in enumerate(list_s):
if char == char.lower():
list_s[index] =char.upper()
else:
list_s[index]= char.lower()
s = ''.join(list_s)
return s
string = 'HackerRank.com presents "Pythonist 2".'
print(swap_case(string))
import string
upalf = string.ascii_uppercase
lowalf = string.ascii_lowercase
def swap_case(s):
new = ""
for i in s:
if i in upalf:
new += i.lower()
elif i in lowalf:
new += i.upper()
else:
new += i
return new
if __name__ == '__main__':
s = input()
result = swap_case(s)
print(result)