- 博客(32)
- 收藏
- 关注
转载 python并发编程之多线程
一 threading模块介绍multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍二 开启线程的两种方式2.1.1 Thread类直接创建from threading import Threadimport timedef sayhi(name): time.sleep(2) print('%s...
2018-09-10 23:26:13
693
1
原创 python之socket编程
一 客户端/服务器架构1.硬件C/S架构(打印机)2.软件C/S架构 互联网中处处是C/S架构 如百度是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频)C/S架构与socket的关系:我们学习socket就是为了完成C/S架构的开发二 osi七层引子:须知一个完整的计算机系...
2018-09-05 23:49:09
338
原创 python软件目录结构规范
软件目录结构规范软件开发规范一、为什么要设计好目录结构?1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能...
2018-09-05 12:23:04
614
转载 python包
一包介绍1、什么是包?官网解释Packages are a way of structuring Python’s module namespace by using “dotted module names”包是一种通过使用‘.模块名’来组织python模块名称空间的方式。具体的:包就是一个包含有__init__.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/...
2018-09-03 20:47:46
1031
1
原创 python模块
一 模块介绍1、什么是模块?模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。常见的场景:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用。在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: 1 使用python编写的.py文件 2 已被编...
2018-09-03 15:34:44
194
原创 python异常处理
一 什么是异常异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下而错误分成两种1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)2.逻辑错误二 异常的种类 在python中不同的异常可以用不同的类型(python中统一了...
2018-09-03 12:10:07
150
原创 python常用模块
1 time模块时间表示形式在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:(1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。(2)格式化的时间字符串(Format String): ‘...
2018-08-31 23:19:27
301
原创 python面向对象高级
一 isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类 cls 的对象class Foo(object): pass obj = Foo() isinstance(obj, Foo)issubclass(sub, super)检查sub类是否是 super 类的派生类cl...
2018-08-30 10:47:36
258
原创 python面向对象之绑定方法与非绑定方法
一 类中定义的函数分成两大类一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法。 为类量身定制 类.boud_method(),自动将类当作第一个参数传入 (其实对象也可调用,但仍将类当作第一个参数传入)...
2018-08-28 17:55:51
241
原创 封装与property
封装封装可以理解为一个多功能的自助饮料机器,且机器是不透明密封的,只在下方开了不同的龙头,当顾客需要不同的饮料时,只需要去打开不同的龙头开关即可得到自己想要的饮料,但顾客不知道机器内部是产生不同的饮料的。在python中,封装可以是类,可以是函数。封装是将数据或属性隐藏在内部,不让外部看到。在python中用双下划线开头的方式将属性隐藏起来(设置成私有的)#其实这仅仅这是一种变形操...
2018-08-26 20:00:37
477
原创 python类
创建和使用类 创建Dog类,赋予dog蹲下(sit())和打滚(roll_over())的能力class Dog(): def __init__(self,name,age): self.name=name; self.age=age; def sit(self): print(self.name.title()+" i...
2018-08-25 12:41:40
250
原创 python的递归与二分法
递归递归:在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归1.必须有个明确的结束条件2.每次进入更深一层递归时,问题规模相比上次递归应有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,就栈就会减少一层栈帧。由于栈的大小不是无限的,递归调用的次数过多,则...
2018-08-24 22:02:39
795
原创 python内置函数
python内置函数abs() 绝对值 all() 传进一个可迭代对象,如果对象为空,比如[],' '等,则返回Ture,如果不为空,则需要全部对象为Ture,才返回Ture例:print(all([None,0,' ',1]))#output : False sum()传进一个可迭代对象,进行求和计算 any()传进一个可迭代对象,如果对象为空,比如[]...
2018-08-24 16:45:03
152
原创 python生成器表达式
生成器表达式相比列表表达式,将[]换成了(),返回对象不是一个列表,而是一个生成器,相比列表更加省内存实例1:列表表达式写法:l = ['apple%s' % i for i in range(10000)]print(l)生成器表达式写法: g = ('apple%s' % i for i in range(10000))for i in g: pri...
2018-08-24 00:50:11
331
原创 python列表生成式
列表生成式会将所有的结果全部计算出来,把结果存放到内存中,如果列表中数据比较多,就会占用过多的内存空间,可能会导致MemoryError内存错误或者导致程序在运行时出现卡顿的情况实例1:在数字0-99中,取大于50的数,分为拼接在apple字符串后面,并存到一个列表中一般的写法: messi = []for i in range(100): if i > ...
2018-08-24 00:24:25
398
原创 python协程函数
协程函数实例:def menu(x): print("welcome %s to shaxian restaurant" % x) men_list = [] while True: print(men_list) food = yield men_list print("%s start to eat %s" % ...
2018-08-22 23:14:26
529
原创 python生成器
生成器生成器就是一个函数,这个函数内包含yield这个关键字生成器与return的区别:return只能返回一次函数就结束,而生成器可以返回多次值生成器函数包含一个或者多个yield当调用生成器函数时,函数将返回一个对象,但是不会立刻向下执行,yield会保存一个状态,下一次运行会在这个位置接着往下运行,直到碰到下一个yield像__iter__()和__next__()方...
2018-08-22 19:11:32
242
原创 python迭代器
迭代器迭代器是一个可以记住遍历的位置的对象。迭代器有两个基本的方法:iter() 和 next()。使用对象内置的__iter__()方法生成迭代器it = name.__iter__()使用内置工厂函数生成迭代器it = iter(name)迭代器通过其内建的 iter.next() 方法,或通过 Python 内建的 next() 来迭代下一个元素,直到最后触发 S...
2018-08-22 10:57:44
560
原创 python装饰器
装饰器python装饰器就是用于在不改变原函数代码的情况下拓展新功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。 装饰器分为有参和无参两种:无参:import timedef happy(func): def f1(*args, **kwargs): start...
2018-08-22 00:31:47
168
原创 python函数
函数1.内置函数,比如print,len,max等2.自定义函数def 函数名():'写注释,描述信息'函数体return #返回值可以是任意类型,不写return,则默认返回None无参函数 #通常情况不需要return值def fly():函数体有参函数 #通常有参函数都有返回值def fly(a,b):函数体return a+b 调...
2018-08-20 21:41:52
267
原创 python文件操作
流程1.打开文件 open()2.操作文件 read write3.关闭文件 close() 在window系统上 默认的编码是gbk用open()打开时,window系统会使用默认的gbk编码,所以如果打开的文件是别的编码保存,则需要手动指定编码,例如打开utf-8保存的文件时f = open("test",encoding="utf-8")而在linux系统上 ...
2018-08-20 12:53:48
159
原创 python编码
# -*- coding:utf-8 -*- 申明编码在python3中不需要申明编码 从英文意思上看,encode和decode分别指编码和解码。在python中,Unicode类型是作为编码的基础类型,即:decode encodestr ---------> str(Unicode) ---------> st...
2018-08-18 23:22:00
184
原创 python字符串
字符串操作name="helloworld"name.capitalize() #将字符串变成首字母大写,其他全部小写name.casefold() #将字符串变成全部变小写nam.lower() #将字符串变成全部变小写name.upper() #将字符串变成全部变大写name.swapcase() #大小写互换name.center(50,'-') #将字符串...
2018-08-18 14:21:03
127
原创 python基础二
运算符** 取x的y次方// 取结果的整数部分如果and 和 or 同时存在,则or将整体分成两部分看 成员运算in 如果在指定序列中找到值则返回Ture ,否则则返回Falsenot in 如果在指定序列中没有找到值则返回Ture ,否则则返回False 身份运算isis not 列表与字典的一个method ...
2018-08-17 23:36:38
143
原创 python基础一
转换类型转换成数字型int()转换成字符串型str() 同一级代码缩进必须一致,最好是4格 编码utf -8 英文1个字节 中文3个字节gbk 中文2个字节 单引号与双引号只适用于单行三引号适用于多行 字符串 或者注释 数据类型int 整型str 字符 (它只是人类可读的一种抽象表示形式)long 长整型float 浮点型bo...
2018-08-17 19:45:39
195
原创 LINUX -mysql安装
mysql的安装先确认之前是否安装过mysql:rpm -qa|grep mysql如果安装了,卸载:rpm -e mysql*1.下载:可以去官网下载或者通过命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz2.解压安装包:ta...
2018-08-17 19:41:43
130
原创 LINUX -nginx服务安装
nginx安装yum install epel-relase -yyum install nginx -y安装完可以查看nginx的配置信息文件vim /etc/nginx/nginx.conf修改完conf文件,则应重启nginx软件(不推荐)systemctl restart nginx一般重新加载nginx软件systemctl reload nginx...
2018-08-17 19:41:01
138
原创 LINUX命令三
网络相关配置ifconfig 查看ip信息远程复制 scp /etc/h.txt 192.168.1.1:/tmp配置ssh(之后访问无需密码):1. ssh-keygen2. ssh-copy-id -i 192.168.1.16 赋值变量 x=2调用x echo $x取消变量 unset x设置别名 alias x=‘ls /’将命令得到的结果赋值到...
2018-08-17 19:40:25
159
原创 LINUX命令二
打包压缩打包命令 tar -cvf /test.tar /a.txt /b.txt /c.txt查看包内的内容 tar -tf /test.tar解压包到当前目录 tar -xvf /test.tar解压包到指定目录 tar -xvf /test.tar -C /try压缩文件 gzip /test.tar (压缩快但大) 或者bzip2 /test.tar (压缩慢但小)...
2018-08-17 19:39:23
123
原创 LINUX命令一
快捷键:ctrl+c 取消命令ctrl+l 清屏 命令:更换用户 su - 或sudo su关机 init 0重启 init 6立即关机 shutdown -h now查询当前用户 who am i查看当前日期 date修改当前日期 date -s "2012-01-02 14:00:00"(必须切换到root用户)查看今天日历 cal 查看某...
2018-08-17 19:35:18
120
原创 jdbc的学习
如何通过java代码来连接数据库今天我们来看看如何通过java代码连接mysql数据库,有三种方式,先导入mysql的驱动程序包, package demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.
2017-01-04 15:24:12
235
原创 java中的String类的常用方法
java中的String类包含了50多种方法,今天我们来介绍一部分最常用的方法1.获取长度 int length();2.根据位置获取位置上的某个字符 char charAt(int index);3.返回字符串或者字符第一次出现的位置int indexOf
2016-12-29 14:53:24
296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人