一.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面试必备-基础篇相关推荐

  1. python面试知识点—基础篇

    Python基础 这篇博客看起来是针对面试题给出答案,实际上在查这些资料的过程中笔者也学到了很多基础知识,无论你是python新手还是已经遗忘了这些知识点的大牛,都建议去发散性的去看看大多数问题下面给 ...

  2. Python面试宝典 - 基础篇 - 2020

    码一个面试资源 https://github.com/jackfrued/Python-Interview-Bible/blob/master/Python%E9%9D%A2%E8%AF%95%E5% ...

  3. 金三银四求职季,程序员面试必备——编程语言篇

    每年的三四月都是准毕业生最焦灼最忙碌的季节,考研的结果基本都已确定,公务员考试也基本落下帷幕,春招将会陆续进行,很多同学也要开始决定未来工作的方向.每年的三四月份也都是互联网人的跳槽高峰期,所以三四月 ...

  4. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇

    编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...

  5. 金三银四求职季,程序员面试必备——数据库篇

    我们身处一个技术变革的时代,随着分布式.云计算.大数据等技术的飞速发展,各种数据库百花齐放.它们在具体功能和使用场景上各有千秋,在实现细节上也不尽相同,但是在工作原理上又有着诸多共通性和相似性. 跳槽 ...

  6. 金三银四求职季,程序员面试必备——数据分析篇

    这个年代里,"用数据说话"已经像是一种过气的口号.各行各业不同角色和身份的人们都已懂得"用数据说话"的重要性,甚至日常生活中也需要用数据看清事实,科学吃瓜.所以 ...

  7. Python Open3D几何图形 基础篇(三) RGBD图像

    Python Open3D几何图形 基础篇(三) RGBD图像 本文所参考网页: RGBD images - Open3D 0.15.1 documentation Open3D中有一个关于图像的数据 ...

  8. python人生苦短_人生苦短,我用Python(教程基础篇)

    人生苦短,我用Python(Python快速教程 - 基础篇) Life is short, you need Python 人生苦短,我用Python Python简介 本章将介绍Python的最基 ...

  9. Python菜鸟入门基础篇,零基础小白必看

    自从20世纪90年代初发布以来,Python一直相当火爆,在这二十多年里,它的流行程度远远超过了C.C#.Java甚至Javascript. Python为什么受欢迎? Python迅猛发展背后的一个 ...

最新文章

  1. JavaScript奇技淫巧44招(2)
  2. ios 获取沙河文件夹_关于 iOS 沙盒的目录结构和获取
  3. 使用POI读取excel文件内容
  4. mysql操作语句now_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!
  5. 张家口市12320卫生热线呼叫中心预计今年初启动
  6. Super VLAN原理
  7. crontab 定时执行任务
  8. cisco端口排错步骤
  9. OpenGL编程指南 代码
  10. 程序设计作业——系统管理
  11. 2022年全球市场木材干燥窑总体规模、主要生产商、主要地区、产品和应用细分研究报告
  12. cyclone小知识(三)——cyclone导入多种格式数据
  13. PMP-PMBOK图解项目管理(436页PPT、完整版-经典)
  14. 三角定位matlab,基于RSSI校正的三角形质心定位算法
  15. Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;
  16. 网络上博弈——博弈匠心——真正的匠人精神
  17. 十年技术进阶路,让我明白了三件要事(8000字长文)
  18. java swing组件_Java -- Swing 组件使用
  19. 运用图像处理解决基于MRI的脑肿瘤图像分割问题
  20. RGB 565格式的256色颜色表代码表

热门文章

  1. python dataframe索引转成列_如何将 Pandas DataFrame 的索引转换为列
  2. oracle package 函数,Oracle 存储过程procedure,函数function用法,以及package用法
  3. [Java面经] 关于面试的二三事.
  4. 2015 Autodesk 开发者日( DevDays)和 助力开发周火热报名中
  5. 2015 多校赛 第三场 1002 (hdu 5317)
  6. nhibernate连接11g数据库
  7. Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET
  8. 单链表输出最小值并逐个删除
  9. Eclipse使用TODO标签管理任务及自定义TODO标签
  10. 制作一个状态栏中跑马灯效果_图标设计指南(3)——制作一个图标集所需全部信息(中)...