python(40)- 进程、线程、协程及IO模型

Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: g_b = 3
   ...: def t1():
   ...:     global g_b
   ...:     g_b = 2
   ...: t1()
   ...: print(g_b)
   ...:
   ...:
2

In [2]:

In [2]:

In [2]:

g_b = 3
def t2(i):
     global g_b
    g_b = i
 t1(2)
 print(g_b)

   ...:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-18da7975c212> in <module>()
      3     global g_b
      4     g_b = i
----> 5 t1(2)
      6 print(g_b)

TypeError: t1() takes 0 positional arguments but 1 was given

In [3]: g_b = 3
   ...: def t2(i):
   ...:     global g_b
   ...:     g_b = i
   ...: t2(2)
   ...: print(g_b)
   ...:
   ...:
2

In [4]: g_b = 3
   ...: def t2(i):
   ...:     global g_b
   ...:     g_b = i
   ...: t2(2)
   ...: print(g_b)
   ...:
   ...:
2

In [5]:

In [5]:

In [5]: t2(5)

In [6]: print(g_b)
5

In [7]:

随笔分类 - python基础

 
摘要:一、操作系统概念 操作系统位于底层硬件与应用软件之间的一层。工作方式:向下管理硬件,向上提供接口。 操作系统进行进程切换:1.出现IO操作;2.固定时间。 固定时间很短,人感受不到。每一个应用层运行起来的程序都是进程。 二、进程与线程的概念 2.1 进程 程序仅仅只是一堆代码而已,而进程指的是程序的 阅读全文
posted @ 2017-05-08 18:46 许二哈哈哈 阅读 (5882) | 评论 (2) 编辑
 
摘要:软件开发规范 一、为什么要设计好目录结构? 1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。 2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。 阅读全文
posted @ 2017-05-03 16:35 许二哈哈哈 阅读 (814) | 评论 (0) 编辑
 
摘要:一.语句和语法 二.变量定义与赋值 三.内存管理 内存管理: 引用计数: 增加引用计数: 减少引用计数: 简单例子 四.python对象 五.标识符 六.专用下划线标识符 七.编写模块基本风格 八.示范 阅读全文
posted @ 2017-04-18 11:00 许二哈哈哈 阅读 (1267) | 评论 (0) 编辑
 
摘要:列表表达式 程序一: 常规写法: 列表表达式写法: 程序二: 常规写法: 列表表达式写法: 程序三: 常规写法: 列表表达式写法: 生成器表达式 相比列表表达式,只不过将[]换成了(),更加省内存。 程序一: 列表表达式写法: 生成器表达式写法: 程序二: 常规写法: 列表表达式写法: 生成器表达式 阅读全文
posted @ 2017-04-12 23:35 许二哈哈哈 阅读 (1949) | 评论 (0) 编辑
 
摘要:用户选择1,增加功能: 用户输入www.oldboy2.org和server 11111 weight 2222 maxconn 3333后, 在www.oldboy2.org下增加一条server信息:server 11111 weight 2222 maxconn 3333 用户选择2,删除功能: 用户输入www.oldboy1.org和10.10.10.1 10.10.... 阅读全文
posted @ 2017-04-09 18:40 许二哈哈哈 阅读 (641) | 评论 (0) 编辑
 
摘要:打印99乘法表 for 循环语句实现: while循环语句实现: 输出结果: 阅读全文
posted @ 2017-04-09 11:30 许二哈哈哈 阅读 (3161) | 评论 (0) 编辑
 
摘要:题目需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 xuyaping|123|0 egon|123|1 xuyuanyuan|123|2 alex 阅读全文
posted @ 2017-04-07 17:38 许二哈哈哈 阅读 (1030) | 评论 (0) 编辑
 
摘要:1、 执行 Python 脚本的两种方式 2、 简述位、字节的关系 3、 简述 ascii、unicode、utf-8、gbk 的关系 4、 请写出 “李杰” 分别用 utf-­8 和 gbk 编码所占的位数 5、 Pyhton 单行注释和多行注释分别用什么? 6、 声明变量注意事项有那些? 7、如 阅读全文
posted @ 2017-03-30 22:41 许二哈哈哈 阅读 (13147) | 评论 (0) 编辑
 
