python逻辑运算符

1.成员

and or not

优先级:() > not > and > or

2.and

逻辑运算符and,a andb,如果a和b都为True,则返回True,如果其中一个为False,返回False,简言之:一假则假,全真则真

3.or

逻辑运算符or,a or b, 如果a和b有一个为True,则返回True,如果全为False,返回False,简言之:一真则真,全假则假

4.not

逻辑运算符not,是结果的相反逻辑,比如 not 4>5为True

5.优先级级别从上至下

运算符

描述

**

指数 (最高优先级)

~ + –

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % //

乘,除,取模和取整除

+ –

加法减法

>> ,<<

右移,左移运算符

&

位 ‘AND’

^|

位运算符

<= < > >=

比较运算符

<> == !=

等于运算符

= %= /= //= -= += *= **=

赋值运算符

is, is not

身份运算符

in, not in

成员运算符

Not , and, or

逻辑运算符

python 中else在while循环中的用法

else 可以在while和for循环中运用,else和while或for搭配使用,不再是条件判断的含义。而是当while条件不成立时,直接跳出while循环,执行else输出如:

count = 0

while count > 12:

if True:

print('Yes')

break

count += 1

else:

print('No')

# 输出

No

a = 0

while a < 6:

print('loop',a)

a = a + 1

else:

print('well done!')#没有break的情况下,循环没有被打断

# 输出

loop 0

loop 1

loop 2

loop 3

loop 4

loop 5

well done!

a = 0

while a < 6:

print('loop', a)

a += 1

break # 有break的情况下,执行一次循环中止了,这种情况下不是正常中止的,else代码块是不执行的

else:

print('Well done!')

# 输出

loop 0

总结:else下的代码块在while循环正常执行结束了之后就会执行else代码块。否则,不执行。

匿名函数

为了解决那些功能很简单的需求而设计的一句话函数

语法:lambda 参数列表 : 表达式

说明:使用lambda关键字创建匿名函数。所谓匿名函数,就是没有名字的函数。匿名函数冒号后面的表达式有且只能有一个,注意:是表达式,而不是语句。匿名函数自带return,而return的结果就是表达式的计算后的结果。

通过对比匿名函数和普通函数来说明下lambda的用法

1.无参匿名函数:

>>>t = lambda : True #分号前无任何参数

>>>t()

True

# 等价于

>>> def func(): return True

>>> func()

True

2.带参数匿名函数

>>> lambda x: x**3 #一个参数

>>> lambda x,y,z:x+y+z #多个参数

>>> lambda x,y=3: x*y #允许参数存在默认值

# 匿名函数调用

>>> c = lambda x,y,z: x*y*z

>>> c(2,3,4)

24

>>> c = lambda x,y=2: x+y #使用了默认值

>>> c(10) #不输的话,使用默认值2

12

>>> a = lambda *z:z # *z返回的是一个元祖,即返回的是和参数一样的类型

>>> a('Testing1','Testing2')

('Testing1', 'Testing2')

3.直接后面传递实参

>>> (lambda x,y: x if x> y else y)(101,102)

102

>>> (lambda x:x**2)(3)

9

# lambda返回的值,结合map,filter,reduce使用

>>> filter(lambda x:x%3==0,[1,2,3,4,5,6])

[3, 6]

# 等价于下面的列表推导式

>>> l = [x for x in [1,2,3,4,5,6] if x%3==0]

>>> l

[3, 6]

4.嵌套使用

# lambda嵌套到普通函数中,lambda函数本身做为return的值

>>> def increment(n):

return lambda x: x+n

>>> f=increment(4)

>>> f(2)

6

>>> def say():

title = 'Sir,'

action= lambda x: title + x

return action

>>> act = say()

>>> act('Smith!')

'Sir,Smith!'

5.大量例子

# 例01:字符串联合,有默认值,也可以x=(lambda...)这种格式

>>> x = (lambda x="Boo",y="Too",z="Zoo": x+y+z)

>>> x("Foo")

'FooTooZoo'

# 例02: 和列表联合使用

>>> L = [lambda x:x**2,\

lambda x:x**3,\

lambda x:x**4]

>>> for f in L:

... print f(2)

...

4

8

16

# 也可以如下面这样调用

>>> print L[0](3)

9

# 例03: 和字典结合使用

>>> key = 'B'

>>> dic = { 'A': lambda: 2*2,\

... 'B': lambda: 2*4,\

... 'C': lambda: 2*8}

>>> dic[key]()

8

# 例04: 求最小值

>>> lower = lambda x,y: x if x

