【腾讯云 Cloud Studio 实战训练营】基于Cloud Studio完成简易通讯录
目录
🔆Cloud Studio
简介
操作步骤
1.登录
2.创建工作空间
3.初始界面
4.开发空间
5.保存自定义模板
🔆简易通讯录
1.实验要求
2.操作环境
3.源代码介绍
3.1 定义通讯录类
3.2 定义通讯录列表
3.3 添加联系人功能
3.4 修改联系人
3.5 删除联系人记录
3.6 查询联系人
3.7 保存联系人
3.8 将联系人排序
4.实验结果与分析
🔆总结
🔆Cloud Studio
简介
Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能在线编程。Cloud Studio 作为在线 IDE,包含代码高亮、自动补全、Git 集成、终端等 IDE 的基础功能,同时支持实时调试、插件扩展等,可以帮助开发者快速完成各种应用的开发、编译与部署工作。
详细信息请参考官方文档,点击这里哦:Cloud Studio(云端 IDE)简介 | Cloud Studio
操作步骤
1.登录
Cloud Studio 在线编程平台支持使用CODING账号和 GitHub 账号登录,可以在登录 (opens new window)界面输入相应的账号登录前往 Web IDE。
推荐使用第一种登陆方式,省时省力,这是它的网址:CODING
2.创建工作空间
目前可用模板非常全面,分为:常用模板、框架模板、建站模板以及云原生模板。本次实验中,我选择的是python模板,直接点击即用,免安装!而且标准版每个有3000分钟的免费时长哦。
进入 Cloud Studio 云端 IDE,可以通过两种方式创建工作空间,第一种方式:点击模板直接创建工作空间,第二种方式:单击【新建工作空间】,进入工作空间创建页面。
- 第一种方式点击模板创建工作空间,可自动生成工作空间名称,并运行模板的预置环境及样本代码。
- 第二种方式创建工作空间需要选择预置环境,填写工作空间名、描述,并选择运行环境和代码来源。
3.初始界面
工作空间是我们主要的工作区域,主要由顶部菜单栏、左侧操作面板、右侧代码编辑区和底部状态栏组成。您可以根据自己的习惯设置界面外观、偏好,安装自己需要的插件。
4.开发空间
点击左上角的按钮,这里有全部空间和近期删除。我我,当我们关闭当前工作空间时,可以在下面这个地方找到,并且接着编辑,数据不会丢失,不过工作空间需要手动关闭,仅仅将页面叉掉是不算的(对于处在“运行中”状态的工作空间,单击卡片右边的【停止】,就可以停止运行该工作空间)。
在全部空间的右侧还有一个近期删除,为了防止误删除,已删除的工作空间会展示在下方“已删除的工作空间”列表中,保留24小时。在此之前您可以随时单击【恢复】,还原您的工作空间,超过 24 小时未恢复的工作空间将被永远销毁。
5.保存自定义模板
点击功能栏中的“文件”,在下拉选项中选择“发布自定义模板”;
右侧布局窗口中会自动打开新标签页,可以选择您心仪的图标和标签,以及填写您模板的描述;点击“完成”即可发布您的自定义模板。
完成后我们就可以通过链接的方式,将自己的代码分享给别人啦,这样对方就可以接着已经编好的程序继续编写啦,相当的方便。
综上,就是Cloud Studio基本的操作步骤啦!
🔆简易通讯录
1.实验要求
以本班同学的具体数据为背景,设计一个本班同学的通讯录,通讯录中至少要包含姓名、性别、年龄、专业、地址、电话、E-mail信息。
通讯录要求实现以下功能:
(1)通讯录可以添加、修改和删除记录;
(2)通讯录可以按照不同项目进行查找;
(3)对已存在的通讯录可以按照不同的项目排序;
(4)可以把通讯录中的信息保存到文件中;
2.操作环境
- Python 3.11.1
- Cloud Studio
- 内核 CPU:2核
- 内存 RAM:4GB
- 存储 SSD:8GB
3.源代码介绍
3.1 定义通讯录类
定义__init__方法,其中一共有七个属性:name, gender, age, major, address, phone, email(姓名/性别/年龄/专业/地址/电话/邮箱)。
class Contact:def __init__(self, name, gender, age, major, address, phone, email):self.name = nameself.gender = genderself.age = ageself.major = majorself.address = addressself.phone = phoneself.email = email
3.2 定义通讯录列表
contact_list = []
3.3 添加联系人功能
这个列表不能直接print ,可以这么干:
for contact in contact_list:
print(contact.name, contact.gender, contact.age, contact.major, contact.address, contact.phone, contact.email)
def add_contact():name = input("请输入姓名:")gender = input("请输入性别:")age = input("请输入年龄:")major = input("请输入专业:")address = input("请输入地址:")phone = input("请输入电话:")email = input("请输入邮箱:")contact = Contact(name, gender, age, major, address, phone, email)contact_list.append(contact)print("添加成功!")
3.4 修改联系人
def modify_contact():name = input("请输入要修改的联系人姓名:")for contact in contact_list:if contact.name == name:contact.gender = input("请输入新的性别:")contact.age = input("请输入新的年龄:")contact.major = input("请输入新的专业:")contact.address = input("请输入新的地址:")contact.phone = input("请输入新的电话:")contact.email = input("请输入新的邮箱:")print("修改成功!")returnprint("未找到该联系人!")
3.5 删除联系人记录
remove():删除指定元素
格式:List_name.remove(想要删除的东西)
如果列表中有相同的元素,就删除第一个出现的元素
删除联系人后要选择保存,才能删除文件中的内容。
def delete_contact():name = input("请输入要删除的联系人姓名:")for contact in contact_list:if contact.name == name:contact_list.remove(contact)print("删除成功!")returnprint("未找到该联系人!")
3.6 查询联系人
append()函数在列表末端增加元素
格式:List_name.append('新增元素‘)
列表A.append(列表B)
def search_contact():search_type = input("请输入要查找的项目(姓名/性别/年龄/专业/地址/电话/邮箱):")keyword = input("请输入关键字:")result = []for contact in contact_list:if search_type == "姓名" and contact.name == keyword:result.append(contact)elif search_type == "性别" and contact.gender == keyword:result.append(contact)elif search_type == "年龄" and contact.age == keyword:result.append(contact)elif search_type == "专业" and contact.major == keyword:result.append(contact)elif search_type == "地址" and contact.address == keyword:result.append(contact)elif search_type == "电话" and contact.phone == keyword:result.append(contact)elif search_type == "邮箱" and contact.email == keyword:result.append(contact)if len(result) == 0:print("未找到符合条件的联系人!")else:for contact in result:print("姓名:{},性别:{},年龄:{},专业:{},地址:{},电话:{},邮箱:{}".format(contact.name, contact.gender, contact.age, contact.major, contact.address, contact.phone, contact.email))
3.7 保存联系人
定义save_contact函数,通过打开“contact.txt”文件,依次将信息写入。
def save_contact():with open("contact.txt", "w") as f:for contact in contact_list:f.write("{},{},{},{},{},{},{}\n".format(contact.name, contact.gender, contact.age, contact.major, contact.address, contact.phone, contact.email))print("保存成功!")
3.8 将联系人排序
这部分将排序后的信息并没有写入文件,但是可以通过选择保存联系人后,将排序好的信息写入文件中。
def sort_contact():sort_type = input("请输入要排序的项目(姓名/性别/年龄/专业/地址/电话/邮箱):")if sort_type == "姓名":contact_list.sort(key=lambda contact: contact.name)elif sort_type == "性别":contact_list.sort(key=lambda contact: contact.gender)elif sort_type == "年龄":contact_list.sort(key=lambda contact: contact.age)elif sort_type == "专业":contact_list.sort(key=lambda contact: contact.major)elif sort_type == "地址":contact_list.sort(key=lambda contact: contact.address)elif sort_type == "电话":contact_list.sort(key=lambda contact: contact.phone)elif sort_type == "邮箱":contact_list.sort(key=lambda contact: contact.email)else:print("输入有误!")returnfor contact in contact_list:print("姓名:{},性别:{},年龄:{},专业:{},地址:{},电话:{},邮箱:{}".format(contact.name, contact.gender, contact.age, contact.major, contact.address, contact.phone, contact.email))
4.实验结果与分析
添加并保存联系人:
按名称排序:
剩下的功能我就不一一验证了,简易通讯录的代码实现,包括添加、修改、删除、查找、排序联系人以及保存联系人等功能。代码实现的基本思路是定义一个通讯录类,然后通过列表进行增删改查和排序等操作,并且可以将通讯录内容保存到文件中。
在代码实现上,对于用户输入的数据进行了简单的校验,保证了数据的有效性和安全性。同时,可以根据不同的项目进行查找和排序,提高了实用性。但是这个代码的健壮性不够好,堪堪能应付一下大学生课设。
总之,这个通讯录管理系统是一个简单的项目,但是可以帮助开发者熟悉Python的基本语法和面向对象的编程思想。其实现也可以作为其他项目的基础框架,对于初学者来说是一个不错的学习资源。
🔆总结
通过体验Cloud Studio编写代码体验良好,尤其是线上编辑器这点我是非常喜欢的,因为我的电脑比较小,平时装的一些东西就已经很多了。操作界面类似VS Code,可以按照平时的习惯来操作,省着去适应一个新的IDE。
对我来说,最大的好处就是比如我要学习什么语言学习什么框架的话,不用在本地搭建各种开发环境,从而把自己的电脑搞得也许装了很多开发环境,但是用的却没多少个(比如说我的那个Java,就上了一学期的课,以后就再也没有用过了...),同时比如不同语言或者相同语言不同版本之间又会出现一些配置问题,导致自己的开发环境受到污染;这个时候云IDE很好的解决了这个问题,想学什么想练什么语言的代码,一键启动即可。但是在使用的过程中,我想要输出一个折线图并没有成功,以及其他的输出图像的方式也没输出出来。
运行速度方面也是可以的,对于我这个简易通讯录来说,运行起来嗖嗖滴,没有卡顿,要是有更高的需求还可以升级下套餐,配置会更高,有标准型、计算型和专业型三种,满足了我的各种需求😀。
今天我受到一个大佬的启发,我完全可以在平板上编辑程序呀,省着拿着电脑了,原来在平板上用的是python编辑器(是一个软件),体验并不是很好,只要一切换软件,程序就停止运行(已经允许它后台了)。以后要是懒得背电脑了,直接就用云IDE🤩。
相关文章:

【腾讯云 Cloud Studio 实战训练营】基于Cloud Studio完成简易通讯录
目录 🔆Cloud Studio 简介 操作步骤 1.登录 2.创建工作空间 3.初始界面 4.开发空间 5.保存自定义模板 🔆简易通讯录 1.实验要求 2.操作环境 3.源代码介绍 3.1 定义通讯录类 3.2 定义通讯录列表 3.3 添加联系人功能 3.4 修改联系人 3.5 …...

【技术积累】Vue.js中的核心知识
Vue的生命周期 Vue中的生命周期是指组件从创建到销毁的整个过程中,会触发一系列的钩子函数 Vue2中的生命周期 Vue2中的生命周期钩子函数是在组件的不同阶段执行的特定函数。这些钩子函数允许开发者在组件的不同生命周期阶段执行自定义的逻辑。 Vue2中的生命周期钩…...

flutter开发实战-显示本地图片网络图片及缓存目录图片
flutter开发实战-显示本地图片网络图片及缓存目录图片 在最近开发中碰到了需要显示缓存目录图片,这里顺便整理一下,显示本地图片、网络图片、缓存目录图片的方法。 一、工程本地图片显示 1 在项目根目录下创建名为 images文件夹,也可以将i…...

面对未来的算法备案法规:企业需要做哪些准备?
在信息时代,算法已经成为我们生活的一部分,涵盖了诸如搜索引擎、社交媒体、电子商务、广告投放等各个方面。然而,随着算法的广泛应用,其带来的问题也日益凸显。这引发了全球范围内的关注,未来的算法备案法规正在酝酿之…...

iptables的备份和还原
iptables的备份和还原 1、写在命令行当中的都是临时设置 2、把规则配置写在服务的文件当中,形成永久有效 备份:把iptables里面所有的配置都保存在/opt/ky30.bak中 iptables-save > /opt/ky30.bak 例: 默认配置文件在/etc/sysconfig/ip…...

easyUI框架学习
文章目录 一、前言二、引入使用easyUI 三、用法3.1 Dialog(对话框窗口)3.1.1 示例13.1.2 示例2 3.2 Layout(布局)3.2.1 示例1——通过标签创建布局3.2.2 示例2—— 创建嵌套布局 3.3 DateBox(日期输入框)3.…...

加入气压计模组,星斗3号将实现快速三维定位
随着信息技术的飞速发展,人们的生活正在发生巨大改变,人们对基于位置服务的需求越来越迫切,尤其是室内位置服务。 室外定位系统中BDS系统、GPS系统等受室内复杂环境条件限制精度大幅下降甚至失效,难以在室内定位中发挥作用,而室内二维定位技术缺乏高程信息,也难以满足人们对室…...

华为HCIP第二节-------------------------ISIS
IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO (International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNetwork Protocol&…...

在Mac系统下搭建Selenium环境并驱动Chrome浏览器
本文带领那些使用Mac的童鞋们实现Selenium驱动Chrome浏览器,虽然会有坑,但是我们可以凭借敏捷的身手躲过。下面就开始吧: 安装selenium 打开终端 ->pip安装(安装命令:pip3 install selenium) 安装浏览…...

通过RPM方式安装,升级,卸载,以及配置使用MySQL
通过RPM方式安装,升级,卸载,以及配置使用MySQL 一、下载 MySQL是一种开源的关系数据库管理系统,被广泛应用于各种业务应用中。本文将讲解如何下载和安装MySQL的rpm安装包。 下载rmp安装包有多种方式: 1、官网下载 …...

六边形架构和分层架构的区别?
六边形架构和分层架构是什么? 六边形架构(Hexagonal Architecture)和分层架构(Layered Architecture)是两种常见的软件架构模式。六边形架构强调将核心业务逻辑与外部依赖解耦,通过接口与外部世界进行通信。…...

一封来自Java学姐的信
黑马JavaEE学科学姐想对学弟学妹们说:勤学如春起之苗,不见其增,日有所长。 辍学如磨刀之石,不见其损,日有所亏。 学科 | JavaEE 校区 | 太原 亲爱的学弟学妹们,在学校“混日子”的时间很快就过去了&…...

Mybatis增强版MyBatis-Flex简介
Mybatis增强版:Mybatis-Plus(使用的最多,老牌Mybatis增强框架,2016年开源)、Fluent-MyBatis(阿里云开发的Mybatis增强框架,来自阿里云.云效产品团队)、Mybatis-Flex。 Flex英文单词意思是灵活,Mybatis-Flex官方文档中多…...

MFC第二十一天 CS架构多页面开发与数据交互、CImageList图像列表介绍 、CListCtrl-SetItem设置列表项的方法
文章目录 CImageList图像列表介绍CListCtrl图标的原理CListCtrl列表图标设置CListCtrl-SetItem设置列表项的方法 CS架构多页面开发与数据交互添加用户实现向导多页数据交互pch.hCLientXq.h CAppCPage1.hCPage1.cppCPage2.hCPage2.cppCWorkerDlg .hCWorkerDlg.cpp 多页数据修改C…...

spring boot--自动化注入组件原理、内嵌tomcat-1
前言 我们知道开发spring boot项目,在启动类上添加注解SpringBootApplication ,然后引入要自动注入的组件依赖,然后现application.properties中加上相应配置就可以自动注入这个组件,那么下面看看自动注入组件是如何实现的 一、S…...

短视频矩阵系统源码---开发技术源码能力
短视频矩阵系统开发涉及到多个领域的技术,包括视频编解码技术、大数据处理技术、音视频传输技术、电子商务及支付技术等。因此,短视频矩阵系统开发人员需要具备扎实的计算机基础知识、出色的编程能力、熟练掌握多种开发工具和框架,并掌握音视…...

可观测之调用链Skywalking
简介 分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。 多种监控手段。可以通过语言探针和 service mesh 获得监控…...

linux上适用的反汇编调试软件(对标od)
ubuntu下类似于od软件 经过搜索,在Ubuntu上选用edb-debugger进行动态调试, 下载链接: https://github.com/eteran/edb-debugger 但是依赖反汇编引擎: https://github.com/capstone-engine/capstone 安装 先安装capstone 先下载release的版本…...

基于高斯混合模型聚类的风电场短期功率预测方法(Pythonmatlab代码实现)
目录 💥1 概述 📚2 运行结果 2.1 Python 2.2 Matlab 🎉3 参考文献 🌈4 Matlab代码、数据、文章讲解 💥1 概述 文献来源: 摘要:对任意来流条件下的风电场发电功率进行准确预测,是提高电网对风电…...

【深入了解pytorch】PyTorch循环神经网络(RNN)
【深入了解pytorch】PyTorch循环神经网络(RNN) PyTorch循环神经网络(RNN):概念、工作原理与常见变体循环神经网络概念和工作原理RNN的结构RNN的工作原理LSTM(长短期记忆网络)LSTM的结构LSTM的工作原理GRU(门控循环单元)GRU的结构GRU的工作原理在PyTorch中实现RNN、LST…...

电商运营的方法
1、以后干,不如现在干 1.1 做代理,搞研发 1.2 自建店铺,去看其他店铺的设计样板 1.3 记住网店挣钱三要点:装修,物流,产品资源 1.4 记住你的职责,让别人明白怎么做,仔细看资料,搞清楚细节 2、如何打开机器人 3.设置自动回复 Ctrl + tab 4.如何做基础销量,做一个刷…...

Swift 如何确定 scrollView 已经滑动结束
在 iOS 的 UIScrollView 中,你可以通过实现 UIScrollViewDelegate 的方法来检测滑动结束事件。具体来说,你可以实现以下方法: func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {if !decelerat…...

html学习2(css、图像)
1、层叠样式表css是为了更好的渲染html元素而引入的。 2、css添加到html的方式,最好的方式是通过外部引用CSS文件 内联样式- 在HTML元素中使用"style" 属性,当特殊的样式需要应用到个别元素时,就可以使用内联样式。 使用内联样式…...

微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka
1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntuvim redis.conf bind 0.0.0.0 protected-mode yes port 6379 requirepass qwe123456 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no pidfile /var/run/r…...

Microsoft todo 数据导出
文章目录 官方说明: https://support.microsoft.com/zh-cn/office/导出您的-microsoft-待办事项帐户-d286b243-affb-4db4-addc-162e16588943 由于 微软待办 会自动与 Outlook 中的任务同步,因此您可以从 Outlook 中导出所有列表和任务。 若要导出列表和…...

SSIS对SQL Server向Mysql数据转发表数据 (二)
1、在SQL Server数据库创建一个数据库表:users USE [Test1] GO/****** Object: Table [dbo].[users] Script Date: 2023/7/27 16:25:11 ******/ SET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOCREATE TABLE [dbo].[users]([id] [int] IDENTITY(1,1) NOT NUL…...

【Vue3】reactive 直接赋值会导致 Vue 无法正确地监听到属性的变化,从而无法触发视图更新
在 Vue 中,响应式数据的监听和视图更新是通过 Vue 的响应式系统实现的。Vue 3 使用了 Proxy 对象来实现响应式,而 Vue 2 使用了 Object.defineProperty 来实现。 当我们使用 reactive 函数创建响应式对象时,Vue 会将对象的每个属性转换为响应…...

服务器出现丢包的原因103.88.35.x
网站主要目的是达到企业和客户紧密联系,提升客户对企业形象的认知度的效果,若租用的服务器不稳定,不仅影响网站的运行,对于网站搜索引擎优化以及用户体验等也有很大的影响。下面是服务器出现丢包不稳定的原因,一起来看…...

pytest study
pytest 测试用例的识别与运行 测试文件:test_*.py 和 *_test.py 以test开头或结尾的文件 测试用例:Test*类包含的所有 test_*的方法(测试类不能带有__init__方法), 不在class中的所有test_*的方法 def func(x):r…...

0基础学习VR全景平台篇 第73篇:VR直播-如何自定义邀请二维码(直播邀请)
自定义直播邀请二维码是自定义直播间邀请卡上显示的二维码,若上传,那么便会替换掉邀请卡上原有的二维码,原二维码为本场直播活动的二维码。 建议上传的尺寸为300px*300px,可选择开启二维码的弹出效果,开启后࿰…...