摘要:三级菜单:1.打印省、市、县三级菜单 2.可随时返回上一级 3.可随时退出程序 北京 山东 上海 >:北京 朝阳 昌平 海淀 >:昌平 沙河 天通苑 >:沙河 阿泰包子 b 任何一层输入b,可以返回上一层 q 退出程序 阅读全文
posted @ 2017-03-30 19:52 许二哈哈哈 阅读 (1009) | 评论 (0) 编辑
 
 
摘要:方法三: while循环语句,定义条件,条件改变,循环结束 阅读全文
posted @ 2017-03-29 15:02 许二哈哈哈 阅读 (48603) | 评论 (1) 编辑
 
摘要:本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。 下载安装 使用操作 1、执行SQL 示例: 2、获取新创建数据自增ID 3、获取查询数据 阅读全文
posted @ 2016-06-30 22:54 许二哈哈哈 阅读 (3652) | 评论 (0) 编辑
 
摘要:创建如下目录结构 keystone/ ├── __init__.py └── auth ├── __init__.py └── plugins └── core.py core.py内容为: def create(): print("create函数被调用") class UserAuthInfo: 阅读全文
posted @ 2016-05-03 23:38 许二哈哈哈 阅读 (209) | 评论 (0) 编辑
 
摘要:一 客户端/服务器架构 即C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) 美好的愿望: 最常用的软件服务器是 Web 服务器。一台机器里放一些网页或 Web 应用程序,然后启动 服务。这样的服务器的任务就是接受客户的请求,把网页发给客户(如用户计算机上的浏览器),然 阅读全文
posted @ 2016-05-03 23:32 许二哈哈哈 阅读 (695) | 评论 (0) 编辑
 
摘要:基于tcp的套接字实现远程执行命令的操作 当服务端运行在Windows系统下,若客户端发送给服务端识别window系统的命令,服务端将执行windows系统命令的结果发送给客户端显示,不能识别的则发送错误信息给客户端。 同样当服务端在linux系统下运行,若客户端发送给服务端识别linux系统的命令 阅读全文
posted @ 2016-05-03 22:28 许二哈哈哈 阅读 (160) | 评论 (0) 编辑
 
