【腾讯云 Cloud Studio 实战训练营】基于Cloud Studio完成简易通讯录

news2024/9/20 18:36:02

目录

🔆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 = name
        self.gender = gender
        self.age = age
        self.major = major
        self.address = address
        self.phone = phone
        self.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("修改成功!")
            return
    print("未找到该联系人!")

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("删除成功!")
            return
    print("未找到该联系人!")

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("输入有误!")
        return
    for 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🤩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts 柱状图显示百分比

以下是生成的 option option {yAxis: { name: 金额(元), type: value },xAxis: { type: category },legend: {},series: [{stack: x,name: 早餐,label: {normal: {show: true,position: insideRight,// 格式化显示formatter: function (params) {let …

清楚知道谁在划水?伙伴云一招搞定任务交办

伙伴云任务交办让每个职场人都拥有专属的事务汇集地, 让老板一张图把控全局,运筹帷幄, 让员工每天的工作井然有序,让每件事的进展都有始有终、形成闭环。一起来看看吧! 01企业内部任务管理的重要性 对于一家公司或一…

Java泛型的简单认识

泛型的认识 自定义泛型,定义了String类型,随后这个泛型就是String类型 于是他的方法都是字符串的类型 泛型接口 泛型方法 所有车可以进行比赛,定义了一个BMW和BENZ两个车类,都继承car,当使用泛型的 如果你顶一个狗对象…

Centos7 安装tomcat9

去官网下载 数据包 ps: wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.78/bin/apache-tomcat-9.0.78.tar.gz检查Java环境 [tomcatlocalhost bin]$ java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java H…

品牌渠道治理的有效方法

什么是品牌渠道,即品牌的销售渠道,围绕销售渠道做的治理工作,根本上是对低价、窜货的治理,当渠道中存在低价问题,那不管是对经销商还是非授权店铺,都会有不好的影响,经销商会跟价,非…

派森编程软件python好学吗,派森语言python干什么的

大家好,小编来为大家解答以下问题,派森编程软件python有什么用,派森编程软件python好学吗,现在让我们一起来看看吧! 1、python真的值得学吗? 不建议学python的原因: 1、语言性能差 对于C老手…

ACL访问控制列表(红茶三杯CCNA)

ACL的两大主要功能: 1. 流量控制 2. 匹配感兴趣流量ACL分为两类 Standard ACL-标准访问控制列表 只能根据源地址做过滤针对整个协议采取相关动作(允许或禁止) Extended ACL-扩展访问控制列表 能根据源、目的地址、端口号进行过滤能允许或拒…

实验四 汇编语言程序上机过程

五、实验步骤 1、用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为Hello.ASM。将源文件放到Dosbox挂载的目录下面。 图5-1为源码写注释并更改扩展名为Hello.ASM 2、用MASM对源文件进行汇编,产生Hello.OBJ文件和Hello.LST文件。若汇编时提示有错,用文字编辑工具修改源程…

YAPI接口自动鉴权功能部署详解

安装准备 以下操作,默认要求自己部署过yapi,最好是部署过yapi二次开发环境。 无论是选择在线安装或者是本地安装,都需要安装client工具。 1、yapi-cli:npm install yapi-cli –g, 2、安装后将文件夹nodejs/node_gl…

Nexpose v6.6.208 for Linux Windows - 漏洞扫描

Nexpose v6.6.208 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, Release Jul 27, 2023 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.o…

10分钟带你实现一个Android自定义View:带动画的等级经验条

先展示一下静态效果图 介绍一下我们的实现流程: 首先整个经验条有一个圆角边框的背景打底;然后给经验条绘制一条轨道,让用户比较直观地看到总进度的长度;在轨道的上层绘制我们的渐变色经验条;在经验条的上层绘制等级…

vue新学习 02 vue命令v-model,数据代理(作用域和作用域链),事件,监听,渲染,计算属性(也就是把操作属性的语句放到vue实例中)

双向绑定用命令v-model: v-bind的命令是单项去绑定data中的相关属性,此时的data是真正的data,并没有用变量声明的方式去接收vue实例对象,也就是例如用const vm new Vue({})。而是直接就采用了new Vue({})这…

6、Kubernetes核心技术 - Pod

目录 一、概述 二、Pod机制 2.1、共享网络 2.2、共享存储 三、Pod资源清单 四、 Pod 的分类 五、Pod阶段 六、Pod 镜像拉取策略 ImagePullBackOff 七、Pod 资源限制 八、容器重启策略 一、概述 Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。P…

oracle12c静默安装

目录 前言 安装配置步骤 关闭防火墙,禁止防火墙开机自启 关闭selinux yum安装必要安装包 内网环境下载依赖包的方式 创建用户和组 创建oinstall和dba组 创建oracle用户 设置oracle密码 查看创建结果 修改内核参数 使配置生效 修改用户及文件限制 改文件限制 修改用…

ol.Overlay+gif动画及隐藏问题

隐藏要使用css比较彻底,例如$("#markerLbs").hide()。 如果使用markerLbs.setVisible(false),当地图刷新后再次显示,可能我的用法不对,欢迎指教。 我的demo是一个gif动画,当zoom变化时控制gif显隐&#xf…

防汛备汛 | EasyV数字孪生可视化防汛应急解决方案护平安!

一、方案背景 汛期是指季节性降雨增多,河流湖泊水位上涨的时期。当前,我国正式进入“七下八上”防汛关键期,多地进入主汛期。入汛以来,我国经历了18次强降雨过程,21个省份271条河流发生超警以上洪水。其中南方地区受台…

Linux文件和目录的777、755、644权限解释

1.文件权限 在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1 执行(运行) -:对应数值0 数字 4 、2 和 1表示读、写、执行权限 rwx 4 2 1 7 (可读写运行) rw 4 2 6 (可读写不可运行) rx …

vue3+ts+vite项目中使用@时报错:找不到模块,两步教你快速解决

亲爱的小伙伴,如果你也在vue3tsvite项目中使用时报错:找不到模块的话,如下图情况,不要担心,不要害怕,两步教你解决! 1.找到tsconfig.json文件 2.添加如下代码即可 代码如下: "…

SpringMVC中的返回值是什么?

1.谈谈你对SpringMVC的理解 SpringMVC是属于Spring Framework生态里面的一个模块,它是在Servlet的基础上构建并且使用了mvc模式设计的一个Web框架它的主要目的是为了去简化传统的ServletJSP模式下的Web开发方式,其次Spring mvc 的整个架构设计&#xff0…

建木使用进阶-创建密钥管理

阿丹: 第一次我们进入建木,第一件事情就是配置我们相关的密钥。 解读: 在建木中我们可以进行创建密钥来对我们服务器等密码进行方便的管理。 注意: 登录的时候账号为:admin 密码为:123456 这是初始…