7. 编写打字练习程序 ,编写函数,两个参数,一个是原始符号串 ,一个是用户输入的符号串,返回值为用户输入的准确率。原始符号串需要随机生成大小写字母,假设随机产生长度20的字符串(字符可重复出现)。(20分)提示: 随机产生20个字符的字符串,可以引用string模块import stringimport randomstr1=string.ascii_letters #返回英文大小写字母,可以从中随机选择产生20个长度的字符串。
时间: 2024-02-17 22:59:54 浏览: 70
好的,我可以帮您编写这个程序。以下是代码:
```python
import string
import random
def typing_accuracy(original_str, input_str):
correct_count = 0
for i in range(len(input_str)):
if i >= len(original_str):
break
if input_str[i] == original_str[i]:
correct_count += 1
return correct_count / len(original_str)
original_str = ''.join(random.choices(string.ascii_letters, k=20))
input_str = input("请输入您的练习字符串:")
accuracy = typing_accuracy(original_str, input_str)
print("准确率为:{:.2%}".format(accuracy))
```
这个程序会随机生成一个由大小写字母组成的字符串,长度为20。然后会要求用户输入一个字符串作为练习输入,程序会计算用户输入的准确率并输出。
相关问题
编写打字练习程序 ,编写函数,两个参数,一个是原始符号串 ,一个是用户输入的符号串,返回值为用户输入的准确率。原始符号串需要随机生成大小写字母,假设随机产生长度20的字符串(字符可重复出现)。
好的,这个问题需要编写一个Python程序来实现。我先给你代码,你可以在本地运行它:
```python
import random
def typing_accuracy(original_string, user_input):
correct_count = 0
for i in range(len(user_input)):
if i < len(original_string) and user_input[i] == original_string[i]:
correct_count += 1
return (correct_count / len(original_string)) * 100
def main():
original_string = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', k=20))
print('请输入以下字符串:', original_string)
user_input = input()
accuracy = typing_accuracy(original_string, user_input)
print('准确率为:', accuracy, '%')
if __name__ == '__main__':
main()
```
在这个程序中,`typing_accuracy` 函数接收两个参数:原始字符串和用户输入字符串。它遍历用户输入字符串的每个字符,如果在原始字符串中对应位置的字符也相同,则正确计数加一。最后,计算准确率并返回。
在 `main` 函数中,我们生成一个长度为20的随机字符串,提示用户输入该字符串,并调用 `typing_accuracy` 函数计算准确率并输出结果。
希望这个程序对你有帮助!
python编写打字练习程序 ,编写函数,两个参数,一个是原始符号串 ,一个是用户输入的符号串,返回值为用户输入的准确率。原始符号串需要随机生成大小写字母,假设随机产生长度20的字符串(字符可重复出现)。(20分) 提示: 随机产生20个字符的字符串,可以引用string模块 import string import random str1=string.ascii_letters #返回英文大小写字母,可以从中随机选择产生20个长度的字符串。 运行效果如下: 打字练习:abcdefghijklmnopqrst 您的输入:abcdefghijklmnopbbbb 正确率:0.80
好的,这是一个简单的打字练习程序,以下是代码实现:
```python
import string
import random
def check_accuracy(original_str, user_str):
count = 0
for i in range(len(user_str)):
if i >= len(original_str):
break
if user_str[i] == original_str[i]:
count += 1
return count / len(original_str)
original_str = ''.join(random.choices(string.ascii_letters, k=20))
print("打字练习: " + original_str)
user_str = input("您的输入:")
accuracy = check_accuracy(original_str, user_str)
print("正确率: {:.2f}".format(accuracy))
```
运行效果如下:
```
打字练习: JzHrZvPoKpZMifdVmLbu
您的输入:JzHrZvPoKpZMifdVmLbu
正确率: 1.00
```
如果用户输入的字符串长度小于原始字符串长度,我们将只比较两个字符串中相同长度的部分,如果用户输入的字符串长度大于原始字符串长度,则只比较原始字符串长度的部分。最终返回的正确率是用户输入字符串和原始字符串相同位置上字符相同的数量与原始字符串长度的比值。
阅读全文