Python基础

变量名与赋值:变量名只能是字母、数字或下划线的任意组合,变量名的第一个字符不能是数字,关键字不能声明为变量名

 

常用数据类型:

整型:布尔型,标准整型,长整型

非整型:双精度浮点型,复数,decimal(不是内建类型)

序列类型:字符串,元组(tuple),列表(list)

映像类型:字典(dict)

type(a)查看变量a的类型

不可变数据类型:数字类型,不可变集合,字符串,元组(tuple)

可变数据类型:字典(dict),列表(list),可变集合(set)

 

流程控制:

if…else

while…

for…

break…

continue…

 

用户交互:

raw_input()和input()的区别

 

exec()和eval()函数:

eval()将字符串类型的代码执行并返回结果,print(eval('1+2+3+4'))

exec()将自字符串类型的代码执行,exec("print('hello,world')")

 

字符串常用功能:

移除空白 strip()

分割 split()

长度 len(obj)

索引 obj[]

切片 obj[1:],obj[1:10]

 

join()函数:

连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

 

获取list中指定元素的下标值:

#!/usr/local/bin/python
#_*_ coding:utf-8 _*_
a=[1,2,3,4,5,6,7,8,1,2,3,4,5,6,1,2,3,4,5]
pos=0
for i in range(a.count(2)) :   #先找出一共有多少个2,有多少就循环多少次
    if pos == 0 :                
        pos = a.index(2)
    else : 
        pos = a.index(2,pos+1)
    print pos

 

dict,list,set区别:

dict:查找和插入的速度极快,不会随着key的增加而增加。需要占用大量的内存,内存浪费多。KEY不可变。默认无序

list:查找和插入的时间随着元素的增加而增加。占用空间小,浪费内存很少。通过下标查询。有序

set:无序,不重复

 

Python计数器:

import collections
obj = collections.Counter('sdfasdfasdfsdfqwerqw')
print(obj)
ret = obj.most_common(4)
print(ret)

 

enumerate()函数:

取得位置索引和相应的值

#!/usr/bin/python

for i,v in enumerate(['tic','tac','toe']):

    print(i,v)

for i,v in enumerate(['tic','tac','toe'],1):

    print(i,v)

 

文件处理:

f.read()与f.readline()与f.readlines()与f.xreadlines()区别

read()方法用于直接读取字节到字符串中,可以将参数给定最多读取的字节数,如果没有给定,则文件读取到末尾

readline()方法读取打开文件的一行(读取下个行结束符之前的所有字节),然后整行,包括行结束符,作为字符串返回

readlines()方法读取所有行然后把它们作为一个字符串列表返回

xreadlines()返回一个生成器,来循环操作文件的每一行

f.write()与f.writelines()

write()将字符串写入文件中

writelines()接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动加入,需要显示加入换行符

f.seek(64) 指定当前指针位置

f.tell() 查看当前指针位置

 

深浅拷贝:

对于数字和字符串而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址

对于字典、元组、列表而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的

浅拷贝,在内存中只额外创建第一层数据

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

 

lambda表达式,map(),reduce():

Lambda表达式

temp = lambda x,y:x+y

print temp(4,10)

map()对所有元素进行统一操作

reduce()用来进行累计操作,累加,累减,累乘等

 

通用模块:

要想当成一个模块使用,文件夹下必须有__init__.py

是否为主文件:if __name__ == '__main__ '

当前文件路径:__file__

当前文件描述:__doc__

random模块

md5模块

序列化和json:dumps,loads

re正则表达式:

match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配

re.split()将匹配到的格式当做分割点对字符串分割成列表

re.findall()找到所有要匹配的字符并返回列表格式

时间模块:

print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

print datetime.datetime.now().strftime("%Y_%m_%d_%H_%M_%S")

sys模块:

sys.argv 命令行参数List,第一个元素是程序本身路径

sys.exit(n) 退出程序,正常退出时exit(0)

os模块

shutl模块:高级的文件、文件夹、压缩包处理模块

configparser模块:用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为configparser

subprocess模块:运行一个外部的程序,subprocess.Popen(...)用于执行复杂的系统命令

logging模块

 

面向对象:

Class类

Object对象

Encapsulation封装

Inheritance继承

Polymorphism多态

接口

单例模式

单例模式用来保证内存中仅存在一个实例
##单例定义
class Foo(object):
    __instance = None
    @staticmethod
    def singleton():
        if Foo.__instance:
            return Foo.__instance
        else:
            Foo.__instance = Foo()
            return Foo.__instance
##获取实例
obj = Foo.singleton();

 

反射:

以字符串的形式导入模块:

temp = 'mysqlhelper'

model = __import__(temp)

model.count()

以字符串的形式执行函数:

temp = 'mysqlhelper'

func = 'count'

model = __import__(temp)

Function = getattr(model, func)

print Function()

 

socket编程:

SocketServer是python的一个网络服务器框架,可以减少开发人员编写网络服务器程序的工作量

 

异常处理:

try:
    pass
except xxxExcept,e:
    pass
except Exception,e:
    pass
else:
    pass
finally:
    pass

class MyError(Exception): 
    def __init__(self,msg): 
        self.Message = msg 
    def __str__(self): 
        return self.Message 
try: 
    a = 1 
    raise MyError('卧槽') 
except Exception,e: 
    print e

断言
assert(1==1)

 

posted @ 2019-08-07 11:27  AllenHU320  阅读(181)  评论(0编辑  收藏  举报