Python 不符合的条件
我正在写一个小脚本,它遍历一个字符串,找到一个给定的字符并用另一个字符替换它Python 不符合的条件,python,function,loops,conditional-statements,puzzle,Python,Function,Loops,Conditional Statements,Puzzle,我正在写一个小脚本,它遍历一个字符串,找到一个给定的字符并用另一个字符替换它 def scrambler(string): sen = '' for c in string: if c.lower == 'k': sen += 'm' elif c.lower == 'o': sen += 'q' elif c.lower == 'e': sen += 'g'
def scrambler(string):
sen = ''
for c in string:
if c.lower == 'k':
sen += 'm'
elif c.lower == 'o':
sen += 'q'
elif c.lower == 'e':
sen += 'g'
else:
sen += c
return sen
print scrambler('koe')
如您所见,如果字母为“k”,则应将“m”添加到sen。由于某些原因,该条件未得到满足,但我不确定原因。您正在将函数对象
c.lower
与字符常量进行比较:您需要调用函数,而不是:
def scrambler(string):
sen = ''
for c in string:
if c.lower() == 'k':
sen += 'm'
elif c.lower() == 'o':
sen += 'q'
elif c.lower() == 'e':
sen += 'g'
else:
sen += c
return sen
print scrambler('koe')
谢谢为什么python没有给我任何错误,即使我没有包括()?因为
c.lower
是有效的语法,它是对函数对象的引用(非常非常松散,就像c函数指针):可以传递函数,将它们存储在变量中并调用。考虑这个