阿里云天池 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;出现…

mysql删除一条记录

mysql如何删除一条记录delete from 表名 where 条件实例&#xff1a;use db1delete from tb1 where id 1; 转载于:https://www.cnblogs.com/effortsing/p/10393229.html

HBase体系结构

HBase HBase是Apache Hadoop的数据库&#xff0c;基于HDFS文件系统 random,realtime read/write access to Big Data 开源、分布式、可扩展、面向列 larger tables--billions of rows X millions of columns 不支持表链接操作 不支持事务处理 HBase存储的数据从逻辑上来…

《属性数据分析引论》 部分课后习题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…

HBase模式设计

HBase的使用是为了解决或优化某一问题 恰当的设计模式可以使其具有HBase本身所不具有的功能&#xff0c;并且使其执行效率得到成百上千倍的提高 在进行HBase数据库模式设计的时候&#xff0c;不当的设置可能对系统的性能产生不良的影响 需要注意&#xff1a; 1、列族的数量及…

C++STL特殊容器priority_queue

在了解priority_queue&#xff08;优先队列&#xff09;前&#xff0c;可以先去瞅瞅queue&#xff0c;下面是传送门啦>——< 传送门 priority_queue的基本性能 class priority_queue<>实现出一个queue&#xff0c;只不过其中的元素依照优先级被读取。priority_queu…

可用于多元正态的参数估计 及 均值向量和协差阵检验 的R语言函数总结

一、多元正态的参数估计 1.1 样本均值 在R语言中&#xff0c;均值通常用函数mean()得到&#xff0c;但是mean()只能计算一维变量的样本均值&#xff0c;在面对多元随机变量的样本时&#xff0c;假设我们以数据框的形式保存样本&#xff0c;我们有以下方法可以得到样本均值&…

30秒的PHP代码片段-MATH

本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合&#xff0c;您可以在30秒或更短的时间内理解这些片段。数学函数 average 返回两个或多个数字的平均值。 function average(...$items) { $count count($items); return $count 0 ? 0 : array_sum(…

Hive简介

Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的 是建立在Hadoop上的数据仓库基础架构 作为Hadoop的一个数据仓库工具&#xff0c;Hive可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的SQL查询功能 Hive作为数…

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

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

Linux 环境下搭建 Jenkins(Hudson)平台

安装jenkins&#xff1a;安装 jenkins 有两种方式&#xff1a;安装方式一&#xff1a; [java] view plaincopysudo java -jar jenkins.war –httpPort18080 –ajp13Port18009 但是很多时候我们是使用SSH方式到目标机器上的&#xff0c;放我们关闭SSH连接时&#xff0c;这个命…

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球形检验 在…

[国家集训队]墨墨的等式

Description 墨墨突然对等式很感兴趣&#xff0c;他正在研究a1x1a2y2…anxnB存在非负整数解的条件&#xff0c;他要求你编写一个程序&#xff0c;给定N、{an}、以及B的取值范围&#xff0c;求出有多少B可以使等式存在非负整数解。 Input 输入的第一行包含3个正整数&#xff0c;…

Storm简介

Storm是实时流式数据处理框架&#xff0c;支持多种编程语言 应用案例&#xff1a; realtime analytics online machine learning continuous computation distributed RPC ETL 性能&#xff1a;a million tuples per second per node 可扩展、高容错 结合消息队列和数据库…

持续集成之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/ […

2019/2/18 Python今日收获

Python day15——032&#xff0c;033异常处理&#xff1a;你不可能总是对的 1. Python标准异常总结AssertionError断言语句&#xff08;assert&#xff09;失败AttributeError尝试访问未知的对象属性EOFError用户输入文件末尾标志EOF&#xff08;Ctrld&#xff09;FloatingPoin…

Shell01

shell是一个命令解释器&#xff0c;是操作系统的最外层。 把用户的输入解释给操作系统&#xff0c;将操作系统的输入结果返回给用户。 硬件-->kernel-->shell-->外围应用程序 shell脚本&#xff1a;将命令或语句写入文件&#xff0c;进行操作系统管理。 shell脚本…

jenkins svn tomcat ant自动部署

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