Python语法概览
2015-09-10 15:21
591 查看
一 变量
不需要声明,变量的赋值操作既是变量声明和定义的过程,使用前都必须赋值,变量赋值以后该变量才会被创建。同时赋值:a = b = c = 1
分别赋值连写:a, b, c = 1, 2, “john”
1.1 数据类型
标准的数据类型:Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
数值类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
长整型:小写”L”,建议用大写”L”,避免与数字”1”混淆。
复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
1.2 字符串
截取一段子串的话,可以用到变量[头下标 : 尾下标],返回一个新的对象加号(+)是字符串连接运算符
星号(*)是重复操作。
str = 'Hello World!' print str # 输出完整字符串 print str[0] # 输出字符串中的第一个字符 print str[2:5] # 输出字符串中第三个至第五个之间的字符串 print str[2:] # 输出从第三个字符开始的字符串 print str * 2 # 输出字符串两次 print str + "TEST" # 输出连接的字符串
1.3 列表
数组很像1. 使用最频繁,可以完成大多数集合类的数据结构实现。
2. 支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
3. 列表用[ ]标识。
4. 截取[头下标:尾下标],从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
5. 列表是允许更新的
1.4 元组
只读的数组1. 元组用”()”标识。内部元素用逗号隔开。
2. 但是元素不能二次赋值,相当于只读列表。
3. 也可以用[]截取。
4. 元组是不允许更新的。
1.5 元字典
还是key -> value列表是有序的对象结合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用”{ }”标识。字典由索引(key)和它对应的值value组成。
dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
1.6 内置数据类型转换
将数据类型作为函数名,返回一个新的对象二 运算符
2.1 算术运算符
+-
*
/
% 取模 - 返回除法的余数
** 幂 - 返回x的y次幂
// 取整除 - 返回商的整数部分
2.2 比较运算符
== != <> > < >= <=2.3 赋值运算符
= += -= = /= %= *= //=2.4 位运算符
& | ^ ~ << >>2.5 逻辑运算符
and or not2.6 成员运算符
in:如果在指定的序列中找到值返回True,否则返回False。x 在 y序列中 , 如果x在y序列中返回True。
not in:如果在指定的序列中没有找到值返回True,否则返回False。
x 不在 y序列中 , 如果x不在y序列中返回True。
2.7 身份运算符
用于比较两个对象的存储单元is:判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not:判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
2.8 运算符优先级
三 语句
3.1 条件语句
if 判断条件: 执行语句…… else: 执行语句……
if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
python 并不支持 switch 语句
多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
3.2 循环语句
while 循环while 判断条件: 执行语句……
使用 else 语句:else 中的语句会在循环正常执行完执行
for 循环
循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for iterating_var in sequence: statements(s)
序列索引迭代:
fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)): print 'Current fruit :', fruits[index] print "Good bye!"
使用 else 语句:else 中的语句会在循环正常执行完执行
嵌套循环: 可以在while循环体中嵌套for循环
for 循环嵌套语法
for iterating_var in sequence:
for iterating_var in sequence: statements(s)
statements(s)
while 循环嵌套语法:
while expression: while expression: statement(s) statement(s)
break 语句:打破了最小封闭for或while循环。
continue 语句:跳出本次循环。
pass 语句:pass是空语句,是为了保持程序结构的完整性。不做任何事情,一般用做占位语句。
四 重点类
常用的类,具体查看相关API.1. Math:可以使用del语句删除一些数字对象引用。
2. 字符串:Python不支持单字符类型,单字符也在Python也是作为一个字符串使用
转义字符:自行搜索
3. Lists:列表是Python中最基本的数据结构
4. 元组
5. 字典
6. 日期时间
五 函数
5.1 定义
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
5.2 按值传递参数和按引用传递参数
所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。5.3 参数类型
命名参数:使用命名参数就可以传参数的时候以任意顺序传参:printme( str = "My string");
缺省参数:
def printinfo( name, age = 35 ):
不定长参数:
def functionname([formal_args,] *var_args_tuple ):星号(*)的变量名会存放所有未命名的变量参数
5.4 匿名函数
使用 lambda 来创建匿名函数:lambda [arg1 [,arg2,.....argn]]:expression
5.5 return语句
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None5.6 变量作用域
全局变量局部变量
六 模块
简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。6.1 import模块
import module1[, module2[,... moduleN]
6.2 From…import
Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。from modname import name1[, name2[, ... nameN]]
例子:
#要导入模块fib的fibonacci函数 from fib import fibonacci
6.3 From…import*
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:from modname import *
6.4 定位模块
当你导入一个模块,Python解析器对模块位置的搜索顺序是:1. 当前目录
2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录
3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
6.5 PYTHONPATH变量
作为环境变量,PYTHONPATH由装在一个列表里的许多目录组成。PYTHONPATH的语法和shell变量PATH的一样。在Windows系统,典型的PYTHONPATH如下:
set PYTHONPATH=c:\python20\lib;
在UNIX系统,典型的PYTHONPATH如下:
set PYTHONPATH=/usr/local/lib/python
6.6 命名空间和作用域
命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。如果要给全局变量在一个函数里赋值,必须使用global语句
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法