阿里云天池 Python训练营Task5:Python训练营测试 学习笔记

一、学习知识点概要

本次是Python训练营的测试,在45分钟内完成25题,满分100分及格80分。题目主要考察Task1到Task3里面的Python基础知识。在我随到的25道题里,知识点有:

  • 变量(包括数据类型和容器类型)
  • 运算符
  • 基本语句
  • 基本方法(包括变量类型的内置方法)
  • 类与对象
  • 函数(包括魔法方法)

二、学习内容

以下图片为我的测试题和我的答案

第一题,在Task1的异常处理中可以知道,可以用raise语句手动抛出一个异常,配合try - except语句可以让代码正常运行。

第二题,考察模块导入和常用模块的内置属性,没什么好说的

第三题,也是考察模块导入。要只导入模块里具体的类的话是用   from 模块 import 类名   的方式导入,D选项反了。

第四题,考察基本内置方法,type(obj)用于查看obj的数据类型

 

第五题,考察函数和循环语句。for循环中,in后面跟的是一个可迭代对象,题中为形参numbers。ABC三个选项中传入的参数分别是列表、字符串、元组,都是可迭代的对象,而D选项传入的参数1234是数值型,不是可迭代对象。

第六题,可以用id()查看是不是同一个内存地址。AB选项是通过分别赋值产生的,生成的分别是列表和整型数据,其在内存开辟了不同的空间,内部指向的是相同的内存地址。C虽然也是分别赋值产生,但是C生成的是字符串,这样使得s1与s2是同一个内存地址。D选项产生的是整形数据,而不是元组。

第七题,final在Java中用于表示类不能被继承。但在Python中并没有final关键字。

第八题,要注意Python是严格按照缩进分语句块的,这样print("Hello"*2)是属于myfun()函数内部的代码。虽然调用时已经pass了中间部分,但是还是会执行print("Hello"*2)。*号是容器类型表示重复的符号,于是就输出了HelloHello

第九题,考察变量和运算符的使用。第一个部分x>=y易知结果为True;而第二部分ch<'b'是字符串的比较,单个字符比较的是其ASCII码值,大写字母的ASCII码值比小写字母的小,于是ch<'b'的结果也是True;第三部分是y,y=1,这样整个运算式就可以表示为True and True and 1。在布尔变量和逻辑运算的学习中可知,当布尔变量参与数字运算时由0代表False,1代表True。True and True and 1运算至下一步变为True and 1,由于数字1在and后面,返回值为数值,于是运算结果为1。

第十题,考察基本类型的内置函数。列表的append()函数是将参数当成一个整体添加至列表的末尾,列表长度总是+1的,于是输出列表的长度是5。

第十一题,break语句用于跳出循环,如果不在循环体内使用的话会报错。

第十二题,计算机基本原理,没什么好说的。

第十三题,Python中若变量不先创建和赋值就使用会报错。

第十四题,若用try - except语句,抛出的异常被except语句拦截就不会终止程序。

第十五题,字典中的键只能用不可变类型充当,C选项中的键是列表,列表是可变类型。

第十六题,容器类型的切片操作。s是字符串,s[::2]表示选取s从第一个字符开始,每隔两步(即一个字符)选取一次,最后选取结果是'aceg'。

第十七题,考察的是类与对象。要注意的是,当通过对象调用方法时,会向方法传入自身这个参数,如果方法定义时没有self这个参数,则只能通过类名调用。题目中D类所拥有的a(),b(),c(),方法均没有参数,不能通过对象调用。

第十八题,在类里定义了实例化方法__init__(),在每次创建对象时会自动调用,如果创建对象时没有参数传给name,则会出错。而定义的showInfo()方法只有self一个参数,当通过对象调用时会将自身传给self,因此通过对象调用该函数时无需再添加参数。

不过我在做这题时本来是选择了C选项,但是到交卷的时候这题就变成了D选项,导致我这题错了。不知道是系统的问题还是在我点下一题之前点错了。

第十九题,主要考察作用域。global关键字将函数内的counter声明为全局变量,于是调用函数doLotsOfStuff()时会对第一句声明的counter产生影响。

第二十题,考察类与对象。实例方法是和对象密切相关的,每个对象调用的结果可能不一样,必须指定一个对象作为参数才能调用,所以实例方法必须在创建对象后才可以调用,B错误。

第二十一题,正确选项是AC。这题有点没搞懂,我不知道是不是出题人不小心把self打成了sef。如果写的是self的话,应该是可以实例化,然后再在类外给  对象.x  赋值的话是可以正常通过对象调用的。但如果写的就是sef的话,showInfo()方法内的self.x中的self就不会被认为是self指针了,所以pycharm会说self没有定义,类的定义中出现语法错误,也就不可以实例化了。

