Python打卡天池Docker练习场

简介: 天池Docker入门练习赛

任务描述

参与者可分阶段提交容器镜像完成以下3个任务(分数依次占 30/30/40),根据评分系统的分数返回验证任务的完成情况。

  • 输出Hello world
  • 计算 /tcdata/num_list.csv中一列数字的总和。
  • /tcdata/num_list.csv文件中寻找最大的10个数,从大到小生成一个List_List_.

num_list.csv文件中只有一列不为负的整数,其中存在重复值,示例如下:

102
6
11
11

生成入口脚本run.sh,放置于镜像工作目录。运行后生成结果result.json放置于工作目录(与run.sh同目录),评分系统将根据result.json进行打分。json文件如下所示:

{  
    "Q1":"Hello world", 
    "Q2":sum值, 
    "Q3":[top10_list] 
}

实现过程

  1. 新建公开容器镜像仓、并选择github为代码源
  2. 配置并构建触发器
  3. 通过IDE完成实现代码并生成Dockerfile
  4. 提交代码到github、并验证镜像仓库构建日志
  5. 提交 镜像地址:容器版本 到天池

核心代码简述

import os
import json
import csv



def read():
#通过csv库读取csv文件并转换成int类型列表
    with open('/tcdata/num_list.csv') as csvfile:
        reader = csv.reader(csvfile)
        rows = [row[0] for row in reader]  #遍历获取第一列的值
        int_list = [int(x) for x in rows]  #将字符串类型列表转换成int类型
        int_list.sort(reverse=True)  #排序
        return int_list


def sum(list, size):
#求和
    if (size == 0):
        return 0
    else:
        return list[size - 1] + sum(list, size - 1)


def save_json():
#将结果存入字典并输出成json文件
    with open('result.json', 'w', encoding='utf-8') as f:
        dit = {'Q1': 'Hello world', 'Q2': sum_number, 'Q3': top10_list}
        json.dump(dit, f, ensure_ascii=False)
        f.close


if __name__ == "__main__":
    list = read()
    sum_number = sum(list, len(list))
    top10_list = list[:10]
    # print(sum_number,top10_list)
    save_json()

附件

GitHubDesktop
Vscode配置jupyter调试工具
代码仓库地址

目录
相关文章
|
23天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
32 1
|
6月前
|
Ubuntu C++ Docker
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
|
2月前
|
Go Docker Python
docker的python与go镜像的制作
docker的python与go镜像的制作
40 1
|
3月前
|
jenkins 持续交付 Docker
docker之自定义制作镜像(python程序)
docker之自定义制作镜像(python程序)
|
3月前
|
Docker Python 容器
python检测docker compose文件是否正确
python检测docker compose文件是否正确
|
4月前
|
运维 数据安全/隐私保护 Docker
深入浅出Python装饰器《Docker容器化技术在运维中的应用与实践》
【8月更文挑战第29天】装饰器在Python中是一个强大而神秘的存在,它能够轻松地改变一个函数的行为而不修改其源代码。本文将通过浅显易懂的语言和生动的比喻,带你一步步揭开装饰器的神秘面纱,从基本概念到实际应用,让你轻松掌握这一魔法般的工具。
|
4月前
|
Docker Python 容器
[docker]封装python的docker镜像
[docker]封装python的docker镜像
|
4月前
|
Docker Python 容器
5 分钟,教你用 Docker 部署一个 Python 应用!
5 分钟,教你用 Docker 部署一个 Python 应用!
|
6月前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
7月前
|
前端开发 Java Docker
【分享】记一次项目迁移(docker java | docker python)
该项目是一个前端Vue3和后端Python+Java的应用,原本部署在CentOS7服务器上通过宝塔面板管理。由于服务器即将到期,计划迁移到另一台使用OpenCloudOS和1Plane的服务器。在尝试构建Docker镜像时,首先为Java应用创建Dockerfile,成功构建并运行。对于Python应用,也创建了Dockerfile,并处理了依赖包的安装。在迁移过程中遇到Java项目加载验证码失败的问题,原因是缺少字体配置。通过在宿主机安装fontconfig并将相关字体文件复制到镜像中解决了问题。最后,前端Vue应用作为静态文件运行,如果使用反代理,需要进行相应配置。
106 1