python面试必备-基础篇
一.python中and, or, and-or语法
1.and 有假先出假
在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。
如果布尔上下文中的某个值为假,则 and 返回第一个假值.
0, '' , [] , {}都是假
>>> 'a' and 'b' 'b' >>> '' and 'b' '' >>> 'a' and 'b' and 'c' 'c' >>> True and False False
2.or 有真先出真
使用 or 时,在布尔上下文中从左到右演算值,就像 and 一样。如果有一个值为真,or 立刻返回该值
如果所有的值都为假,or 返回最后一个假值
注意 or 在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值
>>> 'a' or 'b' 'a' >>> '' or 'b' 'b' >>> '' or [] or {} {} >>> 0 or 'a' or 'c' 'a'
3.and-or:
类似三目运算:"(a<b)?a:b"是一个"条件表达式",它是这样执行的: 如果a<b为真,则表达式取a值,否则取b值.
这个语法看起来类似于 C 语言中的 bool ?a : b 表达式。整个表达式从左到右进行演算,所以先进行 and 表达式的演算。 1 and 'first' 演算值为 'first',然后 'first' or 'second' 的演算值为 'first'。
0 and 'first' 演算值为 False,然后 0 or 'second' 演算值为 'second'。
and-or主要是用来模仿 三目运算符 bool?a:b的,即当表达式bool为真,则取a否则取b。
and-or 技巧,bool anda or b 表达式,当 a 在布尔上下文中的值为假时,不会像 C 语言表达式 bool ?a : b 那样工作。
>>> a='first' >>> b='second' >>> 1 and a or b 'first' >>> (1 and a) or b 'first' >>> 0 and a or b 'second' >>> (0 and a) or b 'second' >>>
4.安全使用and-or
>>> a="" >>> b="second" >>> (1 and [a] or [b]) [''] >>> (1 and [a] or [b])[0] '' >>>
由于 [a] 是一个非空列表,所以它决不会为假。即使 a 是 0 或者 '' 或者其它假值,列表 [a] 也为真,因为它有一个元素。
一个负责的程序员应该将 and-or 技巧封装成一个函数:
def choose(bool,a,b):return (bool and [a] or [b])[0]print choose(1,'','second') #''
二.python中filter()函数
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
三.python中的map()函数
四.python中的sort()函数
五.什么是lambda函数?它有什么好处?
lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数
lambda函数:首要用途是指点短小的回调函数
lambda [arguments]:expression
>>> a=lambdax,y:x+y
>>> a(3,11)
五.Python-copy()与deepcopy()区别
浅拷贝是对于一个对象的顶层拷贝 通俗的理解是:拷贝了引用,并没有拷贝内容
深拷贝是对于一个对象所有层次的拷贝(递归)
深拷贝和浅拷贝 都会给自己开辟一片空间存储数据
不同点:
浅拷贝---只是开辟了最底层的一片空间 然后拷贝顶层引用
深拷贝---完全的把数据复制过来 开辟新的空间去存储数据 实现了数据的独立性
切片拷贝 : 浅拷贝
字典的拷贝 : 浅拷贝
不可变类型(元组)----深拷贝浅拷贝都不会开辟空间了
注意点:
浅拷贝 不管元组中的数据是什么 都不会开辟空间
深拷贝 只要数据含有可变的类型 都会开辟空间进行递归拷贝
可变类型 Vs 不可变类型
可变类型(mutable):列表,字典
不可变类型(unmutable):数字,字符串,元组
这里的可变不可变,是指内存中的那块内容(value)是否可以被改变
copy.copy对于可变类型,会进行浅拷贝
对于不可变类型,不会拷贝,仅仅是指向
03 私有化
_xxx 防止被导入
私有属性并非不可被外部访问
xxx_ 解决关键字重名的问题
04 import的导入
import xxx
import xxx,yyy
from xxx import *
from xxx import yyy
from xxx import yyy,zzz
import xxx as yyy
1 a.py
2 import a as b
b.xxx
a = 10
路径问题 import sys
sys.path
sys.path.insert(0,"xxx")
模块重复导入的问题
from imp import reload
多模块开发的时候 导入公共变量
import
05 多态的发生条件
1.发生继承
2.方法重写
3.调用被重写的方法
同一种形式 产生了不同的状态
01_多继承
1 父类名字.父类的方法 (需要self)
2 super().父类的方法 (不需要self)
1 浪费资源,造成bug
2 不会重复调用父类 __mro__顺序表
结论: 使用多继承的时候 使用super()
02_类中的各种概念
类对象 存放类相关的数据空间
实例对象 存放实例相关的数据的空间
类属性 存放在类空间中的属性
实例属性 存放在实例空间中属性
类方法 改变类属性的(默认就是类空间地址)
实例方法 改变实例属性
静态方法 谁也改变不了
实例对象可以调用类方法
03_property属性
定义的时候像函数一样 使用的时候像属性一样
作用: 简化 私有属性的修改 调用 的流程
其他资料:
https://www.cnblogs.com/tom-gao/p/6645859.html
转载于:https://www.cnblogs.com/snailon/p/8992803.html
python面试必备-基础篇相关推荐
- python面试知识点—基础篇
Python基础 这篇博客看起来是针对面试题给出答案,实际上在查这些资料的过程中笔者也学到了很多基础知识,无论你是python新手还是已经遗忘了这些知识点的大牛,都建议去发散性的去看看大多数问题下面给 ...
- Python面试宝典 - 基础篇 - 2020
码一个面试资源 https://github.com/jackfrued/Python-Interview-Bible/blob/master/Python%E9%9D%A2%E8%AF%95%E5% ...
- 金三银四求职季,程序员面试必备——编程语言篇
每年的三四月都是准毕业生最焦灼最忙碌的季节,考研的结果基本都已确定,公务员考试也基本落下帷幕,春招将会陆续进行,很多同学也要开始决定未来工作的方向.每年的三四月份也都是互联网人的跳槽高峰期,所以三四月 ...
- 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇
编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...
- 金三银四求职季,程序员面试必备——数据库篇
我们身处一个技术变革的时代,随着分布式.云计算.大数据等技术的飞速发展,各种数据库百花齐放.它们在具体功能和使用场景上各有千秋,在实现细节上也不尽相同,但是在工作原理上又有着诸多共通性和相似性. 跳槽 ...
- 金三银四求职季,程序员面试必备——数据分析篇
这个年代里,"用数据说话"已经像是一种过气的口号.各行各业不同角色和身份的人们都已懂得"用数据说话"的重要性,甚至日常生活中也需要用数据看清事实,科学吃瓜.所以 ...
- Python Open3D几何图形 基础篇(三) RGBD图像
Python Open3D几何图形 基础篇(三) RGBD图像 本文所参考网页: RGBD images - Open3D 0.15.1 documentation Open3D中有一个关于图像的数据 ...
- python人生苦短_人生苦短,我用Python(教程基础篇)
人生苦短,我用Python(Python快速教程 - 基础篇) Life is short, you need Python 人生苦短,我用Python Python简介 本章将介绍Python的最基 ...
- Python菜鸟入门基础篇,零基础小白必看
自从20世纪90年代初发布以来,Python一直相当火爆,在这二十多年里,它的流行程度远远超过了C.C#.Java甚至Javascript. Python为什么受欢迎? Python迅猛发展背后的一个 ...
最新文章
- JavaScript奇技淫巧44招(2)
- ios 获取沙河文件夹_关于 iOS 沙盒的目录结构和获取
- 使用POI读取excel文件内容
- mysql操作语句now_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!
- 张家口市12320卫生热线呼叫中心预计今年初启动
- Super VLAN原理
- crontab 定时执行任务
- cisco端口排错步骤
- OpenGL编程指南 代码
- 程序设计作业——系统管理
- 2022年全球市场木材干燥窑总体规模、主要生产商、主要地区、产品和应用细分研究报告
- cyclone小知识(三)——cyclone导入多种格式数据
- PMP-PMBOK图解项目管理(436页PPT、完整版-经典)
- 三角定位matlab,基于RSSI校正的三角形质心定位算法
- Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;
- 网络上博弈——博弈匠心——真正的匠人精神
- 十年技术进阶路,让我明白了三件要事(8000字长文)
- java swing组件_Java -- Swing 组件使用
- 运用图像处理解决基于MRI的脑肿瘤图像分割问题
- RGB 565格式的256色颜色表代码表
热门文章
- python dataframe索引转成列_如何将 Pandas DataFrame 的索引转换为列
- oracle package 函数,Oracle 存储过程procedure,函数function用法,以及package用法
- [Java面经] 关于面试的二三事.
- 2015 Autodesk 开发者日( DevDays)和 助力开发周火热报名中
- 2015 多校赛 第三场 1002 (hdu 5317)
- nhibernate连接11g数据库
- Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET
- 单链表输出最小值并逐个删除
- Eclipse使用TODO标签管理任务及自定义TODO标签
- 制作一个状态栏中跑马灯效果_图标设计指南(3)——制作一个图标集所需全部信息(中)...