Python语法笔记
下述大部分来源B站木子python,以及自己学到现在加了一些python的小知识点,可以当做学习和查阅的资料(Ctrl+F搜索)花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)_哔哩哔哩_bilibili
目录
1、print函数
python语句中的 end=' ' 的作用
2、快捷输出ctrl+shift+F10
3、open函数结合print进行打开文件
4、转义字符、原字符
5、换行输出
6、整数类型不同进制的表示
7、浮点类型和decimal
8、字符串类型和多行字符串
9、类型转换
10、注释
11、算术运算符
12、位运算符
13、对象的布尔值
14、if else判断语句和条件表达式(简写if else语句块)
15、python里的缩进
16、嵌套if
17、pass语句
18、range语句
19、while循环结构
20、for-in循环结构(结合range函数)
21、break和continue语句
22、else语句
23、列表(list)
23.1列表的查询和切片操作
23.2列表元素的添加、删除、修改、排序操作
23.3列表生成的方法(公式)
24、字典(dict)
24.1 字典的创建
24.2 字典元素的获取dict.get()编辑
24.3 字典元素的增、删、改
24.4 获取字典视图
24.5 字典元素的遍历
24.6 字典的生成方法
25、元组(tuple)
25.1 元组的创建生成
25.2 为什么元组是不可变序列
26、可变数据类型和不可变数据类型
27、集合(set)
27.1 集合的创建方式
27.2 集合的相关操作
27.3 集合之间的关系
27.4 集合生成式
28、列表、字典、元组、集合区别和联系总结
28.1 list和tuple的区别和优缺点:
29.1 字符串的查询、大小写转换、对齐、替换、合并
29.2 字符串的劈分
29.3 判断字符串操作和字符串的比较
29.4 字符串的切片
29.5 字符串的格式化(重要☆)
29.6 字符串知识点总结
30、函数的创建与调用
编辑 30.1 函数的参数传递、个数可变的位置参数
30.2 函数的返回值
30.3 函数调用和定义加不加*的总结
31、变量的作用域
32、递归函数
33、Python的异常处理机制(跳过bug的方法)
34、类的定义和创建
34.1 类和对象知识点汇总
35、封装
36、继承
37、重写方法
38、object类
39、多态
40、特殊属性和特殊方法
41、__new__和__init__
42、类的赋值与深、浅拷贝
43、模块(Modules)
44、以主程序方法运行 (if __name__ =='__main__')
45、import和from导入
46、包(package)
47、编码
48、文件打开模式
49、文件对象的常用操作
50、with语句
51、os语句相关目录操作
52、try——except语句、raise语句(同异常处理机制)
53、continue和pass的区别
54、def __repr__和def __str__
55、def __getitem__
56、zip()函数
57、函数(function)和方法(method)的区别
58、二维列表(list)初始化创建的一些坑
59、函数参数前加星号*
60、Python里将字符转换成ASCII 数值的函数ord()
61、lambda函数
62、Python内置的数据结构
1、print函数
基本格式
print(520) #直接输出数字
print('helloworld') #输出引号里的内容 可以是双引号
print(helloworld) #报错!因为不能直接输出字母
print(3+1) #输出表达式(含有操作符和运算数)
print('hello','world') #一行输出多内容的时候用逗号隔开
逗号后面最好加空格
python语句中的 end=' ' 的作用
为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串,其实这也是一个语法要求,表示这个语句没结束。
print默认是打印一行,结尾加换行。end=' '意思是末尾不换行,加空格
2、快捷输出ctrl+shift+F10
3、open函数结合print进行打开文件
fp=open('D:/text_pycharm_open','a+')
print('helloworld',file=fp)
fp.close()
4、转义字符、原字符
原字符:
注意:任何一句话最后一个字符不能是一个反斜杠\
可以是俩个反斜杠\\
5、换行输出
点击这个Soft Wrap
6、整数类型不同进制的表示
print('二进制',0b010101111) #输出175 注意是0b不是ob
7、浮点类型和decimal
注意大写的D!
8、字符串类型和多行字符串
三引号:'''(三个单引号)和“””(三个双引号)可以用来把字符串多行输出
9、类型转换
注意 整形int和bool类型的转换成浮点型float的时候会加个“.0"
浮点转化成整形是“抹零取值”
10、注释
11、算术运算符
//代表整除
%代表取余数
幂是俩个乘法运算符**
其中取余数%和整除//有一些特殊情况
整除一正一负向下取整数 取更小的
但是取余操作的公式为被除数-除数*商 这里的商向下取整
记住取余的结果介于除数和0之间、
赋值运算中支持
交换变量不需要中间变量(C++震怒!)
12、位运算符
13、对象的布尔值
bool值
14、if else判断语句和条件表达式(简写if else语句块)
if的基本语法格式看下面:第一行是条件语句(注意:变量也可以当做判断语句 因为可以看作bool变量),如果满足条件就会执行第二行,没有括号或者结束语句,比如endif,没有。 if和后面的判断语句中间要加空格
假如第二行没有缩进,就会产生错误。
新手容易犯一个错误就是条件语句后面不写冒号,出现这样的错误:
我们假如有多个条件,我们可以使用else,当条件不满足的时候执行它下面的语句块。当然else是顶个写,并且后面记得写冒号。
如果还有更多的条件,我们可以使用elif,同样不要忘记冒号和缩进和空格
python里的else if缩写为elif
比如
score=int(input('请输入一个成绩:'))if score>=90 & score<=100:print(score,'是A等级')
elif score>=80 and score<90:print(score,'是B等级')
elif score>=60 and score<80:print(score,'是C等级')
elif score>=0 and score<60:print(score,'是F等级')
else:print('输入有错')
注意 python里用and
python里的and和&的关系和区别
Python中&和and的区别_l2014204559的博客-CSDN博客_&和and python
条件表达式
15、python里的缩进
和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
16、嵌套if
17、pass语句
有时候我们需要先不写内容,先写框架,我们可以用pass语句来跳过内容填写,防止报错。
不写pass会报错
18、range语句
左开右闭的区间
range只能遍历整数,拒绝小数!
19、while循环结构
注意判断N+1次 因为最后一次也判断了(判断为false 终止)
20、for-in循环结构(结合range函数)
for 循环可以不用变量,用下划线_代替变量来用作循环次数
for是自带遍历的,所以不需要+=1这种操作
倒序排序怎么实现?:
比如倒序输出1-10: 10 9 8 7 6 5 4 3 2 1
for i in range(10, 0, -1):print(i)
#步长,即第三个参数,step=-1表示倒序
注意,这里右区间是0,因为左开右闭,虽然-1倒序相当于左右区间改了,但是还是会把第二个参数当做开区间,因此很多地方会出现for _ in range(n,-1,-1)。很多人会觉得俩个-1是啥意思。
其实第三个参数-1能理解,表示倒序,第二个参数-1是因为想遍历到0,但是因为开区间,必须取-1.
21、break和continue语句
break是跳出当前循环结构
continue是结束当前循环,进入下一次循环。
break和continue都只用于本层循环的操作
22、else语句
else主要和for、while、语句进行搭配使用
①else和if搭配:比较好理解 if不成立 那就else的情况
②else和for、while搭配的时候,如果for下面一路没有碰到break 那就会按照顺序结构执行else
23、列表(list)
列表类似C语言里的数组
list1=['hello', 'world', 'False', '86.2'] #第一种方式用方括号直接list2=list(['hello', 'world', 'False', '86.2']) #使用内置函数list
python的索引有从第一个元素从0增加到N,也有从最后一个元素从-1减少到-M。
所以如果是-1,那就是最后一个,-2是倒数第二个
列表是可变数据类型
23.1列表的查询和切片操作
列表的查询用index函数操作,具体可百度
23.2列表元素的添加、删除、修改、排序操作
这里特别对append()和extend()做一个解析:
# list.append()会把要添加的数据当做一个整体添加在list的末尾.而list.expand()会把要添加的数据迭代依次添加到list的末尾,只允许添加可迭代对象数据(可迭代对象: 能用for循环进行迭代的对象就是可迭代对象, 比如:字符串,列表,元祖,字典,集合等等 )
# 比如:
list1 = ['1','2','3']
list2 = ['4','5','6']
list1.append(list2) # list1 = ['1','2','3',['4','5','6']]
list1.expand(list2) # list1 = ['1','2','3','4','5','6']
# 注意:如果expand的是一个dict类型的,只会添加这个dict的key,而不会添加对应的value
切片是一个很神奇的操作!
sort改变原列表
sorted不改变原列表
23.3列表生成的方法(公式)
lst=[i for i in range(1,10)] #第一个i表示生成i 后面的for代表循环语句 用中括号括起
print(lst) #结果为[1, 2, 3, 4, 5, 6, 7, 8, 9]lst=[i*i for i in range(1,10)] #第一个i*i表示生成i*i这个结果 后面的for代表循环语句 用中括号括起
print(lst) #结果为[1, 4, 9, 16, 25, 36, 49, 64, 81]
24、字典(dict)
字典类似C语言里的map容器
注意!:字典目前变成有序了,在python3.6之后
key必须是不可变对象,不可以是列表(列表是可变对象)
但是字典本身是可变数据类型
24.1 字典的创建
24.2 字典元素的获取dict.get()
对于普通的dict.get(),如果里面有两个参数,怎么理解?
第一个参数是要获取的值对应的key,逗号后面的第二个参数实际上是默认值
# result是一个大dict
results.get('img_fields', ['img']):
# 'img'
# []代表一个list
输出的是“值“”,根据“键”查找取值
24.3 字典元素的增、删、改
24.4 获取字典视图
24.5 字典元素的遍历
24.6 字典的生成方法
操作总结
25、元组(tuple)
列表是中括号
元组是小括号(带上逗号)
字典是花括号
25.1 元组的创建生成
元组的关键其实是逗号 可以不要小括号 但是必须要有逗号(空元组不需要逗号)
25.2 为什么元组是不可变序列
比如一个元组的一个元素是一个列表,那么这个列表元素指向的是列表的地址,地址不可变,存在该地址里面的内容(列表的内容)是可变的
26、可变数据类型和不可变数据类型
python中不可变数据类型和可变数据类型 - 自由早晚乱余生 - 博客园
27、集合(set)
字典里键不能重复,集合里的值不能重复
27.1 集合的创建方式
集合直接创建用花括号,跟列表不同,列表用中括号直接创建。
- 集合元素不可重复,列表元素可以重复
- 列表是有序的,集合是无序
集合里的元素不可以是列表,因为集合是无序的,里面的元素必须是不可变类型(集合本身是可变类型)
27.2 集合的相关操作
因为集合是无序的所以添加不能指定位置!
27.3 集合之间的关系
27.4 集合生成式
28、列表、字典、元组、集合区别和联系总结
28.1 list和tuple的区别和优缺点:
list 是可变的对象,元组 tuple 是不可变的对象! tuple 放弃了对元素的增删(内存结构设计上变的更精简),换取的是性能上的提升:创建 tuple 比 list 要快,存储空间比 list 占用更小。
因此在深度学习领域,很多返回值会把list转换成tuple
字符串也是不可变 跟元组一样。
驻留:重复的字符串不会创建新空间,只会拷贝原本的
29.1 字符串的查询、大小写转换、对齐、替换、合并
哪怕原本全是小写 用lower转换后 地址也会改变。
比如说右对齐,指定宽度为3,用字符'0'去对齐:
str.rjust(3,'0')
29.2 字符串的劈分
劈分就是把东西分开
29.3 判断字符串操作和字符串的比较
==和is的区别:
29.4 字符串的切片
29.5 字符串的格式化(重要☆)
三种方法格式化
name = '张三'
age = 20
print('我叫%s,今年%d岁' % (name, age)) #根据%类型 后面加%print('我叫{0},今年{1}岁'.format(name, age)) #以{n}来,后面加.print(f'我叫{name},今年{age}岁') #以{变量名} 前面加f
29.6 字符串知识点总结
30、函数的创建与调用
参数传递法:位置实参和关键字实参
30.1 函数的参数传递、个数可变的位置参数
在python的函数参数传递中,如果是不可变类型比如一个整形数据,那么传递类似C++的值传递,不会改变实参;如果是可变类型比如一个列表,那么传递类型类似C++的引用传递,会把实参也改变自动返回。
如果一个函数定义的时候,既有个数可变的位置形参,也有个数可变的关键词形参时:
30.2 函数的返回值
30.3 函数调用和定义加不加*的总结
31、变量的作用域
32、递归函数
33、Python的异常处理机制(跳过bug的方法)
34、类的定义和创建
class Xxxx: 注意这里的X首字母要大写,这是一种规范
在类外定义的称为函数,在类内定义的称为方法
self相当于c++里的this
一般来说,使用某个类的方法,需要先将类实例化,赋予一个对象才可以调用类中的方法,但是如果使用了@staticmethod 或@classmethod,就可以不用实例化,直接类名.方法名()来调用。
如果用了staticmethod就无视这个self了,就将这个方法当成一个普通的函数使用了。
cls和self的用处一样,都是表示类本身。只不过一个是用在类方法里,一个是用在实例方法里。
我还发现一个问题就是,我们一般的的类(_ _init_ _)都是self必写。而_ _new_ _写的是cls,他们有什么不同。
查了一波资料,cla主要用于类定义方法,而self则是实例方法。
个人理解,当运行到这个方法的时候,类如果还没实例化,就是cls,否则是self。
静态方法是没有参数的 但是类方法有参数
34.1 类和对象知识点汇总
35、封装
加_ _有点类似私有属性private 但是也可以在类外通过_类名_ _来访问
36、继承
super()是调用父类的函数
调用父类的构造函数用super()._ _init_ _
37、重写方法
38、object类
39、多态
虽然python里没有数据类型。但是也具备多态的特征。
40、特殊属性和特殊方法
两个下划线开头和结尾的称为特殊属性和方法,比如_ _init_ _
41、__new__和__init__
class Person(object):def __new__(cls, *args, **kwargs):print('__new__被调用执行,cls的值为{0}'.format(id(cls)))obj=super().__new__(cls)print('obj的super().__new__被执行,创建的对象的id为{0}'.format(id(obj)))return objdef __init__(self,name,age):print('__init__被调用了,self的id值为{0}'.format(id(self)))self.name=nameself.age=age
print('object这个类对象的id为{0}'.format(id(object)))
print('person这个类对象的id为{0}'.format(id(Person)))#创建Person类的实例对象p1=Person('张三',20)
print('p1这个实例对象的id为{0}'.format(id(p1)))
结果为:
object这个类对象的id为140714352037376
person这个类对象的id为1939635729648
__new__被调用执行,cls的值为1939635729648
obj的super().__new__被执行,创建的对象的id为1939641818896
__init__被调用了,self的id值为1939641818896
p1这个实例对象的id为1939641818896
我们可以看到new产生的obj和p1和__init__的地址都一样。总结:
每创建一个新的类对象,都默认调用一次new,每创建一个新实例对象都会默认调用一次init
new是祖宗,init身体内的基因都是他的。先执行__new__再执行__init__,最后把对象赋给p1
super().__new__是Person这个子类里调用了父类Object的__new__函数
42、类的赋值与深、浅拷贝
浅拷贝的时候,拷贝对象包含的子对象还是老样子,不会把子对象也克隆新的一份,只创造拷贝对象的新克隆产生物
深拷贝的时候,拷贝对象里包含的子对象也会创造一份新的子对象。
43、模块(Modules)
变量<方法<类/函数<模块<包
导入自定义模块方法:
44、以主程序方法运行 (if __name__ =='__main__')
为了让导入的模块在导入时有些部分不执行,那些部分只在那个模块单独跑的时候才运行。我们可以设置如下所示(calc2是这个模块的名字,运行模块的时候执行这个print,导入到别的地方不运行)
45、import和from导入
在使用import导入的时候,只能导入包名和模块名。
在使用from…import导入的时候,可以导入包、模块、函数、变量名。
46、包(package)
包是new package产生的东西,可以理解成一个文件夹,里面放着一堆.py文件
包的特征就是自带一个.py文件叫__init__.py
47、编码
48、文件打开模式
49、文件对象的常用操作
关于flush和write:向文件中写入数据的时候,python并不会立刻写入,而是会写到缓冲区,等待清空的时候写入文件。用flush可以不用等close
50、with语句
简单而言,对文件操作,with语句可以实现自动调用enter和exit语句。防止你忘记写。
即
with X as Y:
Y.函数()
那么当这两句话执行的时候,会自动调用__enter__()和__exit__()
51、os语句相关目录操作
用法:比如以下语句可以实现查找当前路径
import os
print(os.getcwd())
os.path模块也有相关操作
52、try——except语句、raise语句(同异常处理机制)
我们把可能发生错误的语句放在try模块里,用except来处理异常。每一个try,都必须至少有一个except。一个try可以对应好几个except,而且每个except可以同时处理多种异常。
try except 语句的执行流程如下:
- 首先执行 try 中的代码块,如果执行过程中出现异常,系统会自动生成一个异常类型,并将该异常提交给 Python 解释器,此过程称为捕获异常。
- 当 Python 解释器收到异常对象时,会寻找能处理该异常对象的 except 块,如果找到合适的 except 块,则把该异常对象交给该 except 块处理,这个过程被称为处理异常。如果 Python 解释器找不到处理异常的 except 块,则程序运行终止,Python 解释器也将退出。
事实上,不管程序代码块是否处于 try 块中,甚至包括 except 块中的代码,只要执行该代码块时出现了异常,系统都会自动生成对应类型的异常。但是,如果此段程序没有用 try 包裹,又或者没有为该异常配置处理它的 except 块,则 Python 解释器将无法处理,程序就会停止运行;反之,如果程序发生的异常经 try 捕获并由 except 处理完成,则程序可以继续执行。
格式为:
try:
可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
处理异常的代码块1
except [ (Error3, Error4, ... ) [as e] ]:
处理异常的代码块2
except [Exception]:
处理其它异常
首先,这里的Error1,Error2等都是异常类型,比如ValueError
其次,[as e]:作为可选参数,表示给异常类型起一个别名 e,这样做的好处是方便在 except 块中调用异常类型(后续会用到)
补充:
使用raise抛出异常
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
53、continue和pass的区别
continue表示跳过后面的程序,重新循环,而pass表示站位,后面的代码(else之前)还是会执行。
54、def __repr__和def __str__
通常情况下,打印一个类或者类的对象,会显示
xx.xx object at 0xaaaaabbbbbbb
这是告诉你这个对象或者类储存在某个内存中。
要实现相关的打印功能,就需要定义__repr__或者__str__
比如:
class Test:def __init__(self, a, b):self.a = aself.b = bdef __repr__(self):return"<Test a:%s b:%s>" % (self.a, self.b)def __str__(self):return"From str method of Test: a is %s, b is %s" % (self.a, self.b)
>>> t = Test(123, 456)
>>> t
<Test a:123 b:456>
>>> print repr(t)
<Test a:123 b:456>
>>> print t
From str method of Test: a is 123, b is 456
>>> print str(t)
From str method of Test: a is 123, b is 456
注意:命令行下直接输出对象调用的是对象的repr方法,而print输出调用的是str方法
55、def __getitem__
加上__getitem__方法后,相当于将类变成了一个iterable类,即类似于数组,可以取其中某一项可以用循环迭代的类,具体如何取,则是调用__getitem__方法来判断
比如:
class temp:def __init__(self, i):self.id = np.arange(i)def __getitem__(self, index):i = self.id[index]return idef greeting(self):print("Hello", self.id)
>>>t=temp(9)
>>>t #输出为:<__main\__.temp at 0x1938accef70>
#表示t这个object的地址
>>>for i in t:
>>> print(i)
>>>0 1 2 3 4 5 6 7 8 #这里就调用了__getitem__函数
注意:__getitem__必须要有return,如果没有写return,也可以迭代但是会默认返回None。
56、zip()函数
zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及 range() 区间构成的列表)“压缩”成一个 zip 对象。所谓“压缩”,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。
例如:
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9, 10, 11]ab = zip(a, b)
print(list(ab)) # [(1, 4), (2, 5), (3, 6)]
# zip()之后的结果只能“使用一次”
# zip()实际上是一个生成器对象,故使用list()获取zip()结果时,已经相当于是完成一次迭代遍历
# 第二次再次使用list()时迭代已经结束,所以返回[]
print(list(ab)) # []ac = zip(a, c)
# print(list(ac)) # [(1, 4), (2, 5), (3, 6)],以短的为准list_1 = [1, 2, 3, 4]
list_2 = ['a', 'b', 'c']for x, y in zip(list_1, list_2):print(x, y)
#结果 1 a2 b3 c
57、函数(function)和方法(method)的区别
首先上结论。函数可能是类外定义的,即跟某个class完全无关的一个独立的函数;而方法是必须被类拥有的东西,必须在类内定义。
从分类角度来看
(1)函数的分类:
内置函数:python内嵌的一些函数。
匿名函数:一行代码实现一个函数功能。
递归函数
自定义函数:根据自己的需求,来进行定义函数。
(2)方法的分类:
普通方法:直接用self调用的方法。
私有方法:__函数名,只能在类中被调用的方法。
属性方法:@property,将方法伪装成为属性,让代码看起来更合理。
特殊方法(双下划线方法):以__init__为例,是用来封装实例化对象的属性,只要是实例化对象就一定会执行__init方法,如果对象子类中没有则会寻找父类(超类),如果父类(超类)也没有,则直接继承object(python 3.x)类,执行类中的__init__方法。
类方法:通过类名的调用去操作公共模板中的属性和方法。
静态方法:不用传入类空间、对象的方法, 作用是保证代码的一致性,规范性,可以完全独立类外的一个方法,但是为了代码的一致性统一的放到某个模块(py文件)中。
从调用角度来看
1 function是直接通过名字来调用的,它只能被传递参数来处理或者使用全局变量。
2 method 是通过与一个对象相关联的名字来调用的,它既可以被传递参数,也可以使用对象内部的数据。method 隐式的被传递了调用它的对象。(对象是实例化的类没,有特有的名字)
(1)函数:通过“函数名()”的方式进行调用。
(2)方法:通过“对象.方法名”的方式进行调用。
58、二维列表(list)初始化创建的一些坑
一般,要初始化一个固定长度的一维list,一般用这种方法
n = 3 # 定义一个长度为3的一维列表
list1 = [0] * n
同理,二维列表第一个想到的是
list 2 = [[0] * 3 ] * 3
#得到一个二维列表[[0,0,0],[0,0,0],[0,0,0]]
但是这样有个问题,因为这种方法的底层逻辑是把[0]*3 这个列表复制了3遍。如果我想改变list2的其中一个数,会导致其他被复制的也同样被改变,即
list2[0][0] = 1
print(list2)
# [[1,0,0],[1,0,0],[1,0,0]]
因此推荐用下面的方法初始化一个二维列表(矩阵)
list2 = [[0] * 5 for _ in range(5)]
59、函数参数前加星号*
在python的函数参数列表里经常会看到很多参数前面带了星号 比如
def test1(param1, *param2):
def test2(**param2):
不管是单星号*,但是双星号**,其目的都是为了处理多个参数传入的情况
比如原本test1函数只要求俩个参数param1,param2,但是如果传入了3个参数,比如
test1(1,2,3),那明显就会报错。但是如果加了单星号,函数就会把后面俩个参数2和3打包成一个tuple元组的形式作为param2传入test;如果加了2个星号,就会打包成dict字典的形式传入。
总结:
双星号(**):**kwargs 将参数以字典的形式导入
单星号(*):*agrs 将参数以元组(tuple)的形式导入
(这两个单词是约定的变量名字,args 是 arguments(参数) 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数,没啥特别规矩)
60、Python里将字符转换成ASCII 数值的函数ord()
ord()函数在python里就是将字符转化成ASCII 数值。ord()函数是Python中的一个库函数,它用于从给定的字符值中获取数字值,它接受一个字符并返回一个整数,即用于将字符转换为整数,即用于获取a的ASCII值。给定的字符。其中给定字符要加引号,比如ord("a"),不然视为变量a
61、lambda函数
lambda函数也叫匿名函数,即,函数没有具体的名称。
比如:
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>> print reduce(lambda x, y: x + y, foo)
139
62、Python内置的数据结构
Python中内置的数据结构有六种:(出去数值和字符串一般也说4种:list,tuple,set,dict)
- Number (数值)
- String (字符串)
- list (列表)
- Tuple(元组)
- Dictionary (字典)
- Set (集合)
除此以外,数组、矩阵等结构需要导入相关工具包后才可以实现。
比如deque的实现要
from collections import deque
Python语法笔记相关推荐
- python语法笔记(四)
1.对象的属性 python一切皆对象,每个对象都可能有多个属性.python的属性有一套统一的管理方案. 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性: ...
- python语法笔记(一)
1. python中多个函数或者类定义可以放在一个.py 文件中,视为一个模块.模块的.py文件中,一般要写 if __name__ == '__mian__' 用来单独执行该模块内的某些函数. 2. ...
- python语法笔记(六)
1.序列的方法 python中序列包含列表list.元组tuple.字符串str. 可以用于序列(表.元组.字符串)的内建函数: len(s) 返回: 序列中包含元素的个数min(s) 返 ...
- python语法笔记(五)
1.python内存管理 (1)对象内存使用 &nsbp;&nsbp;&nsbp;&nsbp;在python中通过执行内建函数 id(obj) 可以获得对象obj在 ...
- python3语法基础知识_Python语法笔记 - 基础知识
本文为博主原创文章,请遵守文章最后的版权申明. 有很多程序员在学习一门技术之前,都会有一番思想斗争.究竟要不要花时间去学?学了有什么意义?我大Java包办一切,何必要去学那些"旁门左道&qu ...
- 人工智能实践:TensorFlow笔记学习(二)—— Python语法串讲
Python语法串讲 大纲 2.1 Linux指令.HelloWorld 2.2 列表.元组.字典 2.3 条件语句 2.4 循环语句 2.5 turtle模块 2.6 函数.模块.包 2.7 类. ...
- python基本语法语句-python学习笔记:基本语法
原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...
- Python爬虫:Xpath语法笔记
Python爬虫:Xpath语法笔记 一.选取节点 常用的路劲表达式: 表达式 描述 实例 nodename 选取nodename节点的所有子节点 xpath('//div') 选取了div节点的 ...
- python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...
image.png 网上现在Python学习资料有很多,但是很杂.很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的. 刚好朋友是北大的博士,在IT行业也工作八年了.就把他学习Py ...
最新文章
- 每日一皮:完美解释 UDP 为什么会丢包...
- c语言链表把多少分以上打出来,大神帮我看一下怎么输入输出一个链表,我输入了但是没输出啊...
- Linux之Debian下安装LAMP apt-get安装方式
- 【OpenGL】详解第一个OpenGL程序
- hive的SerDe序列化
- [转]Aptana Studio 3配置Python开发环境图文教程
- iOS URL Schemes与漏洞的碰撞组合
- sql 判断连续数字
- Ubuntu Apache 不同端口监听不同站点
- VS2010提示asp.net v4.0 尚未在web服务器上注册
- 黑马python培训费用
- 图像增强-对数Log变换
- Arduino Nano技术指标
- vlan绑定_华为S5700交换机设置IP-MAC绑定功能
- 基于Python实现图片格式转换的小程序
- sm4加密算法C/C++源码
- hibernate中 one to many和many to one的非主键关联
- 常用页面代码html
- 2018(第九届)民用飞机工业国际论坛
- text函数提取年月