在Python中,你可以使用`fractions`模块来进行分数计算。下面是一个简单的例子,展示了如何声明分数、进行分数的加减乘除以及比较分数:
```python
from fractions import Fraction
声明分数
f1 = Fraction(1, 2) 使用分数字符串初始化
f2 = Fraction(0.5) 使用小数初始化
f3 = Fraction(1, 2) 使用两个整数初始化
分数加减
f4 = f1 + f2 f1 + f2
f5 = f1 - f2 f1 - f2
分数乘除
f6 = f1 * f2 f1 * f2
f7 = f1 / f2 f1 / f2
分数比较
print(f1 == f2) 比较f1和f2是否相等
print(f1 > f2) 比较f1是否大于f2
print(f1 < f2) 比较f1是否小于f2
输出结果将会是:
```
True
True
True
以上代码展示了如何使用`fractions`模块中的`Fraction`类来表示分数,并进行基本的分数运算。`Fraction`类的实例可以直接使用`+`、`-`、`*`、`/`运算符进行加减乘除操作。
如果你需要计算平均分、最高分、最低分、及格人数和及格率等统计数据,可以使用以下函数:
```python
from fractions import Fraction
from sys import exit
def statistical(scorelist):
if scorelist == []:
return []
average_num = sum(scorelist) / len(scorelist)
max_num = max(scorelist)
min_num = min(scorelist)
pass_num = 0
for score in scorelist:
if score >= 60:
pass_num += 1
pass_rate = pass_num / len(scorelist)
return [average_num, max_num, min_num, pass_num, pass_rate]
scorelist = [] 初始化分数列表
wrong = 0 初始化错误次数
while True:
获取用户输入的分数列表
user_input = input("请输入分数列表,用逗号分隔(输入1继续,2结束):")
if user_input.lower() == '1':
continue
elif user_input.lower() == '2':
break
else:
print("输入错误,请重新输入。")
wrong += 1
if wrong >= 3:
print("错误次数过多,程序退出。")
exit()
try:
将输入的字符串转换为分数列表
scores = [Fraction(score.strip()) for score in user_input.split(',')]
stats = statistical(scores)
print("平均分:", stats)
print("最高分:", stats)
print("最低分:", stats)
print("及格人数:", stats)
print("及格率:", stats)
except ValueError:
print("输入包含非数字字符,请重新输入。")
这个函数会提示用户输入分数列表,然后计算并输出平均分、最高分、最低分、及格人数和及格率等统计数据。如果用户连续三次输入错误,程序将退出。