我不知道我做错了什么,但我的python代码中的函数.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')
一些帮助?
答案 0 :(得分:4)
您必须将lower()
的结果分配给单词,因为字符串为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
答案 1 :(得分:2)
执行:
word = word.lower()
因为lower()
没有修改原始字符串
答案 2 :(得分:1)
这是因为在将其转换为小写后,您没有为单词赋值。所以它仍然具有旧的价值,即&#34; Helix&#34;
word = word.lower()