摘要:1、8<<2等于? 32 2、通过内置函数计算5除以2的余数 3、s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:"111"},"o"],将s中的5个字符提取出来并拼接成字符串。 4、判断"yuan"是否在[123,(1,"yuan"),{"yuan":"handso 阅读全文
posted @ 2016-05-03 12:32 许二哈哈哈 阅读 (248) | 评论 (0) 编辑
 
摘要:一 错误和异常 part1:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误(逻辑错误) part2:什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 part3:python 阅读全文
posted @ 2016-05-02 23:49 许二哈哈哈 阅读 (176) | 评论 (0) 编辑
 
摘要:开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后, 必须自己解析里面的(),+,- 阅读全文
posted @ 2016-05-02 23:02 许二哈哈哈 阅读 (184) | 评论 (0) 编辑
 
摘要:一 模块 1 什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 2 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来, 需要时就通过python tes 阅读全文
posted @ 2016-05-02 22:00 许二哈哈哈 阅读 (199) | 评论 (0) 编辑
 
摘要:模块就是py文件。python中能开辟作用域的只有函数、类和模块。 for循环不能开辟作用域,for循环内的变量为全局变量。if...else...同for循环一样。 一 time模块 时间表示形式 在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字 阅读全文
posted @ 2016-04-26 23:21 许二哈哈哈 阅读 (230) | 评论 (0) 编辑
 
摘要:1. 小程序:根据用户输入选择可以完成以下功能: 创意文件,如果路径不存在,创建文件夹后再创建文件 能够查看当前路径 在当前目录及其所有子目录下查找文件名包含指定字符串的文件 2. 将三次登陆锁定的作业改为:python login.py -u alex -p 123456 输入的形式(-u,-p是 阅读全文
posted @ 2016-04-26 22:28 许二哈哈哈 阅读 (154) | 评论 (0) 编辑
 
摘要:题目: 基于授权定制自己的列表类型,要求定制的自己的__init__方法, 定制自己的append:只能向列表加入字符串类型的值 定制显示列表中间那个值的属性(提示:property) 其余方法都使用list默认的(提示:__getattr__加反射) 阅读全文
posted @ 2016-04-25 21:44 许二哈哈哈 阅读 (104) | 评论 (0) 编辑
 
摘要:一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)判断obj是否是类 cls 的对象 isinstance(x,list)判断x是否是列表list issubclass(sub, super)检查sub类是否是 super 阅读全文
posted @ 2016-04-24 23:29 许二哈哈哈 阅读 (152) | 评论 (0) 编辑
 
摘要:题目一:总结 1.什么是绑定到对象的方法,如何定义,如何调用,给谁用?有什么特性? 类内定义的函数,不经装饰器装饰,被实例化对象调用,会默认传入一个self参数,对象将会传递给self; 定义方式比较普通‘def 函数名(self):’; 调用方式‘对象.函数名()’; 类和对象都可以调用,被对象调 阅读全文
posted @ 2016-04-24 23:09 许二哈哈哈 阅读 (138) | 评论 (0) 编辑
 
摘要:一:定义如下类,并最大程度地重用代码(继承,派生:子类重用父类方法,组合) 老师类 学生类 分数类 课程类 生日类 二:实现如图的继承关系,然后验证经典类与新式类在查找一个属性时的搜索顺序 三:基于多态的概念来实现linux中一切皆文件的概念:文本文件,进程,磁盘都是文件,然后验证多态性 阅读全文
posted @ 2016-04-20 21:39 许二哈哈哈 阅读 (295) | 评论 (0) 编辑
 
摘要:一、如何使用类 1.实例化:创建对象 类名加括号就是实例化,会自动触发__init__函数的运行,可以用它来为每个实例定制自己的特征。 例子一 python中一切皆为对象,且python3统一了类与类型的概念,类型就是类 例子二 例子三 2.引用类的特征(类的变量)和技能(类的函数) 基于面向对象设 阅读全文
posted @ 2016-04-17 21:18 许二哈哈哈 阅读 (174) | 评论 (0) 编辑
 
摘要:面向对象基础知识: 1.面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用; 2.类是一个模板,模板中包装了多个‘函数’供使用(可以将多函数中公用的变量封装到对象中); 3.对象,根据模板创建的实例(即:对象),实例用于被包装在类中的函数; 4.面向对象三大特性:封装、继承和多态。 面向 阅读全文
posted @ 2016-04-16 16:03 许二哈哈哈 阅读 (151) | 评论 (0) 编辑
 
摘要:递归: 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 1. 必须有一个明确的结束条件; 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少; 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的, 阅读全文
posted @ 2016-04-14 22:40 许二哈哈哈 阅读 (203) | 评论 (0) 编辑
 
摘要:面向概述 创建类和对象 class是关键字,表示类 创建对象类后面加括号即可 类中的函数第一个参数必须是self,类中定义的函数叫做‘方法’。 面向对象:创建对象,通过对象执行方法。 函数编程:直接执行函数。 场景的不同适合其编程方式也不同。 函数式编程的应用场景 >各个函数之间是独立且无共用的数据 阅读全文
posted @ 2016-04-14 19:49 许二哈哈哈 阅读 (184) | 评论 (0) 编辑
 
摘要:题目一:用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sbname=['alex','wupeiqi','yuanhao'] 用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾l=[{'name':'alex'},{'name':'y'}] 题 阅读全文
posted @ 2016-04-13 20:28 许二哈哈哈 阅读 (983) | 评论 (0) 编辑
 
摘要:题目一: 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']python=['dragon','钢弹','zhejiangF4','小虎比'] 问题一:得出既报名linux又 阅读全文
posted @ 2016-04-13 20:00 许二哈哈哈 阅读 (234) | 评论 (0) 编辑
 
摘要:python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明:https://docs.python.org/3/library/functions.html 1. abs() 获取绝对值 2. all() 参数为可迭代对象,迭代对象为空时,返回True.如果迭代对象的所有元 阅读全文
posted @ 2016-04-13 19:58 许二哈哈哈 阅读 (256) | 评论 (0) 编辑
 
摘要:协程 def init(func): def wrapper(*args,**kwargs): obj = func(*args,**kwargs) next(obj) return obj return wrapper @init def food(name): print("%s start t 阅读全文
posted @ 2016-04-12 23:13 许二哈哈哈 阅读 (232) | 评论 (0) 编辑
 
摘要:什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定, 阅读全文
posted @ 2016-04-12 22:14 许二哈哈哈 阅读 (234) | 评论 (0) 编辑
 
摘要:装饰器 1.无参数 2.函数有参数 3.函数动态参数 4.装饰器参数 装饰器的应用 下面题目同http://www.cnblogs.com/xuyaping/p/6679305.html,只不过加了装饰器统计时间和认证功能。 1、定义无参装饰器为被装饰器添加统计运行时间的功能 #定义闭包无参函数,为 阅读全文
posted @ 2016-04-10 22:39 许二哈哈哈 阅读 (213) | 评论 (0) 编辑
 
摘要:数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视 频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种 一 Number(数字) 1 阅读全文
posted @ 2016-04-10 01:24 许二哈哈哈 阅读 (249) | 评论 (0) 编辑
 
摘要:文件操作 1.1 对文件操作流程 现有文件如下: 注意 if in the win,hello文件是utf8保存的,打开文件时open函数是通过操作系统打开的文件,而win操作系统 默认的是gbk编码,所以直接打开会乱码,需要f=open('hello',encoding='utf8'),hello 阅读全文
posted @ 2016-04-09 20:22 许二哈哈哈 阅读 (220) | 评论 (0) 编辑
 
摘要:一、读取文件,打印第三行时后面加入“徐亚平” 程序如下: 1 Somehow, it seems the love I knew was always the most destructive kind 2 不知为何,我经历的爱情总是最具毁灭性的的那种 3 Yesterday when I was 阅读全文
posted @ 2016-04-05 21:51 许二哈哈哈 阅读 (175) | 评论 (0) 编辑
 
摘要:python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html 阅读全文
posted @ 2016-04-04 23:19 许二哈哈哈 阅读 (276) | 评论 (0) 编辑
 
摘要:一 什么是编码? 基本概念很简单。首先,我们从一段信息即消息说起,消息以人类可以理解、易懂的表示存在。我打算将这种表示称为“明文”(plain text)。对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文。 其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文本转回成明 阅读全文
posted @ 2016-03-31 12:02 许二哈哈哈 阅读 (186) | 评论 (0) 编辑
 
摘要:购物车程序优化题目要求: 1. 用户退出时打印商品列表时,按以下格式 您购买的商品如下 id 商品 数量 单价 总价 1 iPhone 2 5800 11400 2 coffee 1 30 30 ... 总计价格: 11430元 end 阅读全文
posted @ 2016-03-29 23:55 许二哈哈哈 阅读 (939) | 评论 (0) 编辑
 
摘要:注:后面对此进行更新拓展,链接如下: http://www.cnblogs.com/xuyaping/p/6639830.html 购物车程序 需求:1.启动程序后,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4. 阅读全文
posted @ 2016-03-28 22:50 许二哈哈哈 阅读 (219) | 评论 (0) 编辑
 
摘要:python基础练习: 一、猜年龄 , 可以让用户最多猜三次! age=40 count = 1 while count <=3 : user_guess=int(input("input your guess:")) if (user_guess > age): print("try small" 阅读全文
posted @ 2016-03-27 21:11 许二哈哈哈 阅读 (215) | 评论 (0) 编辑
 
摘要:一、了解编程语言 1.编程语言的定义 编程语言即语言,语言的本质就是沟通,因而编程语言与英语 、法语、日语等所有语言并无区别,只不过英语是人与人之间沟通的介质,而编程语言则是程序员与计算机沟通的介质。 程序员把自己想要说的话用编程的语言写到文件里,这其实就开发了一个程序,接下来让计算机按照文件里说的 阅读全文#!/usr/bin/python
# test how to use for-else / while-else clause.
# else sub-clause will be executed when there's no break/return/exception in the
# iteration.

list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]

for i in list1:
if i > 5:
print 'item is larger than 5; the index in list1 is %d' % list1.index(i)
break
else:
print 'No item in list1 is larger than 5.'

for i in list2:
if i > 5:
print 'item is larger than 5; the index in list2 is %d' % list2.index(i)
break
else:
print 'No item in list2 is larger than 5.'


i = 0
while i < 10:
if i > 5:
print '%d is larger than 5' % i
break
i += 1
else:
print 'No one is larger than 5'
原文地址:https://www.cnblogs.com/xinxihua/p/12789128.html