![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python基础
风从北方来
一枚前端攻城狮
展开
-
线程与进程
线程:操作系统的最小调度单位,是一串指令的集合。比如:操作系统要调用cpu,就会通过传递一堆指令即发送一个线程来进行。进程:形象来讲比如一个笔记本的app要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理,网络接口的调用。进程就是各种资源管理的集合。进程要操作CPU,必须要创建一个线程。线程工作方式:多个线程共享一个CPU。1个进程可有1个线程或多个线程,1个进程的所有线程...原创 2018-04-28 12:21:55 · 142 阅读 · 0 评论 -
Python---shutil模块常见函数用法
shutil模块主要是对文件的复制(权限与内容),压缩。import shutil#f1=open("sanyueershiba",encoding="utf-8")#f2=open("copysanyueershiba",'w',encoding="utf-8")#shutil.copyfileobj(f1,f2) #将f1文件内容拷贝到f2文件中#shutil.copyfi...原创 2018-03-28 15:41:39 · 1533 阅读 · 0 评论 -
Python----异常处理.
异常处理:顾名思义报错处理方法,目的是虽然程序出错,但此错不想让用户看到。一次可以对单个异常处理,也可以多个一起处理,或可以捕捉所有所有异常,异或自定义异常。常见异常类型:AttributeError 属性异常 IOError 输入/输出异常 ImportError 导入错误 IndentationError 缩进异常 IndexError 下标索引超出序列边界 KeyError 访...原创 2018-04-16 14:19:08 · 280 阅读 · 0 评论 -
Python---sys模块常用函数
sys模块是一个标准库,为cPython 解释器自带。因此在标准库的路径里找不到sys模块。提供访问由解释器使用或维护的变量和在与解释器交互使用到的函数。常用函数:import sysprint(sys.path) #打印环境变量print(sys.argv) #程序本身路径 (命令行参数list)print(sys.version) #获取Python解释程序的版本信...原创 2018-03-28 11:45:30 · 1373 阅读 · 0 评论 -
Python---反射ttr
反射:通过字符串映射或修改程序运行时的状态,属性,方法。4个函数:getattr(),hasattr(),setattr(),delattr()用法如下:def bulk(self): print("%s is yelling"%self.name)class Dog(object): def __init__(self,name): self.name=name...原创 2018-04-16 10:00:50 · 281 阅读 · 0 评论 -
一个消费者与生产者的生成器并行模型
思想:消费者负责消费,生产者负责生产,消费者消费的同时生产者要把生产好的产品送到消费者地点去,保证消费者有产品。如下:import timedef consumer(name): print("%s准备吃棉花糖了"%name) while True: cottoncandy=yield print("棉花糖%s,被%s吃了"%(cottoncand...原创 2018-03-22 12:31:01 · 190 阅读 · 0 评论 -
Python---生成器
生成器是什么?用来干什么:生成器是生成一个算法,生成一组有规律的数。用途见后期更新生成器的两种生成方式:(1)修改列表生成式生成简单的生成器(2)在实现一个算法推算的函数中加入yield语句生成复杂的生成器。那么什么是列表生成式呢:a=[]for i in range(20): a.append(i*i)print(a)这两种形式可以生成一个list,...原创 2018-03-22 11:55:34 · 267 阅读 · 0 评论 -
Python---os模块常用函数
import os#os模块常用方法print(os.getcwd()) #获得当前操作目录#切换路径,参数为新路径os.chdir(r"D:\Python内容") #路径的写法还可以 "D:\\Python内容"print(os.getcwd()) #获得新路径os.makedirs(r"D:\aaa\bbb\ddd\f\d") #递归地创建文件 必须创建不存在的文件...原创 2018-03-25 22:31:01 · 263 阅读 · 0 评论 -
Python---random模块
random模块的常用函数import randomprint(random.random()) #获得0-1之间的随机浮点数print(random.randint(1,3)) #生成[1,3]的整数print(random.randrange(1,3)) #顾头不顾尾print(random.choice([1,2,3,4,5,6])) #参数可以是任意序列类型,返回序列中的...原创 2018-03-24 21:35:15 · 192 阅读 · 0 评论 -
Python---用来处理时间的标准库time,datetime
Python 中用来处理时间的标准库 有time,datetime. time模块 处理3种时间表示形式的互相转化和一般的时间问题。datetime模块 处理时间的加减,修改问题。时间的3种表示形式:(1)格式化的字符串 eg "'2018''3''24''16':'40'" (2)时间戳。即从1970年到现在时间差的秒数表达。计算机以...原创 2018-03-24 19:51:57 · 1954 阅读 · 0 评论 -
Python---装饰器
装饰器:其本身为函数,用来装饰其他函数,也就是为其他函数增加功能。装饰器设计遵循原则:1.不能修改被装饰函数的源代码 2.不能修改被装饰函数的调用方式通常一个装饰器是由 高阶函数和嵌套函数组成。且会把函数当成变量使用。装饰器1:被装饰函数有无参数通用版,装饰器本身无参数import timedef timer(f...原创 2018-03-20 20:46:57 · 156 阅读 · 0 评论 -
Python---shelve模块
shelve模块作用如同json与pickle,但是是以key-value形式将内存数据通过文件持久化的模块。支持Python基本数据类型。1.list,dict持久化import shelved=shelve.open("shelve_test")info={"job":"worker","age":"18"}name=["alex","rain","原创 2018-03-28 16:23:15 · 182 阅读 · 0 评论 -
Python---configparser模块
configparser模块用于生成和修改常见配置文档生成配置文档:import configparserconfig=configparser.ConfigParser()config["DEFAULT"]={'ServerAliveInterval':'45', 'Compression':'yes', 'Com...原创 2018-03-28 17:44:02 · 132 阅读 · 0 评论 -
Python---静态方法,类方法,属性方法
1.静态方法#静态方法:只是名义上归类管理,实际上在静态方法中访问不了类和实例class Person(object): def __init__(self,name): self.name=name @staticmethod #截断类与函数关系,不能调用类变量 def eat(): print("%s is eating %s"%(...原创 2018-04-16 18:26:16 · 173 阅读 · 0 评论 -
Python---socketserver介绍
socket不支持并发。socketserver可以实现并发处理,socketserver是对socket的一个封装。socketserver 包含4个类型:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer.前两个用于windows,后两个用于Linux.创建一个SocketServer分3步:(1)创建一个请求处理类,并继承BaseR...原创 2018-04-25 19:46:42 · 460 阅读 · 0 评论 -
Python---断言
实例:判断obj.name是否属于字符串用途:可替换if ...else...语句原创 2018-04-21 22:17:57 · 132 阅读 · 0 评论 -
Python---动态导入模块
在动态导入模块.py中动态导入aa.py.注:__import__(模块名的字符串形式)等同于import 模块名原创 2018-04-21 22:06:55 · 510 阅读 · 0 评论 -
Python---利用socket传送文件并利用md5验证传送内容是否正确
socket传送文件与传送命令的不同点是文件需要先读取文件名,检测存在性,在传送,而命令则直接发送。同实现ssh道理一致,服务端接收到客户端文件指令后,服务端发送文件返回给客户端。实例如下:服务端:import socket,os,hashlibserver=socket.socket()server.bind(("localhost",6969))server.listen(5)wh...原创 2018-04-25 15:24:34 · 955 阅读 · 0 评论 -
Python---socket实现一个简单的ssh
ssh:客户端连接上服务器后,让服务器执行命令,返回给客户端。服务端:import socket,osserver = socket.socket()server.bind(("localhost", 6969))server.listen(5)while True: conn, addr = server.accept() print("new conn:", add...原创 2018-04-24 20:17:25 · 603 阅读 · 0 评论 -
socket实现多用户连接
#服务端import socketserver=socket.socket()server.bind(("localhost",6969))server.listen(5)print("我要开始等电话了")while True: conn,addr=server.accept() print(conn,addr) print("电话来了") count原创 2018-04-19 22:22:48 · 2480 阅读 · 0 评论 -
Python---socket实例
#服务器端import socketserver=socket.socket()server.bind(("localhost",7045))server.listen()print("开始等电话")conn,addr=server.accept() #等电话打进来print(conn,addr)print("电话来了")data=conn.recv(1024)pri原创 2018-04-18 22:10:43 · 164 阅读 · 0 评论 -
Python---类的起源和metaclass
1.metaclass# metaclassclass MyType(type): def __init__(self,what,bases=None,dict=None): print("--MyType init--") super(MyType,self).__init__(what,bases,dict) def __call__(原创 2018-04-18 19:39:53 · 143 阅读 · 0 评论 -
Python---类的特殊成员方法
#1.__doc__class Person(object): ''' 这个类是描述人这个对象的 '''print(Person.__doc__) #打印类的描述信息#2. __call__ 对象后面加(),触发执行class Person(object): ''' 这个类是描述人这个对象的 ''' def __init_原创 2018-04-18 17:31:11 · 478 阅读 · 0 评论 -
Python---hashlib模块与hmac模块
hashlib模块用于加密相关操作。加密算法有MD5,sha1等。sha1比MD5加密更安全。MD5加密:import hashlibm=hashlib.md5()m.update(b"You are charming")print(m.hexdigest()) #输出十六进制值m.update(b"I like you")print(m.hexdigest()) #两次更新结果#...原创 2018-03-28 21:47:07 · 306 阅读 · 0 评论 -
Python---高阶函数与嵌套函数
高阶函数:若函数参数中有函数,则就为高阶函数。eg:def mul(a,b,f): return f(a)*f(b)product=mul(-3,-5,abs)print(product)abs是一个绝对值函数。注:abs()是对函数的调用。嵌套函数:def Shaanxi(): print("Shaanxi is like a cock in the world map")...原创 2018-03-20 20:35:40 · 666 阅读 · 0 评论 -
Python---递归
递归函数:若一个函数在内部调用自己,则为递归函数。递归最大次数是999递归特点:(1)必须要有结束条件 (2)每次进入更深一层递归时,问题规模逐渐减少。 (3)递归函数效率低,递归次数过多会导致栈溢出。原因:函数调用是通过栈结构实现,每当进入一个函数调用,就会增加一层栈帧,每当函数返回,栈就会减少一层栈帧,而栈的空间是有限的。eg:d...原创 2018-03-20 20:03:14 · 123 阅读 · 0 评论 -
Python---迭代器
可迭代对象(Iterable):可直接作用于for循环的对象。有:list,tuple,dict,set,str,generator。迭代器(Iterator):可被__next()__函数调用并不断返回下一个值的对象。是一个数据结构。判断某个对象是否是Iterable or Iterator用内置函数isinstance().如下例from collections import Iterable...原创 2018-03-22 15:27:05 · 144 阅读 · 0 评论 -
python---字符编码和转码
字符编码:由于计算机是按01二进制方式存储,所以要对非01的各类字符进行编码,最早的字符编码方式是美国提出的ASCII,但只是对它自己国的字符(大小写字母,阿拉伯数字,一些常用字符总共127个)进行了编码,不方便其他国家使用。接下来中国在1980年制定了gb2312编码,其中包括七千多个汉字,可是远远不能满足人们的需求。因此在1995年,中国又制定了GBK1.0编码,编码了2w左右的汉字。2000...原创 2018-03-17 22:27:24 · 222 阅读 · 0 评论 -
Python中的with语句
with语句用处:文件操作时,时常有忘记关闭的情况,因此可以选用with语句,with语句执行完,文件自动关闭且释放文件资源。eg: 关闭1个文件with open("poem1",'r',encoding="utf-8") as f: for line in f: print(line)eg:with可同时打开多个文件进行操作with open("poem1",'r',e...原创 2018-03-17 16:47:27 · 252 阅读 · 0 评论 -
Python中文件的增删改查
增加:利用写,增加文件内容删除:将文件打开方式变为‘w’'w+'来删除全部文件内容。也可以通过截断函数truncate()删除需要删除的部分修改:(1)可以将文件全部加载在内存中,在写到原文件。此方法一般不采用,常用方法是(2) (2)打开文件,修改完后写到一个新文件中。即可同时打开两个文件,从一个文件读往另一个文件写。eg:将poem1文件中的eeeee改为EEEEEf=ope...原创 2018-03-17 16:23:03 · 2033 阅读 · 0 评论 -
Python中以'r','r+','w','w+','a','a+'打开文件的区别
‘r’只读模式,必须打开一个已有的文件,且只能执行读操作。‘r+’读+追加模式,可读可写,与‘r’相同之处在于也是必须打开一个已有的文件,不同的是它可写可读,而且写与读不分先 后,即随时都可进行读与写。(写为追加在文件末尾)‘w’只写模式,打开即默认创建一个新的空文件,当然若打开的是已有文件,则清空文件,且只能执行写操作。‘w+’写读模式,打开创建新文件,因此需要先把内容...原创 2018-03-17 15:48:35 · 22583 阅读 · 1 评论 -
Python---文件2
1.截断函数truncate()f=open("poem1","a",encoding="utf-8")#f.truncate() #不变#f.seek(10)f.truncate(10) #从第10个字符截断f=open("poem1","a",encoding="utf-8")#f.truncate() #不变f.seek(10)f.truncate(20) #原创 2018-03-17 15:09:41 · 138 阅读 · 0 评论 -
Python---文件1
文件操作流程:分3步:打开,操作,关闭。文件打开:#读模式打开文件,f=open("poem1",'r',encoding="utf-8")#写模式打开f=open("poem2",'w',encoding='utf-8') #写模式打开默认创建一个新文件#不覆盖内容,用追加模式'a'打开f=open("poem2",'a',encoding='utf-8')#读写模式打开 'r+'f=...原创 2018-03-17 12:02:07 · 152 阅读 · 0 评论 -
Python---集合set
set:对一个列表做set可得到一个集合。#set定义like_Chinese=['Sun Da','Li Wei','Meng Dawei','He Ning','Xiao Bei']like_English=['Bei Fang','Xiao Bei','Deng Deng','Xiao Hua']like_Chinese=set(like_Chinese) #集合like_Eng...原创 2018-03-16 11:12:21 · 151 阅读 · 0 评论 -
python---三级菜单
data={"Shaanxi":{"Xian":{"Changan":("Weiqu","Yinzhen"), "Yanta":("Yucai","Xiaozhai"), "Beilin":("Changlefang&qu原创 2018-03-15 20:10:26 · 186 阅读 · 0 评论 -
python----字典操作
字典的出现:介于列表存储信息少,增删查改速度慢,出现了字典,用来存储更多种类信息,字典是一种key-value存储,key值不可变,可以是整数,字符串,不能是list,通过key值找value,每个key值只对应一个value.字典定义:(1)basketballplayer={'01':"Sun Dali", ...原创 2018-03-15 11:58:49 · 186 阅读 · 0 评论 -
python 变量,数据类型,用户输入输出,流程控制,循环
pytnon属于动态强类型解释性语言。1.变量定义与c基本一致。满足3点:(1)变量名是字母,数字或下划线的任意组合。(2)不能以数字开头。(3)关键字不能作为变量名。此外要注意 变量命名要有含义,尽可能用英文单词,不用拼音。变量作用是存东西。东西可以是数据(整数,浮点数),字符串等等。 常量:python中没有常量概念,但若想表示常量用大写变量名。2.用户输入输出:eg0: username=...原创 2018-03-12 19:35:47 · 403 阅读 · 0 评论 -
python 解释器
初学python,觉得廖雪峰这个解释和总结的不错,因此这段是从廖雪峰官方网站截取。当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多...转载 2018-03-12 19:55:41 · 115 阅读 · 0 评论 -
python 中sys,os模块及 .pyc文件
1.模块又叫库,分为标准库和第三方库。标准库可直接导入使用。第三方库则必须下载安装才能用。一般标准库路径为python/base/lib ,而一般第三方库路径为python/base/lib/sitepackages2.说明常用的sys,os库的一般使用。os库是与系统交互的库eg1: import sys #导入sys模块 print(sys.path) #打印环境变量 ...原创 2018-03-12 20:39:26 · 268 阅读 · 0 评论 -
Python---局部变量和全局变量
局部变量与全局变量:定义及使用都与其他语言一样,局部变量在局部定义,作用域为局部即子程序,全局变量在程序初始定义,作用域为整个程序。但是不同的是(1)Python中局部变量若用global关键词定义,则说明此变量已经为全局变量。意味着全局变量在子函数中可以更改。(注:但是这种global方式一般不提倡使用,原因在于会出现不清楚在何地全局变量改变的情况)(2)除了字符串和数字的全局变量在子函数中不能...原创 2018-03-20 18:34:19 · 388 阅读 · 0 评论