{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "zip文件在文件夹中: 高二下数学测验1_高二_数学\n", "正在处理高二下数学测验1_高二_数学\n", "2025届高一10班\n", "2025届高一10班 有效\n", "2025届高一11班\n", "2025届高一11班 有效\n", "2025届高一12班\n", "2025届高一12班 有效\n", "2025届高一01班\n", "2025届高一01班 有效\n", "2025届高一02班\n", "2025届高一02班 有效\n", "2025届高一03班\n", "2025届高一03班 有效\n", "2025届高一04班\n", "2025届高一04班 有效\n", "2025届高一05班\n", "2025届高一05班 有效\n", "2025届高一06班\n", "2025届高一06班 有效\n", "2025届高一07班\n", "2025届高一07班 有效\n", "2025届高一08班\n", "2025届高一08班 有效\n", "2025届高一09班\n", "2025届高一09班 有效\n" ] } ], "source": [ "import zipfile,os,re,time\n", "import pandas as pd\n", "from pathlib import Path\n", "\n", "#设置届别与接受的比例阈值\n", "gradename = \"2025届高一\"\n", "threshold = 0.5 #当班级提交人数超过该比例时数据有效\n", "\n", "#设置工作目录, 要求工作目录中恰有一个.tex文件(或.txt文件)和一些.zip文件,其余不论\n", "filepath = \"数据导入作业文件\"\n", "\n", "#生成文件名tex_file和zip_file\n", "files = [os.path.join(filepath,f) for f in os.listdir(filepath)]\n", "tex_file = [f for f in files if \".tex\" in f or \".txt\" in f][0]\n", "zip_files = [f for f in files if \".zip\" in f]\n", "\n", "#分割各次作业数据\n", "with open(tex_file,\"r\",encoding = \"utf8\") as f:\n", " tex_data = f.read().strip()\n", "tex_data = re.sub(r\"\\t+\",r\" \",tex_data)\n", "tex_data = re.sub(r\"\\n{2,}\",\"---split---\",tex_data)\n", "homeworklist = tex_data.split(\"---split---\")\n", "\n", "#读取各次作业首行(文件名)与次行(日期)并组织字典结构\n", "homeworkdict = {}\n", "for hwk in homeworklist:\n", " hwkdata = hwk.strip().split(\"\\n\")\n", " id = hwkdata.pop(0)\n", " date = hwkdata.pop(0)\n", " homeworkdict[id] = {}\n", " homeworkdict[id][\"date\"] = date\n", " homeworkdict[id][\"usage_data\"] = hwkdata\n", "\n", "#测试是否每一项都有相应的zip文件与之对应\n", "execflag = True\n", "for id in homeworkdict:\n", " if os.path.join(\"数据导入作业文件\",id+\".zip\") in zip_files:\n", " print(\"zip文件在文件夹中:\",id)\n", " else:\n", " execflag = False\n", " print(\"!!!zip文件不在文件夹中:\",id)\n", "\n", "\n", "if execflag:\n", " outputstr = \"usages\\n\\n\"\n", " for id in homeworkdict:\n", " print(\"正在处理%s\"%id)\n", " date = homeworkdict[id][\"date\"]\n", " #在zip文件中找到包含正确率数据的文件\n", " zip_file = os.path.join(\"数据导入作业文件\",id+\".zip\")\n", " zf = zipfile.ZipFile(zip_file)\n", " statfiles = [f.filename for f in zf.filelist if \"试题分析\" in f.filename]\n", " handinfiles = [f.filename for f in zf.filelist if \"学生成绩\" in f.filename]\n", "\n", " #生成答题纸区域编号与题目ID的对应\n", " correspondence_dict = {}\n", " if \"statsfile.xlsx\" in os.listdir(\"临时文件\"):\n", " os.remove(\"临时文件/statsfile.xlsx\")\n", " extractedpath = Path(zf.extract(statfiles[0]))\n", " extractedpath.rename(\"临时文件/statsfile.xlsx\")\n", " df = pd.read_excel(\"临时文件/statsfile.xlsx\")\n", " problems_indexes = list(df[df.columns[0]][2:])\n", "\n", " for pind in problems_indexes:\n", " for p in homeworkdict[id][\"usage_data\"]:\n", " if len(re.findall(\"^\"+pind+\"\\s\",p))>0:\n", " correspondence_dict[pind] = p[p.index(\" \")+1:]\n", "\n", " for sf in [f for f in statfiles]:\n", " #读取文件生成区域列表与难度列表\n", " classname = gradename+re.findall(r\"高[一二三]([\\d]*?)班\",sf)[0].zfill(2)+\"班\"\n", " print(classname)\n", " if \"statsfile.xlsx\" in os.listdir(\"临时文件\"):\n", " os.remove(\"临时文件/statsfile.xlsx\")\n", " extractedpath = Path(zf.extract(sf))\n", " extractedpath.rename(\"临时文件/statsfile.xlsx\")\n", " df = pd.read_excel(\"临时文件/statsfile.xlsx\")\n", " if \"handinfile.xlsx\" in os.listdir(\"临时文件\"):\n", " os.remove(\"临时文件/handinfile.xlsx\")\n", " extractedpath = Path(zf.extract(sf[:sf.find(\"数学\")]+\"学生成绩.xlsx\"))\n", " extractedpath.rename(\"临时文件/handinfile.xlsx\")\n", " handindf = pd.read_excel(\"临时文件/handinfile.xlsx\")\n", " if str(handindf.iloc[int(len(handindf)*threshold)][\"Unnamed: 4\"]) != \"缺考\":\n", " difficulties = list(df[df.columns[9]][2:])\n", " problems_indexes = list(df[df.columns[0]][2:])\n", " #生成该班级题目ID对应难度列表组成的字典\n", " class_difficulty = {}\n", " for i in range(len(difficulties)):\n", " if problems_indexes[i] in correspondence_dict:\n", " if not correspondence_dict[problems_indexes[i]] in class_difficulty:\n", " class_difficulty[correspondence_dict[problems_indexes[i]]] = [difficulties[i]]\n", " else:\n", " class_difficulty[correspondence_dict[problems_indexes[i]]].append(difficulties[i])\n", " #添加到输出字符串中\n", " for id in class_difficulty:\n", " outputstr += id + \"\\n\" + date + \"\\t\" + classname + \"\\t\" + \"\\t\".join([(\"%.3f\" %float(v)) for v in class_difficulty[id]]) + \"\\n\\n\"\n", " print(classname, \"有效\")\n", " else:\n", " print(classname, \"无效\")\n", "\n", "with open(\"临时文件/自动转换结果.txt\",\"w\",encoding = \"utf8\") as f:\n", " f.write(outputstr)\n", "with open(\"../文本文件/metadata.txt\",\"w\",encoding = \"utf8\") as f:\n", " f.write(outputstr)\n", "zf.close()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'高二下数学周末卷2_高二_数学': {'date': '20230227',\n", " 'usage_data': ['1.1 40037',\n", " '1.2 40038',\n", " '1.3 40039',\n", " '1.4.1 40040',\n", " '1.4.2 40040',\n", " '1.4.3 40040',\n", " '1.5 40041',\n", " '1.6 40042',\n", " '1.7 40043',\n", " '1.8 40044',\n", " '1.9 40045',\n", " '1.10 40046',\n", " '1.11 40047',\n", " '1.12 40048',\n", " '2.13 40049',\n", " '2.14 40050',\n", " '2.15 40051',\n", " '2.16 40052',\n", " '3.17.1 40053',\n", " '3.17.2 40053',\n", " '3.18.1 40054',\n", " '3.18.2 40054',\n", " '3.19.1 40055',\n", " '3.19.2 40055',\n", " '3.20.1 40056',\n", " '3.20.2 40056',\n", " '3.20.3 40056']},\n", " '高二下数学周末卷3_高二_数学': {'date': '20230309',\n", " 'usage_data': ['1.1 40140',\n", " '1.2 40141',\n", " '1.3 40142',\n", " '1.4 40143',\n", " '1.5 40144',\n", " '1.6 40145',\n", " '1.7 40146',\n", " '1.8 40147',\n", " '1.9 40148',\n", " '1.10 40149',\n", " '1.11 40150',\n", " '1.12 40151',\n", " '1.13 40152',\n", " '1.14 40153',\n", " '1.15 40154',\n", " '2.16 40155',\n", " '2.17 40156',\n", " '3.18 40157',\n", " '3.19.1 40158',\n", " '3.19.2 40158',\n", " '3.19.3 40158',\n", " '3.2 40159',\n", " '3.21.1 40160',\n", " '3.21.2 40160',\n", " '3.21.3 40160']},\n", " '5.1.1导数的概念_高二_数学': {'date': '20230309',\n", " 'usage_data': ['1.1 21365',\n", " '1.2 21366',\n", " '1.3 21367',\n", " '1.4 21368',\n", " '2.5 21369',\n", " '3.6.1 21370',\n", " '3.6.2 21370',\n", " '3.7 21371',\n", " '3.8.1 21372',\n", " '3.8.2 21372',\n", " '3.8.3 21372',\n", " '3.9.1 21373',\n", " '3.9.2 21373',\n", " '3.10 21374']},\n", " '5.1.2导数的几何意义_高二_数学': {'date': '20230313',\n", " 'usage_data': ['1.1 21375',\n", " '1.2 21376',\n", " '2.3.1 21377',\n", " '2.3.2 21377',\n", " '2.4.1 21378',\n", " '2.4.2 21378',\n", " '2.5.1 21379',\n", " '2.5.2 21379',\n", " '2.6.1 21380',\n", " '2.6.2 21380',\n", " '2.6.3 21380',\n", " '2.7.1 21381',\n", " '2.7.2 21381',\n", " '2.8 21382',\n", " '2.9 21383']},\n", " '高二下数学周末卷4_高二_数学': {'date': '20230313',\n", " 'usage_data': ['1.1 40161',\n", " '1.2 40162',\n", " '1.3 40163',\n", " '1.4 40164',\n", " '1.5 40165',\n", " '1.6 40166',\n", " '1.7 40167',\n", " '1.8 40168',\n", " '1.9 40169',\n", " '1.10 40170',\n", " '2.11 40171',\n", " '2.12 40172',\n", " '2.13 40173',\n", " '2.14 40174',\n", " '2.15 40175',\n", " '3.16 40176',\n", " '3.17.1 40177',\n", " '3.17.2 40177',\n", " '3.18 40178',\n", " '3.19 40179',\n", " '3.20.1 40180',\n", " '3.20.2 40180',\n", " '3.20.3 40180']},\n", " '5.2.1基本初等函数的导数_高二_数学': {'date': '20230313',\n", " 'usage_data': ['1.1 21384',\n", " '1.2 21385',\n", " '1.3 21386',\n", " '1.4 21387',\n", " '2.5 21388',\n", " '3.6.1 21389',\n", " '3.6.2 21389',\n", " '3.6.3 21389',\n", " '3.6.4 21389',\n", " '3.7 21390',\n", " '3.8 21391',\n", " '3.9 21392']},\n", " '5.2.2导数的四则运算_高二_数学': {'date': '20230314',\n", " 'usage_data': ['1.1 21393',\n", " '1.2 21394',\n", " '1.3 21395',\n", " '1.4 21396',\n", " '1.5 21397',\n", " '2.6.1 21398',\n", " '2.6.2 21398',\n", " '2.6.3 21398',\n", " '2.7.1 21399',\n", " '2.7.2 21399',\n", " '2.7.3 21399',\n", " '2.7.4 21399',\n", " '2.8.1 21400',\n", " '2.8.2 21400',\n", " '2.9.1 21401',\n", " '2.9.2 21401']},\n", " '5.3.1利用导数研究函数的单调性_高二_数学': {'date': '20230317',\n", " 'usage_data': ['1.1.1 21411',\n", " '1.1.2 21411',\n", " '1.2.1 21412',\n", " '1.2.2 21412',\n", " '1.3.1 21413',\n", " '1.3.2 21413',\n", " '1.3.3 21413',\n", " '1.4.1 21414',\n", " '1.4.2 21414',\n", " '1.5.1 21415',\n", " '1.5.2 21415',\n", " '1.6.1 21416',\n", " '1.6.2 21416',\n", " '1.6.3 21416',\n", " '1.6.4 21416',\n", " '1.7.1 21417',\n", " '1.7.2 21417']},\n", " '5.3.21利用导数研究函数的极值_高二_数学': {'date': '20230320',\n", " 'usage_data': ['1.1 21418',\n", " '1.2 21419',\n", " '1.3 21420',\n", " '1.4 21421',\n", " '2.5 21422',\n", " '2.6 21423',\n", " '2.7 21424',\n", " '2.8 21425',\n", " '2.9 21426',\n", " '2.10 21427',\n", " '2.11.1 21428',\n", " '2.11.2 21428']},\n", " '5.2.3简单复合函数的导数_高二_数学': {'date': '20230320',\n", " 'usage_data': ['1.1.1 21402',\n", " '1.1.2 21402',\n", " '1.2 21403',\n", " '1.3.1 21404',\n", " '1.3.2 21404',\n", " '1.3.3 21404',\n", " '1.3.4 21404',\n", " '1.4.1 21405',\n", " '1.4.2 21405',\n", " '1.5.1 21406',\n", " '1.5.2 21406',\n", " '1.6.1 21407',\n", " '1.6.2 21407',\n", " '1.7.1 21408',\n", " '1.7.2 21408',\n", " '1.8.1 21409',\n", " '1.8.2 21409',\n", " '1.9 21410']},\n", " '高二下数学周末卷5_高二_数学': {'date': '20230320',\n", " 'usage_data': ['1.1.1 40202',\n", " '1.1.2 40202',\n", " '1.1.3 40202',\n", " '1.1.4 40202',\n", " '1.1.5 40202',\n", " '1.1.6 40202',\n", " '1.2.1 40203',\n", " '1.2.2 40203',\n", " '1.2.3 40203',\n", " '1.2.4 40203',\n", " '1.2.5 40203',\n", " '1.3.1 40204',\n", " '1.3.2 40204',\n", " '1.4.1 40205',\n", " '1.4.2 40205',\n", " '1.5.1 40206',\n", " '1.5.2 40206',\n", " '1.6.1 40207',\n", " '1.6.2 40207',\n", " '1.7.1 40208',\n", " '1.7.2 40208',\n", " '1.8.1 40209',\n", " '1.8.2 40209',\n", " '1.9.1 40210',\n", " '1.9.2 40210',\n", " '1.10.1 40211',\n", " '1.10.2 40211',\n", " '1.11.1 40212',\n", " '1.11.2 40212',\n", " '1.12.1 40213',\n", " '1.12.2 40213',\n", " '1.13 40214',\n", " '1.14 40215',\n", " '1.15 40216',\n", " '1.16 40217',\n", " '1.17 40218',\n", " '1.18 40219',\n", " '1.19 40220',\n", " '1.20.1 40221',\n", " '1.20.2 40221',\n", " '2.21 40222',\n", " '2.22 40223',\n", " '2.23 40224',\n", " '3.24 40225']},\n", " '5.3.22利用导数研究函数的最值_高二_数学': {'date': '20230323',\n", " 'usage_data': ['1.1.1 21429',\n", " '1.1.2 21429',\n", " '1.1.3 21429',\n", " '1.1.4 21429',\n", " '1.2 21430',\n", " '1.3 21431',\n", " '1.4 21432',\n", " '1.5 21433',\n", " '1.6 21434',\n", " '1.7 21435',\n", " '1.8.1 21436',\n", " '1.8.2 21436']},\n", " '5.3.3利用导数解决实际问题_高二_数学': {'date': '20230324',\n", " 'usage_data': ['1.1 21437',\n", " '1.2 21438',\n", " '1.3 21439',\n", " '1.4.1 21440',\n", " '1.4.2 21440']},\n", " '高二下数学周末卷6_高二_数学': {'date': '20230327',\n", " 'usage_data': ['1.1 40299',\n", " '1.2 40300',\n", " '1.3 40301',\n", " '1.4 40302',\n", " '1.5 40303',\n", " '1.6 40304',\n", " '1.7 40305',\n", " '1.8 40306',\n", " '1.9 40307',\n", " '1.10 40308',\n", " '1.11 40309',\n", " '1.12 40310',\n", " '2.13 40311',\n", " '2.14.1 40312',\n", " '2.14.2 40312',\n", " '2.15.1 40313',\n", " '2.15.2 40313',\n", " '2.16.1 40314',\n", " '2.16.2 40314',\n", " '2.17.1 40315',\n", " '2.17.2 40315',\n", " '2.18.1 40316',\n", " '2.18.2 40316']},\n", " '6.51二项式定理1_高二_数学': {'date': '20230328',\n", " 'usage_data': ['1.1.1 22084',\n", " '1.1.2 22084',\n", " '1.2.1 22085',\n", " '1.2.2 22085',\n", " '1.3.1 22086',\n", " '1.3.2 22087',\n", " '2.4 22088',\n", " '3.5 22089',\n", " '3.6 22090',\n", " '3.7.1 22091',\n", " '3.7.2 22091',\n", " '3.8 22092',\n", " '3.9 22093',\n", " '3.10 22094']},\n", " '6.52二项式定理2_高二_数学': {'date': '20230403',\n", " 'usage_data': ['1.1 22095',\n", " '2.2 22096',\n", " '3.3.1 22097',\n", " '3.3.2 22099',\n", " '3.4 22100',\n", " '3.5 22101',\n", " '3.6 22102',\n", " '3.7 22103',\n", " '3.8.1 22104',\n", " '3.8.2 22104',\n", " '3.9 22105',\n", " '3.10 22106']},\n", " '高二下数学周末卷7_高二_数学': {'date': '20230403',\n", " 'usage_data': ['1.1 40317',\n", " '1.2 40318',\n", " '1.3 40319',\n", " '1.4 40320',\n", " '1.5 40321',\n", " '1.6 40322',\n", " '1.7 40323',\n", " '1.8 40324',\n", " '1.9 40325',\n", " '1.10 40326',\n", " '1.11 40327',\n", " '1.12 40328',\n", " '1.13 40329',\n", " '2.14 40330',\n", " '2.15 40331',\n", " '3.16.1 40332',\n", " '3.16.2 40332',\n", " '3.17.1 40333',\n", " '3.17.2 40333',\n", " '3.18.1 40334',\n", " '3.18.2 40334',\n", " '3.19.1 40335',\n", " '3.19.2 40335',\n", " '3.19.3 40335']},\n", " '3.1空间向量及其运算_高二_数学': {'date': '20230410',\n", " 'usage_data': ['1.1.1 22048',\n", " '1.1.2 22048',\n", " '1.1.3 22048',\n", " '1.1.4 22048',\n", " '1.2 22049',\n", " '1.3 22050',\n", " '1.4.1 22051',\n", " '1.4.2 22051',\n", " '1.5 22052']},\n", " '3.3空间向量的坐标表示_高二_数学': {'date': '20230411',\n", " 'usage_data': ['1.1.1 22058',\n", " '1.1.2 22058',\n", " '1.1.3 22058',\n", " '1.1.4 22058',\n", " '1.1.5 22058',\n", " '1.1.6 22058',\n", " '1.2.1 22059',\n", " '1.2.2 22059',\n", " '1.3.1 22060',\n", " '1.3.2 22060',\n", " '1.4 22061',\n", " '1.5 22062',\n", " '1.6 22063',\n", " '1.7.1 22064',\n", " '1.7.2 22065',\n", " '1.8 22066']},\n", " '3.2空间向量基本定理_高二_数学': {'date': '20230412',\n", " 'usage_data': ['1.1.1 22053',\n", " '1.1.2 22053',\n", " '1.1.3 22053',\n", " '1.2 22054',\n", " '1.3 22055',\n", " '1.4 22056',\n", " '1.5.1 22057',\n", " '1.5.2 22057']},\n", " '高二下数学周末卷8_高二_数学': {'date': '20230412',\n", " 'usage_data': ['1.1 40570',\n", " '1.2 40571',\n", " '1.3 40572',\n", " '1.4 40573',\n", " '1.5 40574',\n", " '1.6 40575',\n", " '1.7 40576',\n", " '1.8 40577',\n", " '1.9 40578',\n", " '1.10 40579',\n", " '1.11 40580',\n", " '1.12 40581',\n", " '1.13 40582',\n", " '1.14 40583',\n", " '1.15 40584',\n", " '2.16.1 40585',\n", " '2.16.2 40585',\n", " '2.16.3 40585',\n", " '2.17 40586',\n", " '2.18 40587']},\n", " '3.41空间向量在立体几何中的应用1_高二_数学': {'date': '20230413',\n", " 'usage_data': ['1.1 22067',\n", " '1.2.1 22068',\n", " '1.2.2 22068',\n", " '1.3.1 22069',\n", " '1.3.2 22069',\n", " '1.4.1 22070',\n", " '1.4.2 22070',\n", " '1.4.3 22070']},\n", " '3.42空间向量在立体几何中的应用2_高二_数学': {'date': '20230413',\n", " 'usage_data': ['1.1.1 22071',\n", " '1.1.2 22071',\n", " '1.1.3 22071',\n", " '1.1.4 22071',\n", " '1.2.1 22072',\n", " '1.2.2 22072',\n", " '1.2.3 22072',\n", " '1.2.4 22072',\n", " '1.3.1 22073',\n", " '1.3.2 22073',\n", " '1.4 22074',\n", " '1.5 22075',\n", " '1.6 22076',\n", " '1.7 22077',\n", " '1.8.1 22078',\n", " '1.8.2 22078']},\n", " '3.43空间向量在立体几何中的应用3_高二_数学': {'date': '20230414',\n", " 'usage_data': ['1.1 22079',\n", " '1.2.1 22080',\n", " '1.2.2 22080',\n", " '1.2.3 22080',\n", " '1.3 22081',\n", " '1.4 22082',\n", " '1.5.1 22083',\n", " '1.5.2 22083',\n", " '1.5.3 22083']},\n", " '7.11条件概率_高二_数学': {'date': '20230425',\n", " 'usage_data': ['1.1 4572',\n", " '1.2 4573',\n", " '1.3 4574',\n", " '1.4 4575',\n", " '1.5 4576',\n", " '2.6 4577',\n", " '2.7 4578']},\n", " '7.12全概率公式_高二_数学': {'date': '20230426',\n", " 'usage_data': ['1.1 4579',\n", " '1.2 4580',\n", " '1.3 4581',\n", " '1.4 4582',\n", " '1.5 4583',\n", " '2.6 4584',\n", " '2.7 4585',\n", " '2.8 4586',\n", " '2.9 4587']},\n", " '7.21随机变量与分布_高二_数学': {'date': '20230504',\n", " 'usage_data': ['1.1 4588',\n", " '1.2 4589',\n", " '1.3 4590',\n", " '1.4 4591',\n", " '2.5 4592',\n", " '2.6 4593',\n", " '2.7.1 4594',\n", " '2.7.2 4594']},\n", " '高二下数学周末卷10_高二_数学': {'date': '20230504',\n", " 'usage_data': ['1.1 40647',\n", " '1.2 40648',\n", " '1.3 40649',\n", " '1.4 40650',\n", " '1.5 40651',\n", " '1.6 40652',\n", " '1.7.1 40653',\n", " '1.7.2 40653',\n", " '1.8 40654',\n", " '1.9 40655',\n", " '1.10 40656',\n", " '1.11 40657',\n", " '1.12 40658',\n", " '1.13 40659',\n", " '1.14 40660',\n", " '2.15.1 40661',\n", " '2.15.2 40661',\n", " '2.15.3 40661',\n", " '2.16.1 40662',\n", " '2.16.2 40662',\n", " '2.17 40663',\n", " '2.18 40664',\n", " '2.19 40665',\n", " '2.20 40666']},\n", " '7.22期望_高二_数学': {'date': '20230504',\n", " 'usage_data': ['1.1 4596',\n", " '2.2.1 4597',\n", " '2.2.2 4597',\n", " '2.3.1 4598',\n", " '2.3.2 4598',\n", " '2.4.1 4599',\n", " '2.4.2 4599']},\n", " '7.23方差_高二_数学': {'date': '20230505',\n", " 'usage_data': ['1.1 4600',\n", " '2.2.1 4601',\n", " '2.2.2 4601',\n", " '2.3.1 4602',\n", " '2.3.2 4602']}}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "homeworkdict" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "mathdept", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "ff3c292c316ba85de6f1ad75f19c731e79d694e741b6f515ec18f14996fe48dc" } } }, "nbformat": 4, "nbformat_minor": 2 }