随笔分类 - [编程语言] Python
摘要:最直白的centos8安装python3.8yum install -y update安装 gcc和make插件:yum install gcc gcc-c++yum -y install gcc automake autoconf libtool makeyum groupinstall -y '
阅读全文
摘要:基础方式 # %s format name = 'kelvin' age = 18 msg = '我叫%s,今年%s' %(name,age) msg1 = '我叫{},今年{}'.format(name,age) 进阶方式 # 新特性:格式化输出 name = 'kelvin' age = 18
阅读全文
摘要:一、gevent #__author__:Kelvin #date:2020/5/13 13:34 from gevent import monkey monkey.patch_all() import time import gevent def func(): print("start") #
阅读全文
摘要:一、递归锁 # Lock :互斥锁 效率高 # RLock :递归(recursion)锁 效率相对低 在同一个线程中可以被acquire多次,如果想要释放锁,acquire多少次就要release多少次 from threading import RLock def func(i,rlock):
阅读全文
摘要:一、多个线程对同一个数据进行修改 from threading import Thread,Lock n = 0 def add(lock): for i in range(500000): global n with lock: n += 1 def sub(lock): for i in ran
阅读全文
摘要:import time from threading import Thread def son(): while True: print('in son') time.sleep(1) def son2(): for i in range(3): print('in son2 ****') tim
阅读全文
摘要:一:Agent方式 原理:在每台服务器装上agent客户端程序,定时向数据库发送指定的资产信息。 优点:速度快。 缺点:服务器上需要多装一个软件 1 import subprocess 2 import requests 3 # pip3 install requests 4 5 # #######
阅读全文
摘要:1、执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='12
阅读全文
摘要:本示例在对socket有了基本了解之后,可以实现基本的文件上传。首先先介绍一下目录结构,server_data文件夹是用来存放客户端上传的文件,client_data是模拟客户端文件夹(目的是为了测试文件夹下的文件能否上传) ,还有两个主要的py文件,onload_server.py onload_
阅读全文
摘要:我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值。 1 import json 2
阅读全文
摘要:xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。 xml的格式如下,就是通过<>节点来区别数据结构的: 1 <?xml vers
阅读全文
摘要:服务器端: 1 #_*_coding:utf-8_*_ 2 __author__ = 'Linhaifeng' 3 from socket import * 4 import hmac,os 5 6 secret_key=b'linhaifeng bang bang bang' 7 def conn
阅读全文
摘要:第一部分:简介tcp socket通信的底层原理 原理解析图: 1 socket通信过程如图所示:首先客户端将发送内容通过send()方法将内容发送到客户端计算机的内核区,然后由操作系统将内容通过底层路径发送到服务器端的内核区,然后由服务器程序通过recv()方法从服务器端计算机内核区取出数据。2
阅读全文
摘要:一:什么是递归? 递归是一种解决问题的方法,它把一个问题分解为越来越小的子问题,直到问题的规模小到可以被很简单直接解决。通常为了达到分解问题的效果,递归过程中要引入一个调用自身的函数。乍一看,递归算法并没有什么特别的地方,但是,利用递归我们能够写出极为简明的解决问题的方法,而且如果不用递归,这些问题
阅读全文
摘要:1:题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 程序源代码: 1 for i in range(1, 5): 2 for j in range(1, 5)
阅读全文
摘要:列表推导 如果需要生成10以内所有偶数的列表,该如何生成? 传统方式 1 numbers = range(10) 2 size = len(numbers) 3 evens = [] 4 i = 0 5 while i < size: 6 if i % 2 == 0: 7 evens.append(
阅读全文
摘要:<python的线程与threading模块> 一 ,线程的两种调用方式 threading 模块建立在thread 模块之上。thread模块以低级、原始的方式来处理和控制线程,而threading 模块通过对thread进行二次封装, 提供了更方便的api来处理线程。 直接调用: 1 impor
阅读全文
摘要:socketserver实现并发原理:给每一个前来链接的客户端开启一个线程执行通信。也就是给每一个连接“配备”了一个管家。 下面用一个简单的示例来演示socketserver实现并发(一个服务端,两个客户端): 服务器端: 1 # Author : Kelvin 2 # Date : 2019/2/
阅读全文
摘要:粘包只会出现在tcp,udp传输不会产生粘包现象。解决粘包的原理就是服务器预先向客户端发送客户端即将获取文件的大小。 第一版解决方案: 服务器: 客户端: 升级版: 服务器: 客户端:
阅读全文
摘要:一,什么是异常和错误? 异常和错误是不同的概念,错误大都是指python语法上的错误,编译时就会报错。异常是指不符合客观逻辑,或者逻辑上产生得到错误,比如res=1/0,,就是一个异常。 错误: 异常: 二,如何处理异常? 异常的处理可以使用if判断进行处理(low的方式),最常用的是使用try e
阅读全文