当前位置: 首页 > news >正文

【腾讯云 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的版本&#xf…...

基于高斯混合模型聚类的风电场短期功率预测方法(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…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...