python.lower()不工作

2024-04-26 00:19:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道我做错了什么,但是python代码中的function.lower()函数不起作用!

这是一个愚蠢的代码,但它并没有降低这个词的大小写:

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, 
         "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, 
         "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1, 
         "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4, 
         "x": 8, "z": 10}

def scrabble_score(word):
    word.lower()
    print word
    total =0
    for i in word:
        total += score[i]
    return total

print scrabble_score('Helix')    

有什么帮助吗?


Tags: 函数代码inforreturndeffunctionlower
3条回答

这是因为在将单词转换为小写字母后,您不会将值赋给它。所以它仍然有一个古老的价值,那就是“螺旋”

word = word.lower()

必须将lower()的结果赋给word,因为字符串是immutable

In [152]:

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, 
         "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, 
         "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1, 
         "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4, 
         "x": 8, "z": 10}

def scrabble_score(word):
    word = word.lower() #<------ here assign back
    print(word)
    total =0
    for i in word:
        total += score[i]
    return total

print(scrabble_score('Helix'))

helix
15

见相关:Why are Python strings immutable? Best practices for using them

做:

word = word.lower()

因为lower()不修改原始字符串

相关问题 更多 >