搜索到与相关的文章
Python

python高级编程——锁

锁在使用用的过程中需要导入threading模块的Lock类使用锁:当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制是引入互斥锁。互斥锁为资源引入一个状态:锁定/非锁定。锁的语法创建锁、锁定锁、释放锁fromthreadingimportLock#创建锁mutex=Lock()#获取锁(上锁)mutex.acquire()#释放锁(解锁)mutex.release()在锁定锁的过程中ac

系统 2019-09-27 17:55:04 2031

Python

跟老齐学Python之通过Python连接数据库

用Python来编写网站,必须要能够通过python操作数据库,所谓操作数据库,就是通过python实现对数据的连接,以及对记录、字段的各种操作。上一讲提到的那种操作方式,是看官直接通过交互模式来操作数据库。安装python-MySQLdb要想通过python来操作数据库,还需要在已经安装了mysql的基础上安装一个称之为mysqldb的库,它是一个接口程序,python通过它对mysql数据实现各种操作。在编程中,会遇到很多类似的接口程序,通过接口程序对

系统 2019-09-27 17:54:55 2031

Python

零基础写python爬虫之爬虫框架Scrapy安装配置

前面十章爬虫笔记陆陆续续记录了一些简单的Python爬虫知识,用来解决简单的贴吧下载,绩点运算自然不在话下。不过要想批量下载大量的内容,比如知乎的所有的问答,那便显得游刃不有余了点。于是乎,爬虫框架Scrapy就这样出场了!Scrapy=Scrach+Python,Scrach这个单词是抓取的意思,Scrapy的官网地址:点我点我。那么下面来简单的演示一下Scrapy的安装流程。具体流程参照://www.jb51.net/article/48607.htm

系统 2019-09-27 17:54:46 2031

Python

Python对象类型及其运算方法(详解)

基本要点:程序中储存的所有数据都是对象(可变对象:值可以修改不可变对象:值不可修改)每个对象都有一个身份、一个类型、一个值例:>>>a1='abc'>>>type(a1)str创建一个字符串对象,其身份是指向它在内存中所处的指针(在内存中的位置)a1就是引用这个具体位置的名称使用type()函数查看其类型其值就是'abc'自定义类型使用class对象的类型用于描述对象的内部表示及其支持的方法和操作创建特定类型的对象,也将该对象称为该类型的实例,实例被创建后

系统 2019-09-27 17:54:28 2031

Python

Python常用模块介绍

python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的。常用的libraries(modules)如下:1)python运行时服务*copy:copy模块提供了对复合(compound)对象(list,tuple,dict,customclass)进行浅拷贝和深拷贝的功能。*pickle:pickle模块被用来序列化python的对象到bytes流,从而适合存储到文件

系统 2019-09-27 17:54:16 2031

Python

python学习之路-day1

1变量赋值:变量可以是字符串、序列、元组、1#author:hams.ali23#界面4line='-*'*205#数字直接可以计算67_var1='23'89#字符变量拼接10_var_2='\n\tmyageis'+_var11112#不可改变数值的组元13var=(2019,9,27)1415#变量解压16x,y,z=(2019,9,17)17print(x,y,z)18print(line)#分割19#多变量解压20data=['ali','eng

系统 2019-09-27 17:53:03 2031

Python

如何编写快速且线程安全的Python代码

概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c

系统 2019-09-27 17:52:39 2031

Python

Python yield与实现方法代码分析

yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。如果一个函数包含yield关键字,这个函数就会变为一个生成器。生成器并不会一次返回所有结果,而是每次遇到yield关键字后返回相应结果,并保留函数当前的运行状态,等待下一次的调用。由于生成器也是一个迭代器,那么它就应该支持next方法来获取下一个值。基本操作#通过`yield`

系统 2019-09-27 17:52:18 2031

Python

python学习笔记 第五章2

经典的汉诺塔问题:这里我们可以利用递归的思想去做,递归中重要的三步,我们逐条来实现:1、函数+分支结构2、递归链条3、递归基例函数+分支结构:defhanoi(n,start,end,mid):globalcountif:else:这里我们可以定义一个函数,里面的参数有:一共有n个圆盘,从start柱子移到end柱子,中间柱子为mid。这里定义一个全局变量来计算移动的步骤数,若为局部变量,会在函数内部不断初始化,所以需要定义全局变量。递归基例:ifn==1

系统 2019-09-27 17:52:07 2031

Python

Python基础之常用内置函数

python常用内置函数dir(__builtins__)#获取内置函数dir(random)#查看random中有哪些内置函数help(random.shuffle)#查看random.shuffle的用法id(a)#获取内存地址chr()#数字转为asciiord()#ascii转为数字isinstance(1,int)#判断1是否为int类型eval("1+1")#可以把字符串里的字符转换为可执行代码,但只支持一行。可以返回执行后得到的值,用于计算一

系统 2019-09-27 17:52:02 2031