Table of Contents
一语法基础与算法分析
1简单四则运算
任务详情 编写Python程序计算下列数学表达式的结果并输出,返回结果四舍五入保留两位小数。 res = n*n*(n+1)*(2*n+1)/num 程序接收变量 num 和 n,返回 res。 注明 * 代表乘,如 2*3 代表2乘以 3,结果是 6 / 代表除以,如 4/2 代表4除以 2,结果是 2 任务要求 1. 程序接收int类型的变量 n 和 num,返回结果 res 为 str 类型; 2. 返回的结果不满两位需要补足两位,超过两位四舍五入保留两位小数。 测试用例 输入:n=1, num=52 输出:'0.12' 输入:n=0, num=651 输出:'0.00' # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 class Solution: def SimpleArthmetic(self, n: int, num: int) -> str: pass
2子字符串问题
任务详情 后台传入两个数组 li 和 sub_li,编写一个程序检查 sub_li 是否为 li 的子数组。 如果 sub_li 是 li 的子数组, 返回 True,否则返回 False。 例如:li = [1, 2, 4, 2], sub_li = [2, 4], li 中包含 sub_li,返回 True。 li = [3, 5, 1, 2], sub_li = [3, 1], li 不包含 sub_li, 返回 False。 任务要求 程序接收参数 li 和 sub_li 为 list 数据类型; 程序返回结果为 bool 数据类型; 注意:如果 li 中的元素和 sub_li 中的元素相同,则 sub_li 不属于 li 的子数组; 子数组包含元素顺序,如 [1, 2] 是 [1, 2, 3, 4] 的子数组,[2, 1] 不是 [1, 2, 3, 4] 的子数组。 测试用例 输入:li = [8, 7, 7, 1, 8], sub_li = [7, 7, 1] 输出:True 解释:[7, 7, 1] 是 [8, 7, 7, 1, 8] 的子数组,也就是 [8, 7, 7, 1, 8] 包含有 [7, 7, 1],结果返回 True; 输入:li = [3, 8, 7, 2, 5, 2], sub_li = [3, 6, 4] 输出:False 解释:sub_li 不是 li 的子数组,返回 False; 输入:li = [7, 7, 7], sub_li = [7, 7, 7] 输出:False 解释:li 和 sub_li 完全相等,也就是 sub_li 不是 li 的子数组。 # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 from typing import List class Solution: def is_sublist(self, li: List[int], sub_li: List[int]) -> bool: """ :param li: 父数组 :param sub_li: 子数组 :返回两者关系 """ pass
3字符串索引问题
任务详情 给定一个字符串 s 和一个字符 c,完成以下指定任务。 找到字母 c 在字符串 s 中的第一个位置 n; 计算 n 的三次方并赋值给值 m; 返回 m 除以 11 取模后的结果。 任务要求 程序接收字符串类型的参数 s 和 c,返回结果为 int; 程序查找的是字母在字符串的位置,位置索引从 0 开始; 不考虑字符不在字符串中的情况。 测试用例 输入:s = 'TKBGmFKvoKZtM' c = 'K' 输出:1 解释:'K' 在 'TKBGmFKvoKZtM' 中的位置是 1,1 的三次方是 1,1 除以 11 取模结果是 1; 输入:s = 'TIzFVZvth' c = 'F' 输出:5 解释:'F' 在 'TIzFVZvth' 中的位置是 3,3 的三次方是 27,27 除以 11 取模结果是 5; 解释:s='odfOogrgtoPznkp' c = 'k' 输出:8 # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 class Solution: def str_prc(self, s: str, c: str) -> int: pass
4求环形数组的最大和
任务详情 给定一个由整数构成的环形数组 arr,求环形数组的非空子数组的最大和。 环形数组意味着数组的头部和尾部是相连接的,如:[1, 3, 5, 4, 2] http://zxbs.itmc.cn/jsnlpythoncw1/static/data/ueditor/image/20221028/1666944293871008857.png 任务要求 程序接收整数类型构成的数组 arr,返回结果为整数类型; 数组中的数字包含:正整数、负整数和 0。 测试用例 输入:[1, 3, 5, 4, 2] 输出:15 解释:由于数组是环形,最大子数组是 [1, 3, 5, 4, 2],子数组之和是 15; 输入:[-1, 9, -6, -1, -5] 输出:9 解释:最大子数组是 [9],子数组之和是 9; 输入:[8, -10, 10, -1, 6, -8] 输出:15 # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 class Solution: def circular_arr_sum(self, arr: list) -> int: pass
二网页处理与文本分析
1简单色块网页
任务详情 观察下方给出的页面,统计页面中指定颜色色块的数量。 任务要求 1. 程序接受颜色变量 keyword,str 数据类型,返回一个整数 int 类型的色块数量; 2. 如果网页没有该颜色,返回 0,颜色变量 keyword 不区分大小写; 3. 所需网页在下方给出,页面编码方式为utf-8。 测试用例 输入:'red' 输出:51 解释:网页中红色色块(red)的数量是 51。 输入:'pine-red' 输出:0 解释:网页中酒红色色块(pine-red)的数量是 0。 输入:'blue' 输出:39 http://zxbs.itmc.cn:80/jsnlpythoncw1/open/show/simple_color_page.html # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import re import requests import bs4 class Solution: def simpleColor(self, keyword: str) -> int: pass
2寻找网页中的数字
任务要求 统计网页中所有数字之和,网页共有 100 个,每一页存在 100 个数字。 给定两个参数 page_num 和 position_num,page_num 是一个整数,position_num 是 一个整数。page_num 表示需要寻找的页数,position_num 表示需要寻找的位置。 请你编写程序,寻找到 page_num 中第 position_num 的数字。 例如:page_num=2,position=10 结果是 747 第 2 页第 10 个数字是 747 任务说明 程序接收 参数 page_num 是 int 类型,position_num 是 int 类型; 程序需要读取网页数据; 返回结果的数据类型也是整数类型。 判定程序确保提供的参数存在于页面中,即 1<=page_num<=100,1<=position_num<=100。 测试用例 输入:page_num=5, position_num=53 输出:913 解释:第5页,第53个数字是913 输入:page_num=29,position_num=5 输出:961 解释:第29页,第5个是961 输入:page_num=78, position_num=3 输出:185 http://zxbs.itmc.cn:80/jsnlpythoncw1/open/show/random_number/c426398c-86cd-4bf4-b42c-3049ea13a28a.html # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 from bs4 import BeautifulSoup import requests class Solution: def task(self, page_num: int, position_num: int) -> int: """ :param page_num: 页码 :param position_num: 位置代码 :return: 指定页面中指定位置的数字 """ pass
3车辆评分获取
任务详情 给定一个车辆信息网站,要求完成以下指定任务,任务如下: 后台传入车辆的名称 car_name,需要返回该车辆的评分。 任务要求 程序接收 str 类型的变量 car_name,输出结果的数据类型为 float 类型; 如果某车辆暂无评分,则需要返回 '暂无' 字样的字符串。 测试用例 输入:'秦PLUS' 输出:4.57 解释:秦PLUS 这辆车的评分是 4.57 输入:'Model 3' 输出:4.38 解释:Model 3 这辆车的评分是 4.38 输入:'宋PLUS新能源' 输出:'暂无' http://zxbs.itmc.cn:80/jsnlpythoncw1/open/show/9785_list_of_cars/index.html # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import requests from bs4 import BeautifulSoup class Solution: def list_of_cars(self, car_name: str) -> float: pass
4分类榜单排行任务
任务说明 根据要求完成下面的任务: 根据指定的具体关键词 (kw) 查找对应的榜单名; 根据指定的榜单名称 (name) 和关键词排名 (rank) 查找对应的关键词。 返回由题目一中榜单名和题目二中关键词组成的列表,榜单名在前,关键词在后,不可调换顺序。 任务要求 程序接收三个变量,分别为 kw、name 和 rank,其对应的数据类型分别为 str、str 和 int; 程序返回结果的数据类型为 list。 测试用例 示例一 输入:kw = '广州', name = '旅游城市', rank = 1 输出:['旅游城市', '广州'] 解释:关键词 '广州' 在旅游城市榜单中,旅游城市 排名第 1 的是 '广州' 示例二 输入:kw = '深圳', name = '手机', rank = 10 输出:['旅游城市', '一加手机'] 解释:关键词 '深圳' 在旅游城市榜单中,手机 榜单中排名第 10 的是 '一加手机' 示例三 输入:kw = '五台山', name = '风景名胜', rank = 4 输出:['风景名胜', '九寨沟'] http://zxbs.itmc.cn:80/jsnlpythoncw1/open/show/banner/index.html # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 from typing import List import requests from bs4 import BeautifulSoup class Solution: def list_display(self, kw: str, name: str, rank: int) -> List[str]: pass
三数据处理与分析
1Column 类型转换
任务详情 给定 DataFrame 的对象 df,要求将 DataFrame 的第一列(序号)设置为 DataFrame 的索引列。 第三列(日期)数据的数据类型设置为时间类型,第四列数据(单价)设置为浮点数类型。 返回原始的 df。 程序接收数据信息: 序号 名称 日期 单价 0 5 立式触摸屏 2015-4-9 3.34 1 46 建筑大师 2018-9-11 1.29 2 95 卡通小方巾 2017-7-10 0 3 38 纯色太阳伞 2018-11-5 1.49 4 19 4k显示屏 2016-5-1 1.95 使用 df.dtypes 查看给到结果数据的数据类型。 序号 object 名称 object 日期 object 单价 object 程序需要返回数据: 序号 名称 日期 单价 5 立式触摸屏 2015-04-09 00:00:00 3.34 46 建筑大师 2018-09-11 00:00:00 1.29 95 卡通小方巾 2017-07-10 00:00:00 0 38 纯色太阳伞 2018-11-05 00:00:00 1.49 19 4k显示屏 2016-05-01 00:00:00 1.95 返回结果的数据类型: 名称 object 日期 datetime64[ns] 单价 float64 任务要求 程序接收参数 df,类型参数是 pd.DataFrame; 程序返回结果的数据类型是 pd.DataFrame。 测试用例 输入: 序号 名称 日期 单价 0 47 ipadair触摸屏 2017-2-24 0.78 1 93 新中式花边 2015-4-17 0 2 5 缤智 屏 2017-5-12 0.33 3 46 下摆花边 2018-9-16 0.31 4 97 钓鱼伞大钓伞 2018-10-7 1.65 输出: 序号 名称 日期 单价 47 ipadair触摸屏 2017-02-24 00:00:00 0.78 93 新中式花边 2015-04-17 00:00:00 0 5 缤智 屏 2017-05-12 00:00:00 0.33 46 下摆花边 2018-09-16 00:00:00 0.31 97 钓鱼伞大钓伞 2018-10-07 00:00:00 1.65 解释:这里,我们分别查看输入 DataFrame 和输出 DataFrame 的数据类型。 输入信息的数据类型: 序号 object 名称 object 日期 object 单价 object 输出信息的数据类型: 名称 object 日期 datetime64[ns] 单价 float64 这里发生了 3 步操作: 是把 序号 列转变为了索引列; 日期列的数据类型转换为了 datetime64 的格式; 单价 列的数据类型转换为了 float64。 输入: 序号 名称 日期 单价 0 22 缀美太阳伞 2019-2-11 0 1 49 弹力花边 2016-2-27 0.48 2 8 波浪花边 辅料 2017-5-20 0 3 89 动漫伞 2015-10-23 0.71 4 73 地推伞 2016-3-2 0.59 输出: 序号 名称 日期 单价 22 缀美太阳伞 2019-02-11 00:00:00 0 49 弹力花边 2016-02-27 00:00:00 0.48 8 波浪花边 辅料 2017-05-20 00:00:00 0 89 动漫伞 2015-10-23 00:00:00 0.71 73 地推伞 2016-03-02 00:00:00 0.59 # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import pandas as pd class Solution: def pd_type(self, df: pd.DataFrame) -> pd.DataFrame: pass
2随机工作表求和
任务详情 下方给定一工作簿 random_num.xlsx,random_num.xlsx 由 20 个工作表组成,要求计算 20 个表中所有数字之和。 任务要求 程序不接收输入参数,返回结果的数据类型是 int; 该道题目结果唯一,不提供准确测试用例。 测试用例 示例如下: 工作表 'ybof' 所有数字的和是 1441; 工作表 'kbkva' 所有数字之和是 996; 依次类推,可以算出 20 个工作表中各个表所有数字之和; 最后将 20 个工作表所得到的 20 个数字求和,即可得到正确结果。 附件信息 random_num.xlsx。信息如下: 工作簿的名称由多个随机小写字母组成; 工作表由一组数据和该组数组的行索引和列索引组成,行索引从 0 开始,列索引由单个小写字母组成; 工作簿的第一列是索引,请勿将其作为一列数据使用; 工作表的数据规模可能不同。 http://zxbs.itmc.cn:80/jsnlpythoncw1/data/user/14746/261/fj_random_num.xlsx # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import pandas as pd class Solution: def random_num_in_sheet(self) -> int: pass
3某时天气信息检索
任务详情 程序给定一组经纬度(lat, lon)和一组时间数据 dt,根据经纬度从 city_attributes 工作表中查找对应的城市,再根据时间和城市从 temperature 工作表中找到对应某城市在某时间的温度数据。最后,将温度数据返回到后台判定程序。 参数 lat 表示维度,lon 表示精度。 如给定精度 lat = 49.24966, lon = -123.119339, dt='2017年1月1日1时' 查询到对应的城市是 Vancouver,再根据城市和 dt 查询到对应的温度是 1.17。 任务要求 程序给定经纬度 lon 和 lat 的数据类型是 float,时间数据 dt 的数据类型是 str; 程序返回结果的数据类型是 float; 注意,Pandas 处理后的数字的数据类型是 np.float64,需要手动将其转换为 float 类型,否则可能导致判定程序判定错误。 测试用例 输入:lat = 32.783058, lon = -96.806671, dt = '2017年01月19日18时' 输出:12.2 解释:首先根据经纬度查找城市,根据表中查询可知,符合输入经纬度的城市是Dallas,再结合表的时间可知,符合条件的温度是 12.2 度 输入:lat = 42.358429, lon = -71.059769, dt = '2017年01月09日19时' 输出:-7.12 附件信息 abroad_weather.xlsx abroad weather 工作簿可以由 Excel 直接打开。工作簿中由两个工作表,分别是 city_attributes (城市属性)工作表和 temperature (温度)工作表。 city_attributes 工作表。工作表存放城市所属国家和所在经纬度,共 36 条信息。表格共包含 37 行 4 列。 temperature 工作表。工作表存放 city_attributes 工作表中的所有城市在 2017年 1 月和 2 月的温度(摄氏度)信息,天气以小时为分割,共 1416 条数据。工作表共 1417 行 37 列。 部分词汇含义(城市名未列出): 词汇 含义 abroad weather 国外天气 city 城市 Country 国家 Latitude 维度 Longitude 经度 United States 美国 Canada 加拿大 Israel 以色列 datetime 日期 http://zxbs.itmc.cn:80/jsnlpythoncw1/data/user/14746/265/fj_5324_abroad_weather.xlsx # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import re from datetime import datetime import pandas as pd class Solution: def weather_searching(self, lat: float, lon: float, dt: str) -> float: pass
4Numpy 数组应用
任务详情 按照下面要求构建一个 Ndarray 对象,并完成任务要求。 生成一个有 m * m 个元素的 ndarray 一维数组,元素全部填充成 1; 将数组中索引是素数的元素设置成该素数,如索引 3 是素数,需要将该位置的值需要修改成 3。如列表如下 [1.0, 1.0, 1.0, 1.0],其中索引 2 和 索引 3 是素数,需要修改,修改后的元组如下 [1.0, 1.0, 2.0, 3.0]; 将数组转换为 m * m 的二维数组; 反转二维数组第 n 列的元素。 如二维数组包含元素如下:[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]],反转第三列的元素后,列表变为 [[1.0, 2.0, 6.0], [4.0, 5.0, 3.0]]; 将二维数组转换为一维数组; 将数组转换为一维数组,再并转换为列表,返回给判定程序。 任务要求 程序接收两个变量 m 和 n,两个元素的数据类型均是 int 类型; 程序需要返回的数据类型是 list,列表中的元素数据类型是 float 或 float64; 返回前需将类型转换为 list 数据类型,否则将导致结果不正确。 测试用例 输入:m = 3, n = 2 输出:[1.0, 7.0, 2.0, 3.0, 1.0, 5.0, 1.0, 1.0, 1.0] 解释: 第一步,生成元素是 1 的一维数组,数组长度是 3 * 3 = 9。数组:[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]; 第二步,将数组中索引是素数的元素设置成该素数。修改后的数组:[1.0, 1.0, 2.0, 3.0, 1.0, 5.0, 1.0, 7.0, 1.0]; 第三步,转换二维数组。修改后的数组如下: [ [1.0, 1.0, 2.0], [3.0, 1.0, 5.0], [1.0, 7.0, 1.0] ] 第四步,反转二维数组第 2 列的元素。反转后的数组如下: [ [1.0, 7.0, 2.0], [3.0, 1.0, 5.0], [1.0, 1.0, 1.0] ] 第五步,将数组扁平化,并转换成列表,结果如下:[1.0, 7.0, 2.0, 3.0, 1.0, 5.0, 1.0, 1.0, 1.0] 输入:m = 4, n = 2 输出:[1.0, 13.0, 2.0, 3.0, 1.0, 1.0, 1.0, 7.0, 1.0, 5.0, 1.0, 11.0, 1.0, 1.0, 1.0, 1.0] 函数提示 反转数组 | flipud >>> import numpy as np >>> dt = np.array([1, 2, 3, 4]) >>> np.flipud(dt) array([4, 3, 2, 1]) 扁平数组 | flatten >>> import numpy as np >>> dt = np.array([[1, 2, 3], [4, 5, 6]]) >>> dt.flatten() array([1, 2, 3, 4, 5, 6]) # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import numpy as np class Solution: def numpy_exer(self, m: int, n: int) -> list: pass
5国内生产总值增长率计算
任务详情 如下给定近十几年四季度的国民生产总值,按照要求完成如下任务: 计算每一年的各项生产总值(国民生产总值、第一产业(亿元)、第二产业(亿元)第三产业(亿元)); 计算每一年各项生产总值的增长率; 分别找到各项生产总值增长率最高的和最低的年份。 程序给定一项生产总值 name,计算结果得到该 name 增长率最高和最低的年份。如给定 name='国民生产总值',需要计算国民生产总值增长率最高和最低的年份,两者需要包括在列表中返回。 增长率 = (今年生产总值 - 去年生产总值) / 去年生产总值 任务说明 程序接收 str 数据类型的参数 name,返回结果的数据类型是 list; name 与国民生产总值并不完全匹配; 列表中的第一个元素是国民生产总值增长率最高的年份,数据类型是 int,第二个元素是国民生产总值增长率最低的年份,数据类型是 int,两者顺序不能颠倒,否则可能导致结果不正确。 测试用例 输入:name = '第三产业' 输出:[2007, 2019] 解释:第三产业依照年份数据归并后的结果如下 以 2006 年第三产业的生产总值为例。 2006 年的生产总值 = 22648.0 + 44996.5 + 67187.0 + 91762.2 第三产业(亿元) 2006 226593.7 2007 283657.3 2008 338010.7 2009 379738.2 2010 445697.6 2011 530994.5 2012 601772.3 2013 683707.7 2014 763633.7 2015 858913.8 2016 958739.0 2017 1075319.1 2018 1203136.8 2019 1315884.1 2006 年以前没有数据,2016年增长率无法计算。这里计算下 2007 年的增长率。(283657.3 - 226593.7) / 226593.7 = 0.2518… 依次类推,可计算2007-2020年的增长率。从而找到增长率最高的年份是 2007 年,年增长率最低的年份是 2019 年。 附件信息 国民生产总值.csv 包含 2013 年到 2019 年的国民生产总值信息,单位是亿元; 国民生产总值信息包含第一产业、第二产业和第三产业的信息; 数据共 56 条; http://zxbs.itmc.cn:80/jsnlpythoncw1/data/user/14746/260/fj_gross_national_product.csv 文件编码方式是 utf-8。 # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 from typing import List import pandas as pd class Solution: def gross_domestic_product(self, name: str) -> List[int]: pass
6产品销售数据汇总计算
任务详情 根据下方的企业产品销售基础数据工作簿,计算指定品类所有产品毛利率变动的平均值。 毛利率 = (收入 - 成本) / 收入 毛利率变动 = 本期毛利率 - 上期毛利率 任务描述 程序接收 str 类型的变量 name,name 代表的是产品品类; 程序需要返回指定产品品类的毛利率变动平均值,数据类型是 float; 返回结果需四舍五入保留小数点后 4 位,不足 4 位无需补全; 如计算结果类型是 np.float64,需手动将其转换为 float 类型,否则可能导致结果错误。 测试用例 输入:name = '普通水' 结果:0.0207 解释:普通水包含的产品包含纯净水和矿泉水两种。 纯净水上期毛利率是 0.389175..,本期毛利率是 0.414344..,毛利变动率是0.02517; 同理,矿泉水毛利的毛利变动率是0.016273; 两者的平均值是:0.020715,四舍五入结果是:0.0207。 输入:name = '零食' 结果:0.0047 http://zxbs.itmc.cn:80/jsnlpythoncw1/data/user/14746/248/fj_enterprise_sales_basic_data.csv # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import pandas as pd class Solution: def calculate_mean(self, name) -> float: pass
7某公司部门平均薪资汇总计算
任务说明 读取给定的职工薪酬考勤簿,职工薪酬考勤簿由两个表格组成,分别是 基本薪资 工作表和 上班通勤 工作表。要求计算每一个部门内部的平均薪资,并把结果 降序 排列,返回给判定程序。 员工个人薪酬计算过程如下: 薪资由两部分组成, 月基本薪资 和 通勤工资,另外需要扣除需要缴纳的 五险一金; 月基本薪资 = 基本薪资+岗位工资 + 绩效工资; 通勤工资中计算如下: 日薪 = (基本薪资 + 岗位工资 + 绩效工资) / 应出勤天数 时薪 = 日薪 / 8 比如小王基本薪资+岗位工资+绩效工资共计5000,应出勤22天,日薪=227.27..,时薪=28.4090… 通勤工资中,法定节假日加班薪资是工作日加班的 2 倍,周末加班工资是工作日加班的 1.5 倍,工作日加班工资与时薪 相同; 通勤工资需要扣除因请假导致的缺勤, 请假/小时需要扣除的工资按照时薪计算。 如小王时薪是20,请假2天,需要扣除的工资是 20 * 2 * 8 = 320; 五险一金个人缴费按照社会保险缴费基数计算。 养老保险个人缴费比例是 8% 医疗保险个人缴费比例是 2% 失业保险个人缴费比例是 1% 公积金缴费比例是 10% 某员工个人缴费基数是 2000,养老保险 2000 * 0.08 = 160,医疗保险 2000 * 0.02 = 40,失业保险 2000 * 0.01 = 20,公积金 2000 * 0.1 = 200,个人合计承担五险一金费用 420。 示例: 小王基本工资 2000,岗位工资 2000,社会保险缴费基数是 2000。绩效工资 0,应出勤天数 20 天,请假 1 天,工作日加班 8 小时,法定节假日加班 4 小时,周末加班 4 小时。 小王基本薪资+岗位工资+绩效工资是:2000 + 2000 = 4000; 小王时薪:4000 / 20 / 8 = 25; 小王加班工资:25 * 8 + 25 * 4 * 1.5 + 25 * 4 * 2 = 550; 小王请假扣除:25 * 8 = 200; 小王五险一金扣除:2000 * 0.08 + 2000 * 0.02 + 2000 * 0.01 + 2000 * 0.1 = 420; 小王本月实发工资:4000 + 550 - 200 - 420 = 3930。 假设小王所在部门有 5 个人,5 个人工资分别是 4050,4010,4120,4000,4500。小王所在部门的平均工资是:(3930+ 4010 + 4120 + 4000 + 4500) /5 = 4112。同理可算出其他部门的平均工资。 注意:返回结果需四舍五入保留小数点后两位! 返回结果参数类型是 pd.Series。Series 的索引应为部门名,Series 的数据应为部门平均工资,Series 的 Name 属性应修改为 “平均薪资”。 任务要求 程序无需接收参数输入,需要返回结果参数的格式是 pd.Series; 返回结果时需要四舍五入保留小数点后两位,计算过程内保留小数点后两位可能导致最后结果不正确; 部门平均工资需要降序排列; 本题所需的基本薪资表和上班通勤表均在职工薪酬工作簿中,按需读取。 Series 数据的类型应为 float 64,Name 属性应为 “平均薪资”。 index 的属性名应为部门。 测试用例 部分返回数据: 部门 销售部 15767.86 运营部 **** 工程部 **** 财务部 **** 研发部 **** 市场部 **** 人力资源部 4233.27 Name: 平均薪资, dtype: float64 附件信息 职工薪酬簿.xlsx,职工薪酬工作簿由 基本薪资 工作表和 上班通勤 工作表组成。 基本薪资工作表。基本薪资工作表包含个人所属部门,各部分薪资状况和社会保险缴纳基数。共 7 个部门共 50 条数据,其中只有销售部有绩效工资。 上班通勤工作表。上班通勤工作表包含本月应出勤天数,实际出勤天数。请假加班天数等。工作表中的名字与基本薪资工作表中的名字一一对应。共 50 条数据。 http://zxbs.itmc.cn:80/jsnlpythoncw1/data/user/14746/258/fj_9210_employee_salary_work_books.xlsx # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import pandas as pd class Solution: def department_salary_summary(self) -> pd.Series: pass
8视频数据简易分析
任务详情 根据给出的 video_dataset_of_ytb.csv 构建视频频道的 IFL 模型。 IFL 模型 I (互动率 - Interaction_rate):指某段时间内每个视频的平均互动率。I 值越大,用户对视频越能产生共鸣和互动; F(发布周期 - Frequency):是指每个视频的平均发布周期。F 值越小,创作者更新视频的速度越快,越容易在大众面前形成长时间的记忆点; L (喜爱程度 - Like_rate): 指某段时间内视频的平均喜爱度。L 值越大,创作者越受大众喜爱。 IFL 模型计算公式 I = 总评论数 * 视频数量 / 总播放量 F = (最晚发布视频时间 - 最早发布视频时间) / 视频数量 L = (喜欢总量 - 0.5 * 不喜欢总量) / 总播放量 * 发布视频总数 程序给定一个频道 nm,要求分别计算该频道的 I、F 和 L 并列表形式返回给判定程序,分数需要四舍五入保留小数点后两位。 任务要求 程序接收参数视频频道 pd: str,需要返回结果的数据类型是 list; 返回 list 中,各参数的数据类型均是 float,如参数的数据类型是 float 64,需手动转换为 float; 计算视频发布时间时,需要将时间转换为时间戳再进行计算; 返回数据顺序指定为 [I, F, L],调换顺序将导致结果错误。 测试用例 输入:'REACT' 输出:[1.02, 99599.99, 5.8] 解释:经计算,'REACT' 这一频道的 I、F 和 L 值分别是 1.02,99599.99 和 5.8 输入:'Rooster Teeth' 输出:[0.61, 171663.25, 4.3] 附件信息 video_dataset_of_ytb.csv 编码:UTF-8 行列数目:5942行,9列 列名翻译如下 列名 含义 video_id 视频ID title 视频标题 channel_title 频道标题 publish_time 发布时间 views 观看数量 likes 喜爱数量 dislikes 讨厌(不喜欢)数量 comment_count 评论数量 注明: 视频标题和视频频道一一对应。即,一个标题对应一个频道,一个频道仅有一个标题。 附件下载: http://zxbs.itmc.cn:80/jsnlpythoncw1/data/user/14746/263/fj_7712_video_dataset_of_ytb.csv # -*- coding: utf-8 -*- # 1. 运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。 # 2. 您编写代码的区域需要限制在Solution类或其他类和函数体内,保证输入与输出符合任务要求即可。 # 3. 点击“提交代码”按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 # 4. 提交代码次数越多,任务得分越低。 # 5. 点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。 import pandas as pd class Solution: def video_data_analysis(self, nm: str) -> list: pass
微信扫描下方的二维码阅读本文