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函数指针):可以传递函数,将它们存储在变量中并调用。考虑这个