python
文章平均质量分 76
python基础语法和高级用法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
RStanwen
这个作者很懒,什么都没留下…
展开
-
logging日志改造---自定义参数传递到格式中
logging 自定义传参原创 2023-10-19 14:38:19 · 287 阅读 · 0 评论 -
多线程共享全局变量引发线上事故分析
多线程共享全局变量引发线上问题原创 2023-08-15 15:28:23 · 175 阅读 · 0 评论 -
python生成日报
python日报, 报表, 表格原创 2023-06-16 15:51:24 · 7206 阅读 · 0 评论 -
jpype踩的那些坑
python调用java, jpype的使用放手和避免的坑。原创 2023-05-19 18:48:13 · 810 阅读 · 1 评论 -
python计算密集型效率对比
在进行大变量赋值计算的时候, 我发现之前人的代码, 使用了多线程。但是根据我的经验, 计算密集型, 效率一般遵循这样的规律:多进程 > 顺序运行 > 协程 > 多线程。因此我感觉之前的写法效率不会高。原创 2022-11-03 18:03:00 · 350 阅读 · 0 评论 -
Python封装高性能的G变量
python封装高性能的G变量原创 2022-10-20 15:14:08 · 469 阅读 · 0 评论 -
python代码规范---选择分支与循环
目录一: 选择分支结构1: 避免多层分支嵌套,能提前结束就提前结束:2: 封装那些过于复杂的逻辑判断3 : 使用“德摩根定律”4: 自定义对象的“布尔真假”5: 在条件判断中使用 all() / any()二: 地道的循环结构1: enumerate() 的使用:2: 使用 product 扁平化多层嵌套循环3: 使用 islice 实现循环内隔行处理4: 使用 takewhile 替代 break 语句5: 使用生成器编写自己的修饰函数6: 按职责拆解循环体内复杂代码块一: 选择分支结构1: 避免多层原创 2021-08-19 11:30:10 · 468 阅读 · 0 评论 -
python代码规范---变量,数字,字符串,容器
参考地址:https://github.com/piglei/one-python-craftsman/blob/master/zh_CN/2-if-else-block-secrets.md一:变量1:变量名要有描述性,不能太宽泛例如表示这周的周几: day与day_of_week,我们更喜欢第二种。2:变量名最好让人猜出类型:1 : 布尔类型的变量我们命名最好以is, has等非黑即白的词语修饰。is_supuserhas_errorallow_vipuse_msgpack.原创 2021-08-19 10:58:00 · 281 阅读 · 0 评论 -
python代码规范---异常,规则,函数返回值
目录一: python的规则:1: 集合的规则:2:`__format__`对象字符串格式化:3: `__getitem__`方法定义容器二: python异常处理三个习惯三: 函数返回建议:一: python的规则:1: 集合的规则:规则: 如果要把一个东西装到集合中去,这个东西必须是可以哈希的。可变类型都是不可哈希的。(列表, 集合,字典),本质就是哈希值不固定。思维1: 对于存在A,不存在B等问题,思维定式就是采用集合思维处理。思维2: 我们可以自定义哈希对象。案例:原创 2021-08-18 20:39:37 · 1085 阅读 · 0 评论 -
python代码规范---面向对象和边界问题
目录一:SOLID设计原则S:单一职责原则:O: 开放-关闭原则:L: 里氏替换原则:I: 接口隔离原则:D: 依赖倒置原则:二: 边界问题1: 吃感冒药胜过看天气预报:2: 容器内容不存在2.1: defaultdict的使用:2.2: 字典的setdefault方法和pop方法:2.3:善于运用切片3: 危险的OR4: 避免手动数据校验:参考地址:https://github.com/piglei/one-python-craftsman/blob/master/zh_CN/12-write-sol原创 2021-08-18 10:56:32 · 421 阅读 · 0 评论 -
openpyxl处理EXCEL
目录一: 数据操作:1: 创建文件,创建表,保存文件2: 加载文件,列出所有表,切换表3: 定位单元格与写入单元格:4: 遍历单元格,打印数据5: 删除指定的行和列,获取最大的行与列:6: 合并单元格:二:样式操作:1: 颜色设置:2: 字体设置:3: 边框设置:4: 对齐设置:5: 链接设置:6: 多样式设置:一: 数据操作:1: 创建文件,创建表,保存文件from openpyxl import Workbook# 1: 实例化一个Workbook对象,注意是大写的Wbook = Workb原创 2021-07-21 14:48:10 · 1239 阅读 · 0 评论 -
click工具的使用
目录一:Click导航二:Click的基本使用1: 官网案例演示:2: @click.command装饰器3: @click.group()装饰器:4: 命令行参数4.1: Option参数:4.2: Argument参数:5: 打包成跨平台可执行程序一:Click导航地址: https://click.palletsprojects.com/en/8.0.x/安装click: pip install Click参看文献:https://isudox.com/2016/09/03/learning原创 2021-07-16 16:48:12 · 1333 阅读 · 4 评论 -
Apschedule定时任务
一: 安装:pip install apscheduler二: 基本概念1: 触发器: 调度逻辑,描述任务何时被触发。(日期触发,时间间隔,cronjob表达式)2: 作业存储器:指定作业存储的位置,默认是保存在内存中,3: 执行器:将任务(函数)提交到线程池或者进程持中运行,当任务完成时,通知调度器发生相应的事件。4:调度器:任务调度器,属于控制角色,通过它配置作业存储器、执行器和触发器,添加、修改和删除任务。调度器协调触发器、作业存储器、执行器的运行,通常只有一个调度程序运行在应用程序原创 2021-07-15 15:04:14 · 1150 阅读 · 1 评论 -
lambda表达式的高阶用法
一: lambda和map函数连用:1: 可迭代对象 = map(lambda表达式, 列表、元祖,集合)list2 = list(map( lambda x, y: x*y, [1, 2, 3], [4, 5, 6]))print(list2)# [4, 10, 18]list2 = list(map( lambda x, y: x*y, (1, 2, 3), (4, 5, 6)))print(list2) # [4, 10, 18]二: lambda和filter函数连用:2:fi原创 2021-02-27 14:02:03 · 807 阅读 · 0 评论 -
黑马python基础班---day07
# 1:类属性:在类里面和方法外面定义的属性称为类属性,类属性属于当前类。# 实例属性:(对象属性):在init方法里面定义的属性称为实例对象,实例属性属于某个对象。class Person(object): """定义类属性和实例属性""" # 类属性 __country = "中国" skin_color = "yellow" def __init__(self, name, age): # 实例属性 self.name =原创 2020-07-18 17:02:55 · 325 阅读 · 0 评论 -
黑马python基础班---day06
#:面向对象# 类名:使用大驼峰命名法# 1:定义一个基本类class People(object): def sing(self): print("唱歌")p1 = People()#为对象添加属性p1.name = "张三"p1.age = 23#获取对象的属性print("姓名:", p1.name)# 输出结果:姓名: 张三# 2: 在方法内部通过self属性获取对象的属性:self保存的是对象的地址class People(object)原创 2020-07-11 18:33:14 · 328 阅读 · 0 评论 -
黑马python基础班---day05
# 1:文件:写入数据file = open("1.txt", "w", encoding="utf-8")file.write("abcdefgh")file.close()# 2:文件:读取数据file = open("1.txt", "r", encoding="utf-8")content = file.read()print(content)file.close()# 指定输入输出格式:Windows中的python解释器是以GBK 的方式打开,防止乱码一定要转换成UTF-8原创 2020-07-11 08:36:20 · 314 阅读 · 0 评论 -
黑马python基础班---day04
import random#1:+=:是否地址发生改变(发生改变)num = 1print(id(num))num += numprint(id(num))# 2:匿名函数:用于简化函数的代码# 格式:lambda [形参1] [形参2] : [单行表达式]/[函数调用]# 特点:只能写一行 无return关键字def sum_num (num1, num2): result = num1 + num2 return resultvalue = sum_num(1,原创 2020-07-09 21:51:22 · 356 阅读 · 0 评论 -
黑马python基础班---day03
# 1: enumerate:下标和数据同时用 经常用于循环my_list = ["a", "b", "c"]for index, value in enumerate(my_list): print(index, value)#输出结果:# 0 a# 1 b# 2 cmy_str = "abc"for index, value in enumerate(my_str): print(index, value)#输出结果:# 0 a# 1 b# 2 c#原创 2020-07-09 16:12:20 · 348 阅读 · 1 评论 -
黑马python基础班---day02
# 1:字符串方法:joinmy_str = "ren"print("_".join(my_str))#输出结果:r_e_nmy_list = ["1", "2"]print("!".join(my_list))# 输出结果为:1!2# 2:列表添加数据my_list2 = [1, 2, 3, 4, 5]#append 尾追加my_list2.append(6)print(my_list2)# 输出结果为:[1, 2, 3, 4, 5, 6]# 追加一组数据my_list2原创 2020-07-09 09:43:24 · 379 阅读 · 0 评论 -
黑马python基础班 ---day01
# 1:python 输出# name = "renshanwen"# age = 0# print(name, age, sep=" ")# print("人生苦短\n我用python!!!")# print("哈哈", end="!!!!")# # 格式化输出# print("我的名字是%s,我的年龄是%d" % ("任善文", 23))# 打印百分号# num = int(input("请输入百分比: "))# print("百分比是%d%%" % num)# 2:算数运算符原创 2020-07-09 07:23:23 · 364 阅读 · 0 评论 -
学生管理系统---文件版
import os# 1:首先显示功能菜单# 2:接受用户输入# 3:执行相应的操作student_list = []def show_menu(): print("----------学生管理系统函数版----------") print("0:退出系统") print("1:增加学生信息") print("2:删除学生信息") print("3...原创 2020-02-28 23:51:15 · 650 阅读 · 0 评论 -
学生管理系统--函数版
# 1:首先显示功能菜单# 2:接受用户输入# 3:执行相应的操作student_list = []def show_menu(): print("----------学生管理系统函数版----------") print("0:退出系统") print("1:增加学生信息") print("2:删除学生信息") print("3:修改学生的信息")...原创 2020-02-25 15:07:40 · 564 阅读 · 0 评论 -
ubantu的ifconfig不能使用的问题
首先找到限制的地方,然后查看锁定的位置,对锁进行强制解锁,然后再输入sudo apt install net-tools下载ubantu的网络连接包。原创 2020-01-14 09:46:29 · 362 阅读 · 0 评论 -
飞机大战源码
import randomimport pygamefrom plane_sprites import *class PlaneGame(object): """飞机大战主程序""" def __init__(self): print("游戏初始化") # 1.创建游戏的窗口 self.screen = pygame.dis...原创 2020-01-02 15:15:22 · 432 阅读 · 0 评论 -
飞机大战2
一:框架搭建:import pygamefrom plane_sprites import *class PlaneGame(object): """飞机大战主程序""" def __init__(self): print("游戏初始化") # 1.创建游戏的窗口 self.screen = pygame.display....原创 2020-01-02 15:08:23 · 369 阅读 · 0 评论 -
飞机大战1
准备工作:导入pygame:点击pip —>输入pygame 点击确定即可导入。一:初始化1.1游戏的初始化和退出:pygame.init() :初始化方法pygame.quit():退出方法import pygamepygame.init()print("游戏的代码...")pygame.quit()1.2 游戏的坐标系:import pygameher...原创 2019-12-31 17:07:09 · 395 阅读 · 0 评论 -
名片管理系统
cards_main.pyimport cards_toolswhile True: # 显示菜单 cards_tools.show_menu() action_str = input("请选择您希望执行的操作:") print("您选择的操作是:【%s】" % action_str) # 1,2 ,3针对名片进行操作 if action_s...原创 2019-12-28 17:07:34 · 370 阅读 · 0 评论 -
Pycharm开发环境的调试
1.断点:(1).在行号后面点击即可增加断点(2).在断点上再次点击就可以取消断点。2.步骤和格局:右击---->选中DeBug(小虫子的样子)---->点击红色方块,进入DeBug视图---->MainThread指的是线程,下面的是方法。—>variables 变量3.测试基本操作:观察器:一直可以看一个值变化...原创 2019-09-07 20:06:24 · 518 阅读 · 0 评论 -
PyCharm创建项目与初始配置
1.选择Create new Python ,然后进入这样的界面。最后一个应该是项目的名称。右击 ----->new—>python File:建立python文件。填写名字:点击第一个运行:右击—>run----->python01...原创 2019-07-28 18:41:44 · 731 阅读 · 0 评论 -
黑马程序员---miniweb框架的完整迭代过程
1:搭建静态web服务器页面—返回固定页面# 过程分析:1:初始化web服务器 2:循环接受客户端请求 3:读取指定页面 4:构造响应报文,发送回浏览器import socketdef main(): # 1:初始化web服务器,采用IPV4和TCP连接通信 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) tcp_socket.setsockopt(socket.SOL_SOCKET,sock原创 2020-08-23 14:37:12 · 510 阅读 · 0 评论 -
正则表达式判断判断是否符合ipv4规则
一:通过控制台输入字符串,使用正则表达式判断该字符串是否符合IPv4规则。ipv4的地址格式:都是0到255的数字,点必须转义。import restring = input("请输入ip地址:")ret = re.match(r"(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}" r"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$", strin原创 2020-08-22 14:53:30 · 1886 阅读 · 0 评论 -
黑马程序员---logging日志
1:需要的包:import logging2:日志等级:DEBUG:程序调试bug时使用(debug)INFO:程序正常运行时使用(info)WARNING:程序未按预期运行时使用,但并不是错误,如:用户登录密码错误(warning)ERROR:程序出错误时使用,如:IO操作失败(error)CRITICAL:特别严重的问题,导致程序不能再继续运行时使用,如:磁盘空间为空,一般很少使用默认的是WARNING等级,当在WARNING或WARNING之上等级的才记录日志信息。(critical原创 2020-08-21 20:40:27 · 477 阅读 · 0 评论 -
黑马程序员---web框架
一:概述:web框架专门处理动态资源的请求。web服务器接收浏览器发起的请求,如果是动态资源请求找web框架来处理。web框架负责处理浏览器的动态资源请求,把处理的结果发生给web服务器。web服务器再把响应结果发生给浏览器。二:实现过程:假定以.html结尾的是动态资源。1:判断动态资源:web服务器如何写?思路:拿到请求资源路径后,判断是不是以.html结尾,如果是,将请求封装成字典...原创 2020-08-21 20:26:19 · 465 阅读 · 0 评论 -
黑马程序员---浅拷贝和深拷贝
一:浅拷贝:# 1: 对于不可变类型进行拷贝没有意义。拷贝的目的是解决变量地址公用的问题,不可变类型不会公用地址。# 2:浅拷贝只拷贝第一层对象,不会拷贝内部的子对象。import copy# 地址引用 :不可变类型改变一个不会影响另一个。可变类型一个改,都改。# 可变类型: 字典,列表,集合# 不可变类型:数字,元组,字符串num1 = 1num2 = num1print(num1, id(num1))print(num2, id(num2))num1 = 2print(num原创 2020-08-20 19:26:00 · 457 阅读 · 0 评论 -
黑马程序员---property属性---上下文管理器---生成器
一:property属性:1:作用:把一个方法当做属性进行使用。2:定义property属性的两种方式:装饰器方式,类属性方式。3:装饰器方式:在get方法上面增加@property,在setter方法上面写@方法名.setter#目的:让实例方法跟属性一样可以使用。class Person(object): def __init__(self): self.__age = 0 @property def age(self): retur原创 2020-08-20 19:07:49 · 329 阅读 · 0 评论 -
黑马程序员---正则表达式---记忆
一:re模块:正则表达式进行字符串匹配的时候需要调用的包。1:导包:import re2:检测:result = re.match(正则表达式,需要匹配的字符串),成功返回成功的部分字符串,不成功返回null。3:取除匹配的内容:result.group()import reif __name__ == '__main__': result = re.match("0\d{3}-\d{8}","0755-81234567") if result: print("匹原创 2020-08-19 11:52:49 · 450 阅读 · 0 评论 -
黑马程序员---闭包和装饰器
一:闭包的定义:目的:保证变量不会因为外部函数调用而销毁。1:在函数嵌套的前提下,内部函数使用了外部函数的变量,外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。2:闭包的形成条件:函数嵌套 //内部函数使用了外部函数的变量 // 外部函数返回了内部函数对象。3:简单闭包:def func_out(num1): def func_inner(num2): result = num1 + num2; print("结果是:"原创 2020-08-18 17:02:52 · 389 阅读 · 0 评论 -
黑马程序员---搭建静态web服务器
一:返回固定页面的静态web服务器:1:初始化web服务器:创建套接字—> 设置端口复用—>绑定本地端口—>设置监听模式2:循环接受用户:accpet —>接受用户数据---->recv3:读取服务器固定页面信息4:构造响应报文5:向客户端发送指定页面信息6:关闭套接字import socketdef main(): # 1:初始化服务器 tcp_socket = socket.socket(socket.AF_INET,socket.SO原创 2020-08-10 17:39:42 · 843 阅读 · 0 评论 -
多任务版TCP服务器搭建
一:TCP客户端搭建:import socketdef main(): # 1:创建socket对象 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 2:建立连接 tcp_socket.connect(("192.168.70.129",7788)) #3: 发送数据 client_data = "我是牛牛,很高兴认识你" # send,必须发送二进制数据,如果是原创 2020-08-08 19:09:43 · 534 阅读 · 0 评论