python实例

十条Python面试题陷阱,看看你是否会中招

妖精的绣舞 提交于 2020-03-26 15:33:11
每年的3-4月份是跳槽的高峰期,无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试的同学用的着! 问题1:请问如何修改以下Python代码,使得下面的代码调用类A的show方法? 答:这道题的考点是类继承,只要通过__class__ 方法指定类对象就可以了。补充的代码如下: 问题2:请问如何修改以下Python代码,使得代码能够运行? 答:此题考察得是方法对象,为了能让对象实例能被直接调用,需要实现 __call__ 方法,补充代码如下: 问题3:下面这段代码的输出是什么? 答: 此题考察的是new和init的用法,使用 __new__ 方法,可以决定返回那个对象,也就是创建对象之前调用的,这个常见于于设计模式的单例、工厂模式。__init__ 是创建对象是调用的。 问题4:下面这段代码输出什么? 答: 此题考察的是列表和字典的生成。 问题5:下面这段代码输出什么? 答: 此题考察全局变量和局部变量。num 不是个全局变量,所以每个函数都得到了自己的 num 拷贝,如果你想修改 num ,则必须用 global 关键字声明。比如下面这样 问题6:如何使用一行代码交换两个变量值? 答: 问题7:如何添加代码,使得没有定义的方法都调用mydefault方法? 答:

26道大题python实战练习-习题

与世无争的帅哥 提交于 2020-03-26 11:30:29
Python数学计算,编程练习题实例一: 简述:这里有四个数字,分别是:1、2、3、4 提问:能组成多少个互不相同且无重复数字的三位数?各是多少? Python解题思路分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 Python数学计算,编程练习题和答案实例一,源代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 5): for j in range(1, 5): for k in range(1, 5): if (i != k) and (i != j) and (j != k): print(i, j, k) View Code Python数轴、长整型,编程练习题实例二: 简述:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成. 提问:从键盘输入当月利润I,求应发放奖金总数? 玩蛇网Python解题思路分析

【Django】--基础知识

佐手、 提交于 2020-03-26 09:12:17
一 什么是web框架?   框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。   Web应用的流程:     // 浏览器发送一个HTTP请求;     // 服务器收到请求,生成一个HTML文档;     // 服务器把HTML文档作为HTTP响应的Body发送给浏览器;     //浏览器收到HTTP响应,从HTTP Body取出HTML文档并显   对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n",encode("utf8")) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost',8001)) sock.listen(5) while True: connection, address = sock.accept() handle_request(connection)

python中名称修饰与描述符

孤者浪人 提交于 2020-03-25 21:05:23
名称修饰 java和C#等其他高级语言中都有private关键字来修饰一个属性或字段是私有的,但是python中并没有private,而是有个与它接近的概念旧式名称修饰。每当在一个属性前面加上__前缀,解释器就会立刻将其重命名: 直接访问会抛异常 利用dir函数查看内部属性 python内部会把__前缀的属性重命名为【_类名+属性名】;因此在python中如果一个属性不是共有的就约定使用双下划线__为前缀,它不会调用任何名称修饰的算法,只是说名这个属性是该类的私有属性。 幸运的是python中还有其他机制类构建类的私有和共有代码,即使用描述符和property这些POP设计的关键特性 什么是描述符 python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问。这些方法有 __ get__(), __ set__(), 和__delete__()。如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符 它是一个类,定义了另一个类的访问方式,即一个类可以将属性管理托管给另一个类 描述符协议 描述符类基于3个特殊方法,这3个方法组成了描述符协议 __ set__(self,obj,type=none)设置属性时调用,也称为setter __ get__(self,obj,value) 读取属性时调用,也称为getter __ delete__

Django安装

喜你入骨 提交于 2020-03-25 08:26:18
Django 安装 在安装 Django 前,系统需要已经安装了Python的开发环境。接下来我们来具体看下不同系统下Django的安装。 Window 下安装 Django 如果你还未安装Python环境需要先下载Python安装包。 1、Python 下载地址: https://www.python.org/downloads/ 2、Django 下载地址: https://www.djangoproject.com/download/ 注意: 目前 Django 1.6.x 以上版本已经完全兼容 Python 3.x。 Python 安装(已安装的可跳过) 安装 Python 你只需要下载 python-x.x.x.msi 文件,然后一直点击 "Next" 按钮即可。 安装完成后你需要设置 Python 环境变量。 右击计算机->属性->高级->环境变量->修改系统变量 path,添加 Python 安装地址,本文实例使用的是 C:\Python33,你需要根据你实际情况来安装。 Django 安装 下载 Django 压缩包,解压并和Python安装目录放在同一个根目录,进入 Django 目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。 然后是配置环境变量

