案例一: 编写一个程序,判断一个年份是否为闰年。
def isRun(year):
if(year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return True
else:
return False
# 测试用例
year = int(input("请输入一个年份:"))
if isRun(year):
print(year,"年是闰年")
else:
print(year,"不是闰年")
案例二: 将一个整数进行因式分解,打印出所有质因数。比如:90=233*5
def fun(num):
res = []
i = 2
while i ** 2 <= num:
if num % i != 0:
i += 1
else:
num //= i
res.append(i)
if num != 1:
res.append(num)
return res
# 测试用例
num = int(input("请输入一个整数:"))
res = fun(num)
print(res)
案例三: 给定一个包含学生成绩信息的 CSV 文件“学生成绩.csv”,文件中有学生姓名、数学成绩、语文成绩、英语
请使用 Python 的numpy和matplotlib库完成以下任务:
- 读取 CSV 文件中的数据。(提示:使用loadtxt函数)
- 计算每位学生的平均成绩。(提示:使用mean函数 axis)
- 统计每门课程的最大值、最小值、中位数、方差和峰值范围。(提示:使用max、min、median、var、ptp函数)
- 使用柱状图可视化展示每位学生的平均成绩。(提示:使用matplotlib.pyplot.bar函数)
分解:
- 读取 CSV 文件中的数据。(提示:使用loadtxt函数)
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt(
"学生成绩.csv",
skiprows=1,
usecols=(1,2,3),
delimiter=",",
encoding="gbk",
dtype=np.int64
)
print(data)
- 计算每位学生的平均成绩。(提示:使用mean函数 axis)
print("每位学生的平均成绩:\n",np.mean(data, axis=1))
- 统计每门课程的最大值、最小值、中位数、方差和峰值范围。(提示:使用max、min、median、var、ptp函数)
print("每门课程的最大值:",np.max(data, axis=0))
print("每门课程的最小值:",np.min(data, axis=0))
print("每门课程的中位数:",np.median(data, axis=0))
print("每门课程的方差:",np.var(data, axis=0))
print("每门课程的峰值范围:",np.ptp(data, axis=0))
- 使用柱状图可视化展示每位学生的平均成绩。(提示:使用matplotlib.pyplot.bar函数)
avg = np.mean(data, axis=1)
x = np.arange(1, avg.size + 1)
plt.bar(x, avg)
plt.show()
完整:
# 1、读取 CSV 文件中的数据。(提示:使用loadtxt函数)
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt(
"学生成绩.csv",
skiprows=1,
usecols=(1,2,3),
delimiter=",",
encoding="gbk",
dtype=np.int64
)
print(data)
# 2、计算每位学生的平均成绩。(提示:使用mean函数 axis)
print("每位学生的平均成绩:\n",np.mean(data, axis=1))
# 3、统计每门课程的最大值、最小值、中位数、方差和峰值范围。(提示:使用max、min、median、var、ptp函数)
print("每门课程的最大值:",np.max(data, axis=0))
print("每门课程的最小值:",np.min(data, axis=0))
print("每门课程的中位数:",np.median(data, axis=0))
print("每门课程的方差:",np.var(data, axis=0))
print("每门课程的峰值范围:",np.ptp(data, axis=0))
# 4、使用柱状图可视化展示每位学生的平均成绩。(提示:使用matplotlib.pyplot.bar函数)
avg = np.mean(data, axis=1)
x = np.arange(1, avg.size + 1)
plt.bar(x, avg)
plt.show()
案例四: 有一个销售数据的 CSV 文件“销售产品数据.csv”,包含字段 “日期”、“产品名称”、“销售数量”、“销售单价”。
请使用 Python 的pandas和matplotlib库完成以下任务:
- 读取 CSV 文件中的数据。
- 计算每种产品的总销售额(销售数量乘以销售单价)。
- 找出销售额最高的产品。
- 按月份统计总销售额,并绘制折线图展示每月总销售额的变化趋势。
分解:
- 读取 CSV 文件中的数据。
df = pd.read_csv(
"销售产品数据.csv",
header=0,
encoding="gbk"
)
print(df)
- 计算每种产品的总销售额(销售数量乘以销售单价)。
df['总销售额'] = df['销售数量'] * df['销售单价']
print(df)
total = df.groupby("产品名称")['总销售额'].sum()
# total = total.reset_index()
print(total)
3、找出销售额最高的产品。
print("销售额最高的产品:", total.idxmax())
4、按月份统计总销售额,并绘制折线图展示每月总销售额的变化趋势。
df['日期'] = pd.to_datetime(df['日期'])
print(df['日期'].dtype)
df['月份'] = df['日期'].dt.month
print(df)
完整:
# 请使用 Python 的pandas和matplotlib库完成以下任务:
import pandas as pd
# 1、读取 CSV 文件中的数据。
df = pd.read_csv(
"销售产品数据.csv",
header=0,
encoding="gbk"
)
print(df)
# 2、计算每种产品的总销售额(销售数量乘以销售单价)。
df['总销售额'] = df['销售数量'] * df['销售单价']
print(df)
total = df.groupby("产品名称")['总销售额'].sum()
# total = total.reset_index()
print(total)
# 3、找出销售额最高的产品。
print("销售额最高的产品:", total.idxmax())
# 4、按月份统计总销售额,并绘制折线图展示每月总销售额的变化趋势。
df['日期'] = pd.to_datetime(df['日期'])
print(df['日期'].dtype)
df['月份'] = df['日期'].dt.month
print(df)