Angela Yu的Love Calculator代码结果异常:为何输出1010而非88?
解答:Love Calculator代码输出1010而非88的原因
咱们一步步拆解你的输入和代码逻辑:
你输入的两个名字都是True Love,合并后的字符串是True LoveTrue Love,转小写后是true lovetrue love。
计算first_digit的过程
first_digit是t+r+u+e的数量总和:
t:在两个true里各出现1次,总共2次r:同理,2次u:同理,2次e:每个true里有1个e,每个love里也有1个e,两个名字加起来就是4个e
所以first_digit = 2+2+2+4 = 10
计算second_digit的过程
second_digit是l+o+v+e的数量总和:
l:两个love里各1个,总共2次o:同理,2次v:同理,2次e:还是4个(代码里重新统计了合并字符串中所有的e)
所以second_digit = 2+2+2+4 = 10
最终score的生成
代码里把first_digit和second_digit转成字符串拼接,再转成整数:str(10) + str(10)得到"1010",转成int就是1010
你预期的88,应该是误以为每个名字单独计算后相加,但代码逻辑是统计两个名字合并后的所有对应字母总数,而且e在前后两个评分部分都被重复统计了,才会出现这个结果。
内容的提问来源于stack exchange,提问作者Utro
相关产品推荐
相关产品推荐