python(七):元类与抽象基类

你。 提交于 2020-03-24 19:06:44
一、实例创建   在创建实例时,调用__new__方法和__init__方法,这两个方法在没有定义时,是自动调用了object来实现的。python3默认创建的类是继承了object。 class A(object): def __init__(self, *args, **kwargs): self.name, self.age, self.gender = args[:3] def __new__(cls, *args, **kwargs): print("__new__ has called.") return super(A, cls).__new__(cls) # 可写为 super().__new__(cls) 或 object.__new__(cls) a = A("Li", 27, "male") print(a.name, a.age, a.gender) """ __new__ has called. Li 27 male """ 二、类的创建   以class关键字开头的上下文在定义时就已经被解释执行。而函数(包括匿名函数)在没被调用时是不执行的。这个过程本质上做了一件事情:从元类type那里创建了一个名为A的类,开辟类内存空间,并读取class语句的上下文,将类属性和方法写进去。 print("--解释器开始执行--") def func(): print(

python抓取页面内容 实例

♀尐吖头ヾ 提交于 2020-03-24 11:03:57
程序目的: 前段时间弄了个论坛 ( http://www.yyjun.net ) ,懒于手动找贴发帖,特写个抓取指定 url 中帖子内容的小程序 ( 完善中 ) 已经实现功能: 由于我们需要抓取页面特定 DOM 下的链接,如程序中,我们抓取 http://news.sina.com.cn/society/ 页面中大标题的链接,因此可以用函数 getlink 获取,返回 list 型结果,代码如下: url="http://news.sina.com.cn/society/" sinaurls=getlink(url, 'h1', {}) , 花括号为我们指定了附属条件,可以添加附加条件限制 返回结果 [url1, url2] 接下来就是获取页面中的内容,如:获取新闻标题、内容 ( 主要函数 getcontent) , 代码如下 getcontent(u, 'h1', {'id':'artibodyTitle'}, subtag=None).encode('utf-8') getcontent(u, 'div', {'id':'artibody'}, subtag=None).encode('utf-8') subtag=None 代表前面的参数已经可以获取到结果了,否则的话指定子 DOM 节点 tagname 和 tagattr 属性 这样我们就获取到了所要的数据

Python开发【第六章】:面向对象

扶醉桌前 提交于 2020-03-23 18:53:25
编程范式   编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式。 两种最重要的编程范式分别是面向过程编程和面向对象编程 面向过程编程   面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。 程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。 这样做的问题也是显而易见的,就是如果你要对程序进行修改,对你修改的那部分有依赖的各个部分你都也要跟着修改, 随着程序越来越大, 这种编程方式的维护难度会越来越高。 所以我们一般认为, 如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护的

使用scikit-learn进行文本分类

拈花ヽ惹草 提交于 2020-03-23 18:45:59
3 月,跳不动了?>>> scikit-learn简介 scikit-learn 是Python最为流行的一个机器学习库。它具有如下吸引人的特点: 简单、高效且异常丰富的数据挖掘/数据分析算法实现; 基于NumPy,SciPy,以及matplotlib,从数据探索性分析,数据可视化到算法实现,整个过程一体化实现; 开源,有非常丰富的学习文档。 尤其是当我们要进行多种算法的效果对比评价,这种一体化实现的优势就更加能够凸显出来了。 既然 scikit-learn 模块如此重要,废话不多说,下面马上开搞! 项目组织及文件加载 项目组织 工作路径:`D:\my_python_workfile\Thesis\sklearn_exercise` |--data:用于存放数据 |--20news-bydate:练习用数据集 |--20news-bydate-train:训练集 |--20news-bydate-test:测试集 文件加载 假设我们需要加载的数据,组织结构如下: container_folder/ category_1_folder/ file_1.txt file_2.txt ... file_42.txt category_2_folder/ file_43.txt file_44.txt ... 可以使用以下函数进行数据的加载: sklearn.datasets.load

python下几个简单实例代码

寵の児 提交于 2020-03-23 18:28:46
注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!!! 1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 程序源代码: ​ - - coding: UTF-8 - - for i in range(1,5): for j in range(1,5): for k in range(1,5): if (i != j) and (i != k) and (j != k): print i,j,k 1 2 3 4 5 6 2.题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 方法一: