尝试创建一个简单的函数,它会删除一个短语,一个字母,然后输出原始短语并删除该字母。我可以做简单的版本,但当我尝试覆盖小写和大写时似乎让我的电线交叉。 (如果我这样做的话,它可以正常工作,如果我不在aChar中)
即。如果我输入交易委员会'我提取的信是' O',我希望删除大写和小写。我是初学者,所以关于我的代码的任何一般提示也会非常感激。
这是我的剧本:
def removal(statement,aChar):
newstring = ''
lowercase = aChar.lower()
uppercase = aChar.upper()
for i in statement:
if i not in aChar or lowercase or uppercase:
newstring = newstring+i
print(newstring)
removal('Board of Trade', 'O')
答案 0 :(得分:3)
def removal(statement,aChar):
newstring = ''
# look at each character in your statement
for i in statement:
# convert everything to lowercase and make sure they don't match
if i.lower() != aChar.lower():
newstring = newstring + i
return newstring
答案 1 :(得分:1)
.replace()
会让您的功能更具可读性。
这也是一个错误:i not in aChar or lowercase or uppercase
与你所写的相同的是(i not in aChar) or True or True
..这总是正确的。
def removal(statement,aChar):
lowercase = aChar.lower()
uppercase = aChar.upper()
newstring = statement.replace(lowercase, '').replace(uppercase, '')
print(newstring)
removal('Board of OTrade', 'O')
答案 2 :(得分:0)
更改条件以测试迭代中是否存在元素:
if i not in (aChar, lowercase, uppercase): # you really don't need aChar
答案 3 :(得分:0)
您可以做的是将大写字母O转换为小写字母O.与此类似:
def removal(statement,aChar):
newstring = ''
for i.lower() in statement:
if i != aChar.lower()
newstring += i
print(newstring)
答案 4 :(得分:0)
这是一个简单的函数,用空字符替换给定的字符。它取代了该角色的大小写。如果你只是想盲目地替换这个角色,请使用第二个答案:
import string
def myfunc(mystr, mychar):
return (mystr.replace(mychar.lower(), "")).replace(mychar.upper(), "")
myfunc("This is test sentence", "t")
第二个答案(使用盲目给出的字符):
def myfunc(mystr, mychar):
return mystr.replace(mychar, "")
答案 5 :(得分:0)
可以使用str.translate()
一行完成此操作:
def delchar_ci(s, ch):
return s.translate(None, ch.lower() + ch.upper())
s = 'Board Of Trade'
print delchar_ci(s, 'o') # 'Bard f Trade'
print delchar_ci(s, 'o') == delchar_ci(s, 'O') # True