>>> lower('aa','ab')

'aa'

# 例05: 和map及list联合使用

>>> import sys

>>> showall = lambda x:list(map(sys.stdout.write,x))

>>> showall(['Jerry\n','Sherry\n','Alice\n'])

Jerry

Sherry

Alice

>>> showall(['Jerry','Sherry','Alice'])

JerrySherryAlice

#等价于下面

>>> showall = lambda x: [sys.stdout.write(line) for line in x]

>>> showall(('I\t','Love\t','You!'))

I Love You![None, None, None]

# 例06: 在Tkinter中定义内联的callback函数

import sys

from Tkinter import Button,mainloop

x = Button(text='Press me',

command=(lambda:sys.stdout.write('Hello,World\n')))

x.pack()

x.mainloop()

>>>

Hello,World!

Hello,World!

# 例07: lambda和map联合使用,

>>> out = lambda *x: sys.stdout.write(' '.join(map(str,x)))

>>> out('This','is','a','book!\n')

This is a book!

# 例08: 判断字符串是否以某个字母开头

>>> print (lambda x: x.startswith('B'))('Bob')

True

>>> Names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']

>>> B_Name= filter(lambda x: x.startswith('B'),Names)

>>> B_Name

['Bob', 'Barbara']

# 例09: lambda和map联合使用

>>> squares = map(lambda x:x**2,range(5))

>>> squares

[0, 1, 4, 9, 16]

# 例10. lambda和map,filter联合使用

>>> squares = map(lambda x:x**2,range(10))

>>> filters = filter(lambda x:x>5 and x<50,squares)

>>> filters

[9, 16, 25, 36, 49]

# 例11. lambda和sorted联合使用

# 按death名单里面,按年龄来排序

# 匿名函数的值返回给key,进来排序

>>> death = [ ('James',32),

('Alies',20),

('Wendy',25)]

>>> sorted(death,key=lambda age:age[1]) #按照第二个元素,索引为1排序

[('Alies', 20), ('Wendy', 25), ('James', 32)]

# 例12. lambda和reduce联合使用

>>> L = [1,2,3,4]

>>> sum = reduce(lambda x,y:x+y,L)

>>> sum

10

# 例13. 求2-50之间的素数

#素数:只能被1或被自己整除的数

>>> nums = range(2,50)

>>> for i in nums:

nums = filter(lambda x:x==i or x % i,nums)

>>> nums

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

# 例14. 求两个列表元素的和

>>> a = [1,2,3,4]

>>> b = [5,6,7,8]

>>> map(lambda x,y:x+y, a,b)

[6, 8, 10, 12]

#例15. 求字符串每个单词的长度

>>> sentence = "Welcome To Beijing!"

>>> words = sentence.split()

>>> lengths = map(lambda x:len(x),words)

>>> lengths

[7, 2, 8]

# 写成一行:

>>> print map(lambda x:len(x),'Welcome To Beijing!'.split())

函数名的应用、闭包

函数名可以作为一个变量,函数的参数,函数的返回值,容器类类型的元素

1.作为一个变量

def func1():

print(666)

f1 = func1 # 这里函数名实际上是个变量,只是变量名改了而已

f2 = f1

>>>

f2()

666

2.作为函数的参数

def func2(x):

print(x)

print('===', x())

print(func2(func1)) # 把func1的地址作为func2的参数,再执行func2函数。

>>>

666

=== None

None

3.函数名作为返回值

def wraaper():

def inner():

print('inner ')

return inner

ret = wraaper()

ret()

>>>

inner

