Python基础语法总结
本文内容纲要:
-
-
-
-
-
-
-
-
-
1.Python标识符
在Python里,标识符有字母、数字、下划线组成。
在Python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
Python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用fromxxximport*而导入;
以双下划线开头的__foo代表类的私有成员;以双下划线开头和结尾的__foo__代表Python里特殊方法专用的标识,如__init__()代表类的构造函数。
2.Python有五个标准的数据类型
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
Python支持四种不同的数字类型:
- int(有符号整型)
- long(长整型[也可以代表八进制和十六进制])
- float(浮点型)
- complex(复数)
python的字串列表有2种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
List(列表)是Python中使用最频繁的数据类型。
- 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
- 列表用[]标识,是python最通用的复合数据类型。
- 列表中值的切割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
- 加号+是列表连接运算符,星号*是重复操作。
元组是另一个数据类型,类似于List(列表)。
- 元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。
- 列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 字典用"{}"标识。字典由索引(key)和它对应的值value组成。
3.Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int(x[,base])
将x转换为一个整数
long(x[,base])
将x转换为一个长整数
float(x)
将x转换到一个浮点数
complex(real[,imag])
创建一个复数
str(x)
将对象x转换为字符串
repr(x)
将对象x转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列s转换为一个元组
list(s)
将序列s转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d必须是一个序列(key,value)元组。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
unichr(x)
将一个整数转换为Unicode字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
4.Python运算符
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
python算术运算符
①:python比较运算符
以下假设变量a为10,变量b为20:
②:Python赋值运算符
以下假设变量a为10,变量b为20:
③:Python位运算符
下表中变量a为60,b为13,二进制格式如下:
a=00111100b=00001101-----------------a&b=00001100a|b=00111101a^b=00110001~a=11000011
④:Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量a为10,b为20:
⑤:Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
⑥:Python身份运算符
身份运算符用于比较两个对象的存储单元
注:is与==区别:
is用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等。
5:Python循环语句
Python提供了for循环和while循环(在Python中没有do..while循环):
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
6:PythonNumber(数字)
Python支持四种不同的数值类型:
- 整型(Int)-通常被称为是整型或整数,是正或负整数,不带小数点。
- 长整型(longintegers)-无限大小的整数,整数最后是一个大写或小写的L。
- 浮点型(floatingpointrealvalues)-浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2=2.5x102=250)
- 复数(complexnumbers)-复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。
注:长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
- Python还支持复数,复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型
PythonNumber类型转换:
int(x[,base])将x转换为一个整数long(x[,base])将x转换为一个长整数float(x)将x转换到一个浮点数complex(real[,imag])创建一个复数str(x)将对象x转换为字符串repr(x)将对象x转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列s转换为一个元组list(s)将序列s转换为一个列表chr(x)将一个整数转换为一个字符unichr(x)将一个整数转换为Unicode字符ord(x)将一个字符转换为它的整数值hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个八进制字符串python数学函数:
Python随机函数:
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数:
Python三角函数:
Python包括以下三角函数:
Python数学常量:
7:Python字符串Python转义字符:
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
Python字符串运算符:
下表实例变量a值为字符串"Hello",b变量值为"Python":
Python字符串格式化:
Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符%s的字符串中。
在Python中,字符串格式化使用与C中sprintf函数一样的语法。
如下实例:
#!/usr/bin/python
print"Mynameis%sandweightis%dkg!"%('Zara',21)
以上实例输出结果:
MynameisZaraandweightis21kg!
python字符串格式化符号:
8.Python列表:
Python包含以下函数:
比较两个列表的元素
列表元素个数
返回列表元素最大值
返回列表元素最小值
将元组转换为列表
Python包含以下方法:
在列表末尾添加新的对象
统计某个元素在列表中出现的次数
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
从列表中找出某个值第一个匹配项的索引位置
将对象插入列表
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
移除列表中某个值的第一个匹配项
反向列表中元素
对原列表进行排序
9.Python元组
Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组内置函数:
Python元组包含了以下内置函数
比较两个元组元素。
计算元组元素个数。
返回元组中元素最大值。
返回元组中元素最小值。
将列表转换为元组。
10.Python字典(dictionary)
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号(**{})**中
字典内置函数及方法:
Python字典包含了以下内置函数:
比较两个字典元素。
计算字典元素个数,即键的总数。
输出字典可打印的字符串表示。
返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
删除字典内所有元素
返回一个字典的浅复制
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
返回指定键的值,如果值不在字典中返回default值
如果键在字典dict里返回true,否则返回false
以列表返回可遍历的(键,值)元组数组
以列表返回一个字典所有的键
和get()类似,但如果键不存在于字典中,将会添加键并将值设为default
把字典dict2的键/值对更新到dict里
以列表返回字典中的所有值
删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。
随机返回并删除字典中的一对键和值。
11.匿名函数lambda
python使用lambda来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
如:
sum=lambdaarg1,arg2:arg1+arg2;print"相加后的值为:",sum(10,20)//输出3012.pythonimport语句
- From...import语句
Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:
frommodnameimportname1[,name2[,...nameN]]
例如,要导入模块fib的fibonacci函数,使用如下语句:
fromfibimportfibonacci
这个声明不会把整个fib模块导入到当前的命名空间中,它只会将fib里的fibonacci单个引入到执行这个声明的模块的全局符号表。
- From...import*语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
frommodnameimport*
这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。
例如我们想一次性引入math模块中所有的东西,语句如下:
frommathimport*
13.Python文件操作
- 打开和关闭文件
现在,您已经可以向标准输入和输出进行读写。现在,来看看怎么读写实际的数据文件。
Python提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用file对象做大部分的文件操作。
- open函数
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
语法:
fileobject=open(file_name[,access_mode][,buffering])
各个参数的细节如下:
- file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
- access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
- buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
不同模式打开文件的完全列表:
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
- File对象的属性
一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
以下是和file对象相关的所有属性的列表:
属性 | 描述 |
---|---|
file.closed | 返回true如果文件已被关闭,否则返回false。 |
file.mode | 返回被打开文件的访问模式。 |
file.name | 返回文件的名称。 |
file.softspace | 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。 |
- close()方法
File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
当一个文件对象的引用被重新指定给另一个文件时,Python会关闭之前的文件。用close()方法关闭文件是一个很好的习惯。
语法:
fileObject.close();
- write()方法
write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
write()方法不会在字符串的结尾添加换行符('\n'):
语法:
fileObject.write(string);
- read()方法
read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
语法:
fileObject.read([count]);
- 文件定位
tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。
seek(offset[,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
- 重命名和删除文件
Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。
remove方法
你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。
- Python里的目录
所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。
1.mkdir()方法
可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
语法:
os.mkdir("newdir")
2.chdir()方法
可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
语法:
os.chdir("newdir")
3.rmdir()方法
rmdir()方法删除目录,目录名称以参数传递。
在删除这个目录之前,它的所有内容应该先被清除。
语法:
os.rmdir('dirname')
- 文件、目录相关方法
三个重要的方法来源能对Windows和Unix操作系统上的文件及目录进行一个广泛且实用的处理及操控,如下:
File对象方法:file对象提供了操作文件的一系列方法。
OS对象方法:提供了处理文件及目录的一系列方法。
14.PythonFile(文件)方法
file对象使用open函数来创建,下表列出了file对象常用的函数:
file.close()
关闭文件。关闭后文件不能再进行读写操作。
file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。
file.fileno()
返回一个整型的文件描述符(filedescriptorFD整型),可以用在如os模块的read方法等一些底层操作上。
file.isatty()
如果文件连接到一个终端设备返回True,否则返回False。
file.next()
返回文件下一行。
file.read([size])
从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size])
读取整行,包括"\n"字符。
file.readlines([sizehint])
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行,实际读取值可能比sizhint较大,因为需要填充缓冲区。
file.seek(offset[,whence])
设置文件当前位置
file.tell()
返回文件当前位置。
file.truncate([size])
截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str)
将字符串写入文件,没有返回值。
file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
15.Python内置函数
本文内容总结:,,,,,,,,,
原文链接:https://www.cnblogs.com/shanlizi/p/7015852.html