用python17.编写程序,模拟打字练习程序的成绩评定。假设origin为原始内容,userInput为用户练习时输入的内容,要求用户输入的内容不能大于原始内容的长度。如果对应位置的字符一致则认为正确,否则判定输入错误。最后成绩为:正确的字符数量/原始字符串长度,按百分制输出,要求保留2位小数。说明,origin在程序中指定,userInpu由用户输入。(提示:可能用到的函数zip(),sum(),round(),isinstance(),len())
时间: 2024-02-12 12:09:12 浏览: 106
好的,下面是代码实现:
```python
origin = "This is a typing test."
userInput = input("请输入你的练习内容:")
if len(userInput) > len(origin):
print("输入内容长度超过原始内容长度,请重新输入。")
else:
correctCount = sum([x == y for x, y in zip(origin, userInput)])
score = round(correctCount / len(origin) * 100, 2)
print("你的成绩是:", score, "分。")
```
运行代码时,用户需要输入自己的练习内容,程序会计算出正确的字符数量,然后根据原始字符串长度计算出成绩,并输出结果。
解释一下代码:
首先,我们需要指定原始内容 `origin`,然后等待用户输入练习内容 `userInput`。
如果用户输入的内容长度超过了原始内容的长度,就提示错误。
否则,我们使用`zip()`函数将原始内容和用户输入的内容一一对应,然后使用列表推导式计算出两个字符串对应位置字符相同的数量,即正确的字符数量 `correctCount`。
接着,我们使用`len()`函数计算原始字符串的长度,然后根据正确的字符数量和原始字符串长度计算出成绩,并使用`round()`函数保留2位小数。
最后,我们输出成绩。
希望能够帮到你!
相关问题
2. 编写函数,计算字符串匹配的准确率。以打字练习程序为例,假设origin为原始内容,userInput为用户输入的内容,下面的代码用来测试用户输入的准确率
以下是一个计算字符串匹配准确率的函数,可以用来计算用户在打字练习程序中的准确率:
```python
def calc_accuracy(origin, userInput):
"""
计算字符串匹配的准确率
:param origin: 原始字符串
:param userInput: 用户输入的字符串
:return: 准确率(百分比)
"""
total_len = len(origin)
correct_count = 0
for i in range(total_len):
if i >= len(userInput):
break
if origin[i] == userInput[i]:
correct_count += 1
accuracy = correct_count / total_len * 100
return accuracy
```
使用示例:
```python
origin = "The quick brown fox jumps over the lazy dog."
userInput = "The qucik brown fox jumps over the lazy dog."
accuracy = calc_accuracy(origin, userInput)
print("准确率:{:.2f}%".format(accuracy))
```
输出:
```
准确率:96.43%
```
注意,这里的准确率仅考虑了字符的匹配情况,而没有考虑用户输入的单词是否正确,因此并不完全准确。如果需要更精确的准确率,可以考虑使用自然语言处理技术来进行单词级别的匹配。
用python6. 编写程序,输入三门课a、b、c的成绩,计算总分和平均分并输出。
当然可以,下面是一个简单的Python程序,它会提示用户输入三门课程的成绩,并计算总分和平均分:
```python
# 定义一个函数来获取成绩和计算总分和平均分
def calculate_scores():
a = float(input("请输入第一门课的成绩(a): "))
b = float(input("请输入第二门课的成绩(b): "))
c = float(input("请输入第三门课的成绩(c): "))
# 计算总分
total_score = a + b + c
# 计算平均分
average_score = total_score / 3
print(f"总分: {total_score}")
print(f"平均分: {average_score}")
# 调用函数开始计算
calculate_scores()
```
在这个程序中,我们首先通过`input()`函数从用户那里获取三门课程的成绩,然后将它们转换为浮点数以便进行加法运算。接着计算总分,最后将总分除以3得到平均分,并使用`print()`函数输出结果。
阅读全文