语言特性

1.谈谈对 Python 和其他语言的区别

语言特点:简洁、优雅,省略了各种大括号和分号,还有一些关键字,类型说明;

语言类型:解释型语言,运行的时候是一行一行的解释,并运行,所以调试代码很方便,开发效率很高;

第三方库:python是开源的,并且python的定位时任由其发展,应用领域很多比如Web,运维,自动化测试,爬虫,数据分析,人工智能。Python具有非常完备的第三方库;

Python和Java相比

Python比Java要简单。Python是函数为一等公民的语言,而Java是类为一等公民的语言。Python是弱类型语言,而Java是强类型语言.;

Python和C相比

对于使用:

Python的类库齐全并且使用简洁,很少代码实现的功能用C可能要很复杂对于速度;

Python的运行速度相较于C,绝对是很慢了。Python和CPython解释器都是C语言编写的

2.简述解释型和编译型编程语言

编译性和解释型语言

解释型:就是边解释边执行;

编译性:编译后再执行

3.Python 的解释器种类以及相关特点?

CPython

c语言开发的 使用最广的解释器

IPython

基于cpython之上的一个交互式计时器 交互方式增强 功能和cpython一样

PyPy

目标是执行效率 采用JIT技术 对python代码进行动态编译,提高执行效率

JPython

运行在Java上的解释器 直接把python代码编译成Java字节码执行

IronPython

运行在微软 .NET 平台上的解释器,把python编译成. NET 的字节码

4.说说你知道的Python3 和 Python2 之间的区别?

按照当前时间点(Python 2.7 和 Python3.6),从宏观上介绍下Python 3和Python 2的区别,并举一些对应常见的例子:1. 统一了字符编码支持。2. 增加了新的语法。print/exec等成为了函数,格式化字符串变量,类型标注,添加了nonlocal、yield from、async/await、yieldfor关键词和__annotations__、__context__、__traceback__、__qualname__等dunder方法。3. 修改了一些语法。metaclass,raise、map、filter以及dict的items/keys/values方法返回迭代对象而不是列表,描述符协议,保存类属性定义顺序,保存关键字参数顺序4. 去掉了一些语法。cmp、<>(也就是!=)、xrange(其实就是range)、不再有经典类5. 增加一些新的模块。concurrent.futures、venv、unittest.mock、asyncio、selectors、typing等6. 修改了一些模块。主要是对模块添加函数/类/方法(如functools.lru_cache、threading.Barrier)或者参数。7. 模块改名。把一些相关的模块放进同一个包里面(如httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib放进了http里面,urllib, urllib2, urlparse, robotparse放进了urllib里面),个例如SocketServer改成了socketserver,Queue改成queue等8. 去掉了一些模块或者函数。gopherlib、md5、contextlib.nested、inspect.getmoduleinfo等。去掉的内容的原因主要是2点:1. 过时的技术产物,已经没什么人在用了;2. 出现了新的替代产物后者被证明存在意义不大。理论上对于开发者影响很小。9. 优化。重新实现了dict可以减少20%-25%的内存使用;提升pickle序列化和反序列化的效率;collections.OrderedDict改用C实现;通过os.scandir对glob模块中的glob()及iglob()进行优化,使得它们现在大概快了3-6倍等.. 这些都是喜大普奔的好消息,同样开发者不需要感知,默默的就会让结果变得更好。10. 其他。构建过程、C的API、安全性等方面的修改,通常对于开发者不需要关心。

5.Python3 和 Python2 中 int 和 long 区别?

python2中有long类型

python3中没有long类型,只有int类型

6.xrange 和 range 的区别?

xrange用于返回xrange对象,而range用于返回一个数组。不管那个范围多大,xrange都使用同样的内存。

注意:python3中没有xrange。

python3中演示:>>> range(10)

range(0, 10)>>> type(range(10))

编码规范

7.什么是 PEP8?

1. 变量

常量:大写加下划线 USER_CONSTANT。

私有变量 : 小写和一个前导下划线 _private_value。

Python 中不存在私有变量一说,若是遇到需要保护的变量,使用小写和一个前导下划线。但这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。但实际上,外部类还是可以访问到这个变量。

