right是一个全是1的列表的和,这里也就是指用户输对的次数。
解析一下right语句:
sum()函数返回的就是一个列表的和,而括号里又用括号包住了一个表达式——列表生成器(genorator)。而列表生成器里又用zip函数生成了一个包含两元素元组的zip对象。所以整个语句翻译下来就是:
先把origin和userinput用zip函数放在一起组成元组,在依次遍历元组里origin和userinput的每个元素是否相同,如果相同就返回数字1,放在一个新列表里。最后再把整个列表求和,表示了origin和userinput相同的元素有多少个(用户输对的次数)。
最后一条语句就是把这个sum的和(用户输对的次数)除以origin的长度,再用round()方法四舍五入,保留两位小数,通过return返回给调用该函数的主程序。
right就是遍历origin和userinput 如果相等的话,sum加1
return这句就是计算准确率
right有两个知识点:1.zip内置函数 2.推导式 。
zip将字符串origin和字符串usrInput索引相同的字符组合成元组对,并最终得到一个生成式。
for 部分为推导式,即遍历zip中的元组对并将原始字符与输入的字符解包为u,o,推导式中的if 用来判断u与o是否相等,相等的就将结果取出并置1,所以有多少个1就代表有多少个字符相等,sum求出1的和除以总字符数就是准确率