问题描述:
以打字练习程序为例,假设origin为原始内容,userInput为用户输入的内容,测试用户输入的准确率。
一、源代码展示
def Rate (origin , userInput):
right = sum (( 1 for o,u in zip( origin , userInput ) if o==u ))
return round(right / len (origin ),2)
a= "Life is not a matter of a day."
print("请输入:a")
b=input()
print(int(Rate(a,b)*100 ),'%')
二、输出结果
请输入:a
Life is not a matter of a day.
100 %
请输入:a
Life is not a matter of
80 %
三、问题分析
1、思路分析:
需要巧用python里面的自己带的函数,这里就使用元组(turple),将输入的字符与原始的字符一一对应,如果相同返回1,使用sum()函数将所有的1加起来。
2、源码解析:
(1).zip()函数
对象3 = zip(对象1,对象2),生成的对象3可以用list列表示出来。
cd=list(zip("abc","sdd"))
cd
输出结果:
[('a', 's'), ('b', 'd'), ('c', 'd')]
(2).round()函数
round函数是一种四舍五入的函数,位置1是处理的数字对象,位置2是保留几位有效数字,下面我写的是2,表示保留小数点后两位有效数字,默认是保留一位有效数字。如下例子。
round(0.98231,2)#round()为四舍五入的函数,2表示保留两位有效数字