内置变量 : 小写,两个前导下划线和两个后置下划线 __class__两个前导下划线会导致变量在解释期间被更名。这是为了避免内置变量和其他变量产生冲突。用户定义的变量要严格避免这种风格。以免导致混乱。2. 函数和方法

总体而言应该使用,小写和下划线。但有些比较老的库使用的是混合大小写,即首单词小写,之后

每个单词第一个字母大写,其余小写。但现在,小写和下划线已成为规范。

私有方法 :小写和一个前导下划线,这里和私有变量一样,并不是真正的私有访问权限。同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python 的名称改编特性将发挥作用)。

特殊方法 :小写和两个前导下划线,两个后置下划线这种风格只应用于特殊函数,比如操作符重载等。

函数参数 : 小写和下划线,缺省值等号两边无空格3. 类

类总是使用驼峰格式命名,即所有单词首字母大写其余字母小写。类名应该简明,精确,并足以从中理解类所完成的工作。4. 模块和包

除特殊模块 __init__ 之外,模块名称都使用不带下划线的小写字母。5. 关于参数5.1不要用断言来实现静态类型检测。断言可以用于检查参数,但不应仅仅是进行静态类型检测。Python 是动态类型语言,静态类型检测违背了其设计思想。断言应该用于避免函数不被毫无意义的调用。5.2 不要滥用 *args 和 **kwargs。*args 和 **kwargs 参数可能会破坏函数的健壮性。它们使签名变得模糊,而且代码常常开始在不应该的地方构建小的参数解析器。6. 其他6.1 使用 has 或 is前缀命名布尔元素

is_connect=True

has_member=False6.2用复数形式命名序列

members= ['user_1', 'user_2']6.3用显式名称命名字典

person_address= {'user_1':'10 road WD', 'user_2' : '20 street huafu'}6.4避免通用名称

诸如 list, dict, sequence 或者 element 这样的名称应该避免。6.5避免现有名称

诸如 os, sys 这种系统已经存在的名称应该避免。7. 一些数字

一行列数 : PEP8 规定为 79列。根据自己的情况,比如不要超过满屏时编辑器的显示列数。

一个函数 : 不要超过30行代码, 即可显示在一个屏幕类,可以不使用垂直游标即可看到整个函数。

一个类 : 不要超过200 行代码,不要有超过 10 个方法。一个模块 不要超过 500 行。

8.了解 Python 之禅么?

import this

"The Zen of Python, by Tim Peters

Beautiful isbetter than ugly.

Explicitis better than implicit.

Simpleisbetter than complex.

Complexisbetter than complicated.

Flatisbetter than nested.

Sparseisbetter than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to doit.

Although that way may not be obvious at first unless you're Dutch.

Now isbetter than never.

Although neveris often better than *right*now.

If the implementationis hard to explain, it's a bad idea.

If the implementation iseasy to explain, it may be a good idea.

Namespaces are one honking great idea-- let's do more of those!"

9.了解 dosctring 么?

就是函数方法的内置解释,随便import一个模块,比如re正则,输出re.__doc__就出现类似help(re)的文档内容,不过比help()简短多了。

10.了解类型注解么?

Python解释器会在运行的时候动态判断变量和参数的类型,这样的好处是编写代码速度很快,很灵活,但是坏处也很明显,不好维护,可能代码写过一段时间重新看就很难理解了,因为那些变量、参数、函数返回值的类型,全都给忘记了。

而且当你在读别人的代码的时候,也无法一眼看出变量或者参数的类型,经常要自己推敲,这样给学习带来了很大的障碍。

所以Python3里有了这个新特性,可以给参数、函数返回值和变量的类型加上注解,不过这个仅仅是注释而已,对代码的运行来说没有任何影响,变量的真正类型还是会有Python解释器来确定,你所做的只是在提高代码的可读性,仅此而已。

