题目 1:输入一个整数n,计算该整数各位数字之积与各位数字之和的差。
例如:n = 234, result = 15
num_sum = 0
num_prod = 1
num = input("输入一个整数:")
if len(num) == 0:
print("输入错误")
num_sum = sum([int(char) for char in num])
for char in num:
num_prod *= int(char)
print(f"{num}各位数字之积与各位数字之和的差为{num_prod-num_sum}")
题目 2:给定一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
例如: s = "Hello World", result = 5 s = "luffy is still joyboy", result = 6
def last_word_length(s):
if len(s) == 0:
return 0
s = s.strip()
words = s.split()
if words:
return len(words[-1])
else:
return 0
#
s1 = "Hello World"
s2 = "luffy is still joyboy"
print(f"{s1}的最后一个单词的长度为{last_word_length(s1)}")
print(f"{s2}的最后一个单词的长度为{last_word_length(s2)}")
题目 3:餐厅菜品销售数据分析
“餐厅菜品销售.csv” 包含字段:“日期”“菜品名称”“销售份数”“菜品单价 (元)”“菜系 (川菜 / 粤菜 / 鲁菜)”。请使用 pandas 和 matplotlib 完成以下任务:
- 读取 CSV 文件数据。
- 计算每道菜品的总销售额(销售份数 × 菜品单价)和总销售份数。
- 按 “菜系” 分组,统计每个菜系的总销售额(提示:使用 groupby )。
- 提取 “日期” 中的星期信息(如周一至周日),统计每周各天的总销售份数,绘制折线图展示一周内的销售趋势。
- 找出总销售额最高的 3 道菜品,用饼图展示它们的销售额占所有菜品总销售额的比例。
# 1. 读取 CSV 文件数据。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(
"餐厅菜品销售.csv",
encoding="utf-8"
)
print(df)
# 2. 计算每道菜品的总销售额(销售份数 × 菜品单价)和总销售份数。
df['总销售额'] = df['销售份数'] * df['菜品单价(元)']
print(df)
print("总销售份数为:",df['销售份数'].sum())
# 3. 按 “菜系” 分组,统计每个菜系的总销售额(提示:使用 groupby )。
total_sales = df.groupby('菜系(川菜/粤菜/鲁菜)')['总销售额'].sum()
print(total_sales)
# 4. 提取 “日期” 中的星期信息(如周一至周日),统计每周各天的总销售份数,绘制折线图展示一周内的销售趋势。
df['日期'] = pd.to_datetime(df['日期'])
df['星期'] = df['日期'].dt.weekday + 1
print(df)
total_weekday_sales = df.groupby('星期')['销售份数'].sum()
print(total_weekday_sales)
plt.plot(total_weekday_sales.index,total_weekday_sales)
plt.show()
# 5. 找出总销售额最高的 3 道菜品,用饼图展示它们的销售额占所有菜品总销售额的比例
top3 = df.nlargest(3,'总销售额')
all_sales = df['总销售额'].sum() #所有菜品总销售额
top3_at = top3['总销售额'] / all_sales # 占比
print(top3)
top3['总销售额占比'] = top3_at
print(top3_at)
plt.rcParams['font.family'] = ['SimHei']
plt.pie(top3_at,labels=top3['菜品名称'],autopct='%1.1f%%')
plt.show()