我正在学习python并参加练习:
的字符串。创建一个函数,该函数将返回与输入字符串类似的另一个字符串,但其大小写已反转。例如,输入“Mr. Ed”将导致“mR.DD”作为输出字符串。
我的代码是:
name = 'Mr.Ed'
name_list = []
for i in name:
if i.isupper():
name_list.append(i.lower())
elif i.islower():
name_list.append(i.upper())
else:
name_list.append(i)
print ''.join(name_list)
有没有更好的方法来解决它?我的解决方案似乎很奇怪。
答案 0 :(得分:98)
您可以使用name.swapcase()
执行此操作。查找string methods。
答案 1 :(得分:15)
你的解决方案非常好。
但是,你不需要三个分支,因为str.upper()
无论如何都会在上层不适用时返回str。
使用生成器表达式,可以缩短为:
>>> name = 'Mr.Ed'
>>> ''.join(c.lower() if c.isupper() else c.upper() for c in name)
'mR.eD'
答案 2 :(得分:7)
只需使用swapcase()方法:
name = "Mr.Ed"
name = name.swapcase()
输出:mR.eD
- >这只是一个两行代码。
说明:
方法swapcase()返回字符串的副本,其中所有基于案例的字符都已交换案例。
快乐的编码!
答案 3 :(得分:1)
name='Mr.Ed'
print(name.swapcase())
答案 4 :(得分:1)
在python中,存在一个内置函数swapcase(),该函数自动转换每个字母的大小写。即使输入了大小写字母的混合字母,它也将正确处理并按预期返回答案。
这是我的代码:
str1=input("enter str= ")
res=str1.swapcase()
print(res)
答案 5 :(得分:0)
https://github.com/suryashekhawat/pythonExamples/blob/master/string_toggle.py
def toggle(mystr):
arr = []
for char in mystr:
if char.upper() != char:
char=char.upper()
arr.append(char)
else:
char=char.lower()
arr.append(char)
return ''.join(map(str,arr))
user_input = raw_input()
output = toggle(user_input)
print output
答案 6 :(得分:0)
#the following program is for toggle case
name=input()
for i in name:
if i.isupper():
print( i.lower(),sep='',end='')
else:
print( i.upper(),sep='',end='')