python爬虫毕业设计题目-Python爬虫面试题170道:2019版【1】相关推荐

  1. Java面试题及答案2019版(上)

    1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些 ...

  2. python高阶面试题_Python 爬虫面试题 170 道:2019 版

    通过本场 Chat,你将获得如下知识点:掌握 Python 的基础语法 语法常见的 Python 应用场景 掌握 Python 闭包的使用以及装饰器的使用 生成器和迭代器的使用 常见的设计模式的使用 ...

  3. Python 爬虫面试题 170 道:2019 版

    引言 最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了网上的大部分面试题不是很满意,一个是有些部分还是 Python ...

  4. python 毕设 毕业设计 题目 课题 选题推荐

    文章目录 0 前言 1 python - 算法类 毕设选题 2 python - 数据挖掘 毕设选题 3 python - 大数据处理.云计算.区块链 毕设选题 4 python - 网络安全 毕设选 ...

  5. python爬虫笔试题目_python爬虫工程师面试题

    一.这家公司主要对亚马逊商品进行数据采集,问的问题比较杂. 是否了解线程的同步和异步? 是否了解网络的同步和异步? 链表和顺序表储存时各自有什么优点? 使用redis搭建分布式系统时如何处理网络延迟和 ...

  6. python爬虫笔试题目_Python 爬虫笔试(含答案)

    一.选择题 (每题4分,共40分) 以下正则表达式中,属于非贪婪匹配,且允许出现0次的是:( ) A.. B..* C..*? D..+? 正则表达式 R[0-9]{3},能匹配出以下哪个字符串:( ...

  7. 关于python的毕业设计题目_计算机毕业设计如何选题

    随着毕业季的结束,现在来总结一下计算机毕业设计在开始之初如何选题呢?为后面的毕业生提供一点建议,使得你们在选题中不那么困惑. 对于毕设课题,有的学校是统一分配课题,一般是导师会给每一个学生发送一篇ex ...

  8. python课程设计题目-python课设题目

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 最近咨询课设问题的同学越来越多了,大部分都是用pandas做数据统计的问题,我就找 ...

  9. matlab2019支持python_全方位对比:Python、Julia、MATLAB、IDL 和 Java (2019 版)

    引言 我们使用简单的测试用例来对各种高级编程语言进行比较.我们是从新手程序员的角度来实现测试用例,假设这个新手程序员不熟悉语言中可用的优化技术.我们的目的是突出每一种语言的优缺点,而不是宣称一种语言比 ...

最新文章

  1. DL之DNN:基于Tensorflow框架对神经网络算法进行参数初始化的常用九大函数及其使用案例
  2. Perl函数pack/unpack(二进制读写)
  3. C#项目评审提问问题集锦
  4. 这个24岁北航博士刚毕业就受聘211大学副教授,他大一就保研,学术能力太牛了.........
  5. inventor如何钣金出弧面_Inventor教程之钣金多规则
  6. TensorFlow零基础入门指南——计算模型、数据模型、运行模型!
  7. 基于bootstrap的后台左侧导航菜单和点击二级菜单刷新二级页面时候菜单展开显示当前菜单...
  8. 数组深拷贝_JavaScript之深浅拷贝
  9. 如何在 Python 数据中清洗常用 4 板斧?
  10. 【转】对 Rust 语言的分析
  11. visio哪个版本好用
  12. 使用docker安装Jenkins教程
  13. CuteFTP 中文免费版v9.3.0.3
  14. arcsinx用计算机怎么按,数学arcsinx和arccosx怎么用公 – 手机爱问
  15. 破除对 AWS Fargate 的幻觉
  16. postgresql获取基于当前时间计算的当月第一天,最后一天,下个月的第n天等功能
  17. Excel 删除数据temp 恢复
  18. 《娱乐至死》读书笔记(part1)--深入一种文化的最有效途径是了解这种文化中用于会话的工具
  19. 软件测试岗月薪3w+的测试,到底强在哪里?测试开发真的就是天花板了吗?
  20. 将BMP 格式图片转换为 JPEG 格式【c语言】

热门文章

  1. 安装Windows 64 位 mysql 最新版本解压包中没有data目录和my-default.ini及服务无法启动的快速解决办法...
  2. 00设计模式——指导规则
  3. instanceof 的作用
  4. Java8 forEach
  5. RingtoneManager-获得系统当前的铃声
  6. 浮动元素的display属性
  7. .NET常见线程简介
  8. 编程语言python入门要电脑什么配置能带动-对于几乎是零基础的人,直接学 Python 编程合适吗?...
  9. python学到什么程度可以写爬虫-月薪2万的爬虫工程师,Python需要学到什么程度?...
  10. python好用-Python里三个好用的调试神器