第二十二题,考察魔法方法。魔法方法是内置的方法,可以通过在类中重写增加新的行为,但是并不表示如果类中不定义的话就没有任何方法,类中是即包含__dir__()也包含__hash__()的。

第二十三题,考察字符串类的内置方法。count()方法就是用于统计字符串中某个子字符串的出现次数。而find()方法和index()方法类似,都是查找子字符串的位置,如果找到就返回索引值,但是如果没有找到子字符串,find()会返回-1,index()会报错,选项BC是反了。

第二十四题,考察Python基本语法。A选项是用了三目运算符,是正确的。而B中的?在Python中没有定义。C选项中,如果用不是三目运算符的话,if(condition)后面要跟冒号,并且换行缩进,x放在print()小括号里面作为参数,这样才符合Python语法。D选项的语法是正确的,不过While循环体用Pass的话会无法跳出循环,程序会一直运行下去。

第二十五题。A选项中每次循环都会输出两个数字,最终输出结果是0,1,1,2,2,3。B选项明显正确。C选项只输出1,2,因为当i=3时 i<3的结果是False,会跳出循环,没有输出3。D选项也是正确的,range(3)生成包含0,1,2 三个数字的可迭代对象,输出时用print(i+1)是正确的。

最终我由于十八题和二十一题两题错误,获得了92分。

三、学习问题与解答

本次测验的题目只考Task1~Task3里的内容,都是Python里很基础的东西。第十八题我一开始是选C的,可能是我在点下一题的时候不小心点错更改了一次选项选到D导致错误。而二十一题也是被题目诱导了,再加之我没有用过pycharm,之前一直用IDEL进行学习。发现二十一题写错之后我下载了pycharm编辑器试了题目的代码,才知道是怎么回事。

四、学习思考与总结

Python训练营差不多就要结束了,学习了很多Python的基础内容。测验测的都是Python基础,也顺利通过了,以后要提升还得继续学习Python的进阶内容,例如Task4里的东西。用了一会pycharm发现这个比IDEL要好用得多,以后还是用pycharm进行学习好了🤣

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

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

相关文章

centos7安装oracle12c 三

场景描述&#xff1a;我在自己电脑的虚拟机上linux环境下安装oracle11g数据库。 Linux版本为&#xff1a;CentOS release 6.8 (Final)&#xff0c;Oracle版本为&#xff1a;linux.x64_11gR2 问题描述&#xff1a;在oracle安装到Prerequisite Checks这一步的时候&#xff0c;出现…

《属性数据分析引论》 部分课后习题R语言实践(第三章、第四章)

目录 前言 第三章 广义线性模型 习题3.18 a小题 b小题 c小题 d小题 习题3.19 a小题 b小题 c小题 第四章 Logistic回归 习题4.1 a小题 b小题 c小题 d小题 e小题 习题4.2 a小题 b小题 c小题 d小题 小结 前言 习题选自高等教育出版社译制&#xff0c;Alan A…

Linux下SVN搭建

在Linux系统中搭建svn服务所需要用到的软件叫做subversion&#xff0c;可以通过yum来进行安装&#xff0c;如图 安装好软件后第一件事就是创建一个仓库目录 [rootserver1 ~]# mkdir /svn 使用svn自带命令建立仓库 [rootserver1 ~]# svnadmin create /svn 进入该仓库&#xff0c…

可用于 线性判别、聚类分析 的R语言函数总结

一、判别分析 判别分析是一种分类技术&#xff0c;其通过一个已知类别的“训练样本”来建立判别准则&#xff0c;并通过预测变量来为未知类别的数据进行分类。根据判别的模型分为线性判别和非线性判别&#xff0c;线性判别中根据判别准则又分为Fisher判别&#xff0c;Bayes判别…

Android APK 打包过程 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comAndroid APK 打包流程 MD 目录 目录APK 的打包流程整体流程资源的编译和打包资源ID资源索引概况具体打包过程aapt阶段aidl阶段Java Compiler阶段dex阶段a…

可用于 主成分分析、R型因子分析、简单相应分析 的R语言函数总结

一、主成分分析 主成分分析是多元统计分析的一种常用的降维方法&#xff0c;它以尽量少的信息损失&#xff0c;最大程度将变量个数减少&#xff0c;且彼此间互不相关。提取出来的新变量成为主成分&#xff0c;主成分是原始变量的线性组合。 1.1 KMO检验和Bartlett球形检验 在…

持续集成之Jenkins安装部署

安装JDKJenkins是Java编写的&#xff0c;所以需要先安装JDK&#xff0c;这里采用yum安装&#xff0c;如果对版本有需求&#xff0c;可以直接在Oracle官网下载JDK。 [rootlinux-node1 ~]# yum install -y java-1.8.0 安装Jekins [rootlinux-node1 ~]# cd /etc/yum.repos.d/ […

