1. Python是动态语言 ,变量是不需要指定类型的 a = 'com' a = 123
2. Python的格式:行和缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
3. Python数据类型:
● Numbers(数字):int(有符号整型)long(长整型[也可以代表八进制和十六进制])float(浮点型)complex(复数)
●String(字符串):str='Hello World!'printstr printstr[2:5]
●List(列表):list=['runoob',786,2.23,'john',70.2] printlist[1:3]
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套),即不需要相同的类型
●Tuple(元组):tuple=('runoob',786,2.23,'john',70.2)
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表
●Dictionary(字典):tinydict= {'name':'john','code':6734,'dept':'sales'}
tinydict.keys() # 输出所有键 结果: ['dept','code','name']
tinydict.values()# 输出所有值 结果:['sales',6734,'john']
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
Python数据类型转换:int(x) str(x) 字符串直接加上数字是不行的,需要先转换
4. Python的日期和时间:
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
需要的时候需要仔细研究,有各式各样的格式和函数
5. Python函数:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
参数
以下是调用函数时可使用的正式参数类型:必备参数 关键字参数 默认参数 不定长参数
def printinfo(name,age):
print "Name: ",name;
print "Age ",age;
return;
#调用printinfo函数
printinfo(age=50,name="miki") 说明:这样是关键字参数调用,顺序可以任意调换,如果是必备参数的写法则 printinfo("miki",50)
其他参考:http://www.runoob.com/python/python-functions.html
另外说明:函数本质也是对象,被赋值的变量
6. Python-类变量,成员变量,静态变量,类方法,静态方法,实例方法,普通函数
(1)类变量:
7. 装饰器:包装函数——假设我们要增强now()函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改now()函数的定义,这种在代 码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。
python 的 Decorator在使用上和Java/C#的Annotation很相似,就是在方法名前面加一个@XXX注解来为这个方法装饰一些东西。但是,Java/C#的Annotation也很让人望而却步,太TMD的复杂了,你要玩它,你需要了解一堆Annotation的类库文档,让人感觉就是在学另外一门语言
无参数类型:
importfunctools
def logger(func):
@functools.wraps(func)
def inner(*args,**kwargs):#1
print"Arguments were: %s, %s"%(args, kwargs)
return func(*args,**kwargs)#2
retur ninner
有参数类型:
importfunctools
def log(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args,**kw):
print'%s %s():'%(text, func.__name__)
return func(*args,**kw)
return wrapper
return decorator
*args要么是表示调用方法大的时候额外的参数可以从一个可迭代列表中取得,要么就是定义方法的时候标志这个方法能够接受任意的位置参数