'''

此时执行了inner()函数,为什么执行外部函数可以执行内嵌的函数呢,因为return了函数名,实际上形成了闭包。

4.闭包

当return一个嵌入的函数名时,在全局命名空间就可以直接找到该函数的地址,也就是可以执行函数,原理是在全局变量空间外层的函数的内存地址指向了嵌入的函数的内存地址。通常要执行内层的函数时必须执行外层的函数才可以执行内嵌的函数,当外层函数return了内嵌的函数名,实际上把内嵌的函数地址放在外面了,就是告诉所有外部人,这就是我的地址,通过这个地址你们就可以找到我。

enumerate() 枚举函数

enumerate(iterable, start =0)

返回一个枚举对象,第一个参数必须是一个序列,一个迭代器,或者其他支持迭代的对象。用enumetate()利用iterator中next()的方法返回一个包含计数(默认从0)开始的以及从迭代中获得的值元组。

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']

>>>print(tuple(enumerate(seasons)))

>>>print(list(enumerate(seasons, start=4))) # 从4开始数

((0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter'))

[(4, 'Spring'), (5, 'Summer'), (6, 'Fall'), (7, 'Winter')]

python知识点汇总_Python知识点总结大全(一)相关推荐

  1. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  2. python程序设计知识点汇总_Python入门知识点汇总

    Python的设计目标之一是让代码具备高度的可阅读性.它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观.它不像其他的静态语言如C.Pascal那样需要重复书写声明语句,也不像 ...

  3. python程序的基本结构知识点总结_Python知识点总结

    Python知识点总结 1.Python基础知识 1.1 变量及类型 1.2 标识符与关键字 1.3 常用格式化输出符号 1.4 运算符 1.4.1 算数运算符 1.4.2 赋值运算符 1.4.3 比 ...

  4. python的重点_python知识点

    """ @author:lei """ import os #os.path.join() 将分离的部分合成一个整体 filename=os ...

  5. python大一知识点总结_python 知识点总结

    numpy Numpy是一个用于进行数组运算的库 Numpy中最重要的对象是称为ndarray的N维数组类型 一般使用如下语句导入:import numpy as np 创建数组:numpy.arra ...

  6. python面试题_Python面试题大全

    [导读]推荐一个Python面试题大全,从Python基础到Python高级等非常全的面试题讲解. GitHub地址: https://github.com/kenwoodjw/python_inte ...

  7. python 数据分类汇总_Python 实现批量分类汇总并保存xlsx文件

    上一篇文件用VBA介绍了如何实现一键按列分类汇总并保存单独文件,代码有几十行,而且一旦数据量多了,效果可能不尽如人意. 文章可以参见这里: vba实例(27)-一键按列分类汇总并保存单独文件 今天就来 ...

  8. python计算卡路里_python matplotlib绘图大全(散点图、柱状图、饼图、极坐标图、热量图、三维图以及热图)...

    //2019.7.14晚 matplotlib七种常见图像输出编程大全 七种图形汇总输出如下: import numpy as np #导入数据结构nmupy模块 import matplotlib. ...

  9. python字典编码_python字典操作大全,学习python第7天

    python字典跟列表类型,能存储多个数据,并且还能在访问元素的时候可以很快定位到需要的元素.而python字典操作方法有多少种呢?下面羽忆教程为您介绍. python字典 python字典 概念:p ...

最新文章

  1. 1.Spring Boot --hello world
  2. 哪些编程语言需要修复?
  3. Docker镜像制作规范
  4. MySql小表驱动大表
  5. go语言io reader_Go语言中的io.Reader和io.Writer以及它们的实现
  6. 运行Hadoop自带的wordcount单词统计程序
  7. 01-贝叶斯算法(介绍)
  8. eclipse上修改js后,浏览器上还是出现原来效果的解决方法
  9. WAP入门之WMLScript与JavaScrpt的不同之处
  10. 【mybatis深度历险系列】mybatis中的动态sql
  11. 天天生鲜Django项目
  12. 新能源与材料如何应用计算机,计算机模拟在光电材料及太阳能工程领域的应用与新进展.doc...
  13. pycharm 弹出的Safe Delete安全 删除功能是什么?
  14. 微信小程序自定义picker
  15. 「深度」视觉的层次化处理过时了吗?
  16. JSD-2204-酷莎商城(后端)-Day17,18
  17. steam无法连接至计算机,win10系统打开steam提示无法连接至steam网络的图文方法
  18. 计算机机房新风机的作用,机房为什么要装新风系统,附解决方案
  19. 40了解云计算平台的高可用架构,如 AWS 的多可用区、GCP 的负载均衡器
  20. 数据库事务及其四大特性

热门文章

  1. excel中自动填充到最后一行
  2. c函数scanf(),printf()等常用格式字符串
  3. 牛客网-数据结构笔试题目(三)-博弈论圆圈游戏(Circle Game)(附源码)
  4. 蓝桥杯评分标准_蓝桥杯比赛要求
  5. 孙叫兽进阶之路之源代码配置管理过程(图文教程)
  6. 【APICloud系列|8】APICloud下载编译包安装,点击图标打不开,提示很抱歉,程序出现异常,即将退出
  7. mysql orderby count_mysql中count(),groupby,orderby使用方法分享
  8. 参考文献中会议名称怎么缩写_期刊缩写查询总结
  9. linux怎么才能算telnet成功_怎么表白才算成功呢
  10. 计算机上的usb设备是什么东西,联接一个USB的线在电脑桌上方便插U盘的东西叫什么?...