jenkins svn tomcat ant自动部署

Jenkins Jenkins是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;功能包括&#xff1a; 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。 跟其他持续集成相比&#xff0c;它的主要优点有&#xff1a; 开源&#xff0c;即免…

553 mail from must equal authorized user解决方法

在配置发送邮件通知&#xff0c;验证其正确性时&#xff0c;出现"553 mail from must equal authorized user"提示的错误&#xff1b; 原因在于没有在"系统管理&#xff08;Manage Jenkins&#xff09;"的"系统设置&#xff08;Configure system&…

[Apple开发者帐户帮助]八、管理档案(2)创建临时配置文件(iOS,tvOS,watchOS)...

创建临时配置文件以在设备上运行您的应用程序而无需Xcode。在开始之前&#xff0c;您需要一个App ID&#xff0c;一个分发证书和多个注册设备。 有关完整的临时配置文件工作流程&#xff0c;请转到Xcode帮助中的分发到已注册设备&#xff08;iOS&#xff0c;tvOS&#xff0c;wa…

解决做好一个机器学习项目的3个问题

机器学习是目前人工智能最令人激动的研究方向之一。我们可能更关注机器学习算法的实现细节&#xff0c;沉浸于机器学习所需要的数学功底&#xff0c;但对于机器学习从业者来说&#xff0c;如何更好更快速的实现一个机器学习项目更值得关注。 正如吴恩达在《机器学习》这门课中所…

[币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏

阅读本文前&#xff0c;你应该对以太坊、智能合约有所了解&#xff0c;如果你还不了解&#xff0c;建议你先看以太坊是什么 除此之外&#xff0c;你最好还了解一些HTML及JavaScript知识。 本文通过实例教大家来开发去中心化应用&#xff0c;应用效果如图: 项目背景 Pete有一个…

怎么通俗易懂地解释贝叶斯网络和它的应用?

作者&#xff1a;小杰链接&#xff1a;https://www.zhihu.com/question/28006799/answer/38996563来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。英语原文&#xff1a;http://www.norsys.com/tutorials/netica/secA/tut…

SVM分类算法的基本理论问题

1.引言   随着网络技术的飞速发展和普及&#xff0c;进入了信息大爆炸的时代。信息无处不在&#xff0c;给我们的学习生活带来了诸多便捷&#xff0c;由于堪称海量的信息量&#xff0c;我们从中获取有用的信息变得困难&#xff0c;解决这一难题就是要对这些大量的信息进行分…

决策树案例理解

小王是一家著名高尔夫俱乐部的经理。但是他被雇员数量问题搞得心情十分不好。某些天好像所有人都來玩高尔夫&#xff0c;以至于所有员工都忙的团团转还是应付不过来&#xff0c;而有些天不知道什么原因却一个人也不来&#xff0c;俱乐部为雇员数量浪费了不少资金。 小王的目的是…

剑指offer-反转链表

反转链表 一、题目描述 输入一个链表&#xff0c;反转链表后&#xff0c;输出新链表的表头。 &#xff08;看过答案和测试之后&#xff0c;题目隐藏条件是要求链表是不带头结点的&#xff09; 二、题目思路 就是用三个指针&#xff0c;head、pre、next&#xff0c;head之前都是…

从决策树学习谈到贝叶斯分类算法、EM、HMM

引言 最近在面试中(点击查看&#xff1a;我的个人简历&#xff0c;求职意向&#xff0c;择司标准)&#xff0c;除了基础 & 算法 & 项目之外&#xff0c;经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然&#xff0c;这完全不代表你将来的面试中会遇…

计算机网络与协议

计算机网络&#xff1a; TCP/IP中只要是能够设定IP地址的计算机就成为主机 网络按其规模可分为&#xff1a; WAN&#xff08;广域网&#xff09;&#xff1a;覆盖多个远距离区域的远程网络 MAN&#xff08;城域网&#xff09;&#xff1a;比广域网小一级&#xff0c;连接整个城…

对线性回归、逻辑回归、各种回归的概念学习

回归问题的条件/前提&#xff1a; 1&#xff09; 收集的数据 2&#xff09; 假设的模型&#xff0c;即一个函数&#xff0c;这个函数里含有未知的参数&#xff0c;通过学习&#xff0c;可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归 假设 特征 和 结果 都…

XGBoost入门及实战

kaggle比赛必备算法XGBoost入门及实战 xgboost一直在kaggle竞赛江湖里被传为神器&#xff0c;它在对结构化数据的应用占据主导地位&#xff0c;是目前开源的最快最好的工具包&#xff0c;与常见的工具包算法相比速度提高了10倍以上&#xff01; XGBoost is an implementation o…