python知识点汇总_Python知识点总结大全(一)

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')]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS ES6中的箭头函数(Arrow Functions)使用

转载这篇ES6的箭头函数方便自己查阅。 ES6可以使用“箭头”&#xff08;>&#xff09;定义函数&#xff0c;注意是函数&#xff0c;不要使用这种方式定义类&#xff08;构造器&#xff09;。 一、语法 基础语法 (参数1, 参数2, …, 参数N) > { 函数声明 }(参数1, 参数…

php中trim的用法和例子,PHP ltrim()用法及代码示例

ltrim()函数是PHP中的内置函数&#xff0c;可从字符串左侧删除空格或其他字符(如果指定)。用法:ltrim( $string, $charlist )参数&#xff1a;函数ltrim()接受两个参数&#xff0c;如上面的语法所示。在这两个参数中&#xff0c;一个是必需的&#xff0c;另一个是可选的。下面将…

python怎样编写定时程序_Python如何实现定时器功能

Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话&#xff0c;就要在Timer调用的函数中&#xff0c;再次设置Timer。Timer是Thread的一个派生类 python中的线程提供了java线程功能的子集。 #!/usr/bin/env python from threading import Timer import …

应用ForkJoin –从最佳到快速

到目前为止&#xff0c;JDK 7已很好地掌握在开发人员手中&#xff0c;并且大多数人都听说过ForkJoin&#xff0c;但是没有多少人有时间或机会去尝试它。 它引起了&#xff0c;并且可能仍然引起一些混乱&#xff0c;与普通线程池有什么不同。 [1] 我在本文中的目标是通过一个代…

Echarts-K线图提示框改头换面

工作&#xff1a; 使用Hbuilder建web工程&#xff0c;加入echarts相关库&#xff0c;根据需要更改K线图及其的提示样式&#xff0c;去除默认提示&#xff0c;使用异步加载echarts的数据&#xff0c;数据格式为json。 需要注意的K线图和5日均线&#xff0c;10日均线的意义&#…

JS对url进行编码和解码(三种方式区别)

Javascript语言用于编码的函数&#xff0c;一共有三个&#xff0c;最古老的一个就是escape()。虽然这个函数现在已经不提倡使用了&#xff0c;但是由于历史原因&#xff0c;很多地方还在使用它&#xff0c;所以有必要先从它讲起。 escape 和 unescape 实际上&#xff0c;esca…

elasticsearch启动错误解决

es启动默认不能使用root用户&#xff0c;所以需要新创建一个用户来启动。 启动时可能出现的问题: [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2]: max number of threads [1024] for user [esuser1] is too low, …

vc6.0 matlab混合编程,matlab2010 + vc6.0混合编程实例(调用dll)

不想解释太多直接上代码吧&#xff01;&#xff01;&#xff01;在对matlab配置后&#xff0c;上代码mcc -W cpplib:libMyAdd -T link:lib MyAdd -C就可以了&#xff0c;记得加上-C在对VC6.0进行配置的时候只要把 matlabroot\extern\include和matlabroot\extern\lib\win32\micr…

canvas换图时候会闪烁_Canvas实现图片上标注、缩放、移动和保存历史状态,纯干货(附CSS 3变化公式)...

(给前端大学加星标&#xff0c;提升前端技能.)作者&#xff1a;zhcxk1998https://juejin.im/user/5d4304bdf265da03d15531dc哈哈哈俺又来啦&#xff0c;这次带来的是canvas实现一些画布功能的文章&#xff0c;希望大家喜欢&#xff01;这个css3变化公式可以适用于平常我们使用的…

Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)

之前写过一篇博客“探索TFS Git 库文件换行&#xff08;CRLF&#xff09;的处理方式”&#xff0c;主要是针对TFVC代码库的。下面这篇文章说明如何在TFS的Git库中处理代码换行的问题。概述在Azure DevOps Server&#xff08;之前叫TFS&#xff09; 中使用Git管理源代码&#xf…

RMI强制Full GC每小时运行一次

在我职业生涯中进行的所有故障排除练习中&#xff0c;我感到随着时间的推移&#xff0c;我所追寻的错误在不断发展&#xff0c;变得越来越卑鄙和丑陋。 也许仅仅是我的年龄开始了。这个特别的Heisenbug –看起来像这篇帖子一样&#xff0c;再次让我清醒了很多&#xff0c;而不是…

apache配置-html碎片shtml格式

修改SSI 文件 conf–httpd.conf <Directory "D:/Android/Apache2.2/htdocs"> //修改文件目录 # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymL…

php+条件限定符,const 限定符

const 限定符const 对象一旦创建后不可改变,所以const必须初始化.const int iget_size(); //运行时初始化const int j43;const int k; //错误,必须初始化默认状态下,const对象仅在文件中有效,解决办法是对于const变量不管是声明还说定义都添加extern关键字extern const int buf…

git删除远程分支文件,不改变本地文件

git提交项目时候踩的Git的坑 特别 由于准备春招&#xff0c;所以希望各位看客方便的话&#xff0c;能去github上面帮我Star一下项目https://github.com/Draymonders/Campus-Shop 经历 由于刚开始没有设置.gitignore文件&#xff0c;导致项目中所有的文件都被提交到了github上面…

python列表字符串转数字_python 将列表中的字符串转为数字

本文实例讲述了Python中列表元素转为数字的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 有一个数字字符的列表&#xff1a; numbers [‘1‘, ‘5‘, ‘10‘, ‘8‘] 想要把每个元素转换为数字&#xff1a; numbers [1, 5, 10, 8] 用一个循环来解决&#xff…

Spring的@Primary注释在起作用

Spring是一个永不止息的框架。 这是因为它提供了许多不同的解决方案&#xff0c;使我们&#xff08;开发人员&#xff09;无需编写数百万行代码即可完成我们的任务。 取而代之的是&#xff0c;我们能够以更具可读性&#xff0c;更标准化的方式进行操作。 在这篇文章中&#xff…

JS对全角与半角的验证,相互转化以及介绍

1.什么是全角和半角? 全角&#xff1a;是一种电脑字符&#xff0c;是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中&#xff0c;字母和数字等与汉字…

oracle 安装ora 27102,ORA-27102 解决办法

因为在32位操作系统上执行了如下的操作alter system set sga_max_size2G scopespfile;之后再重启数据库就会失败报出错误:ORA-27102Out of Memory解决的方法也很简单:新建一个文本文件 如initaaa.ora内容&#xff1a;SPFILE../product/10.2.0&#xff0f;db_1/dbs/spfileorcl.o…

Codechef August Challenge 2018 : Modular GCD

传送门 一开始还手动拓欧找规律&#xff0c;发现好像玩不了。 然后想了想&#xff0c;A-B这个数比较小&#xff0c;枚举它的因子判断合不合法就行了。 需要特判AB的情况。 #include<cstdio> #include<algorithm> #define ll long long #define ld long double usin…

bootstrap源码之滚动监听组件scrollspy.js详解

其实滚动监听使用的情况还是很多的&#xff0c;比如导航居于右侧&#xff0c;当主题内容滚动某一块的时候&#xff0c;右侧导航对应的要高亮。 实现功能 1、当滚动区域内设置的hashkey距离顶点到有效位置时&#xff0c;就关联设置其导航上的指定项 2、导航必须是 .nav > l…