python进阶
目录
Json数据格式
前言
JSON格式
python数据和Json数据的相互转化
多线程
进程和线程
串行和并行
多线程编程
创建线程参数
具体案例
网络编程
套接字
socket服务端编程步骤
socket客户端编程步骤
python操作mysql数据库
查询并接收数据
数据插入
Json数据格式
前言
- JSON是一种轻量级的数据交换格式,可以按照JSON指定的格式去组织和封装数据
- JSON本质上是一个带有特定格式的字符串
功能:JSON就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互

JSON格式
#方式1
{"name":"admin","age":18}#方式2
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}]
注意:json数据相对与python就是字典或者字典列表
python数据和Json数据的相互转化
#导入json模块
import json#准备符合格式json格式要求的python数据
data=[{"name":"老王","age":16},{"name":"张三","age":20}]#通过json.dumps(data)方法把python数据转化为json数据
#ensure_ascii参数改为False表示不使用ASCII码来转换他,而是把内容直接输出出去
data=json.dumps(data,ensure_ascii=False)#通过json.loads(data)方法把json数据转化为python数据
data=json.loads(data)
多线程
进程和线程
进程:就是一个程序,运行在系统之上,那么便称这个程序为一个运行进程,并分配ID方便系统管理
线程:线程归于进程,一个进程可开启多个线程执行不同工作,线程是进程的实际工作最小单位
注意
- 操作系统可以运行多个进程,即多任务运行,一个进程内可以运行多个线程,即多线程运行
- 进程之间是内存隔离的,即不同进程拥有各自的内存空间,这就类似于不同的公司拥有不同的办公场所
- 线程之间是内存共享的,线程是属于进程的,一个进程内的多个线程之间共享这个进程所拥有的内存空间。

串行和并行
- 串行:任务一个接一个的顺序进行
- 并行:多个任务同时执行(需CPU的多个核)
多线程编程
#导入线程模块
import threading
#创建线程
thread_obj=threading.thread([group],target,[name],[args],[kwargs])
#启动线程
thread_obj.start()
创建线程参数
- group:暂时无用,未来功能的预留参数
- target:执行的目标任务名
- args:以元组的方式给执行任务传参
- kwargs:以字典的方式给执行的任务传参
- name:线程名
具体案例
import threading
import time
def sing(msg):while True:print(msg)time.sleep(1)
def dance(email):while True:print(email)time.sleep(1)
if __name__ == '__main__':#因为target是第二个参数,所以必须给参数名进行传参sing_thread=threading.Thread(target=sing,args=("我在唱歌……",))dance_thread=threading.Thread(target=dance,kwargs={"email":"我在跳舞"})#启动线程sing_thread.start()dance_thread.start()
网络编程
套接字
socket:简称套接字,其是进程间通信的一个工具,好比现实生活中的插座,所有的家用电器想要工作都是基于插座进行,进程之间想要进行网络通信需要socket

两进程之间通过socket进行通信就必须有服务端和客户端
- socket服务端:等待其他进程的连接,可接收发来的消息,可以回复消息
- socket客户端:主动连接服务端,可以发送消息,可以接受回复
socket服务端编程步骤
#socket服务端开发
#导入socket模块
import socket
#创建socket对象
socket_server=socket.socket()
#绑定ip和端口(里面传的是__address的元组)
socket_server.bind(("localhost",8888))
#监听端口(里面的1表示允许客户端连接的数量)
socket_server.listen(1)
#等待客户端的连接
#accept为阻塞方法若没有连接则将会卡在这里不执行
#这里返回的result为二元元组
result:tuple=socket_server.accept()
conn=result[0] #客户端和服务端的连接对象
address=result[1] #客户端的地址信息
print(f"接收到了客户端的连接,客户端的信息是:{address}")
while True:#接收客户端发送的信息,使用客户端和服务端的本次连接对象而非socket_serverdata:str=conn.recv(1024).decode("UTF-8")#recv也是阻塞方法,其接收参数为缓冲区大小,一般1024即可#recv方法的返回值为一个字节数组,不是字符串,所以可以通过decode方法通过UTF-8编码转换为字符串对象print(f"客户端发送的消息为:{data}")#发送回复消息msg=input("请输入你要和客户端回复的消息:")if msg=="exit":breakconn.send(msg.encode("UTF-8"))
#关闭连接
conn.close()
socket_server.close()
socket客户端编程步骤
#socket客户端开发
#导入socket模块
import socket
#创建socket对象
socket_client=socket.socket()
#连接到服务端(里面传的是__address的元组)
socket_client.connect(("localhost",8888))
while True:#向服务端发送消息msg=input("请输入要给服务端发送的消息:")if msg=="exit":breaksocket_client.send(msg.encode("UTF-8"))#接收返回的消息#recv方法为阻塞方法,传入参数为字节缓冲区大小data=socket_client.recv(1024).decode("UTF-8")print(f"服务端发来的消息为:{data}")
#关闭连接
socket_client.close()
python操作mysql数据库
前言:在python中,使用第三方库pymysql来完成对mysql数据库的操作
安装:pip install pymysql
查询并接收数据
#导入connection模块
from pymysql import Connection
#获取mysql数据库的链接对象
conn=Connection(host='localhost', #主机名port=3306, #端口号user='root', #用户名password='root' #密码
)
#打印mysql数据库的软件信息
print(conn.get_server_info())
#获取游标对象
cursor=conn.cursor()
#选择数据库
conn.select_db("test")
#使用游标执行sql语句
cursor.execute("select * from user")
#接收查询结果
result:tuple=cursor.fetchall()
print(result)#((1, 'lili'), (2, 'lan'))
#对查询结果遍历
for i in result:print(i)
#关闭数据库链接
conn.close()
数据插入
#导入connection模块
from pymysql import Connection
#获取mysql数据库的链接对象
conn=Connection(host='localhost', #主机名port=3306, #端口号user='root', #用户名password='root' #密码
)
#打印mysql数据库的软件信息
print(conn.get_server_info())
#获取游标对象
cursor=conn.cursor()
#选择数据库
conn.select_db("test")
#使用游标执行sql语句
cursor.execute("insert into user values(3,'kate')")
#确认
conn.commit()
#conn.rollback()#回滚
#关闭数据库链接
conn.close()
注意:在数据插入时必须提交才能成功。

相关文章:
python进阶
目录 Json数据格式 前言 JSON格式 python数据和Json数据的相互转化 多线程 进程和线程 串行和并行 多线程编程 创建线程参数 具体案例 网络编程 套接字 socket服务端编程步骤 socket客户端编程步骤 python操作mysql数据库 查询并接收数据 数据插入 Json数据格…...
spring boot 配置文件和属性注入
文章目录 配置文件位置和路径自定义配置文件 属性注入添加yaml文件的支持 配置文件 位置和路径 当我们创建一个 Spring Boot 工程时,默认 resources 目录下就有一个 application.properties 文件,可以在 application.properties 文件中进行项目配置&am…...
springboot+vue私人健身和教练预约管理系统 nt5mp
随着世界经济信息化、全球网络化的到来,信息线上管理的飞速发展,为私人健身和教练预约管理的改革起到关键作用。若想达到安全、快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的私人健身和教练预约管理系…...
Kotlin基础(十一):反射和注解
前言 本文主要讲解kotlin反射和注解。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 kotlin反射 1.1.1 kotlin反射概念和常见使用场景 在Kotlin中,反射是一种能够在运行时动态地获取、检查和操作类、属性、方法等结构的能力。Kotlin为反射提供了一…...
DALLE2论文解读及实现(一)
DALLE2: Hierarchical Text-Conditional Image Generation with CLIP Latents paper: https://cdn.openai.com/papers/dall-e-2.pdf github: https://github.com/lucidrains/DALLE2-pytorch DALLE2概览: - CLIP模型: 用于生成text embedding zt 和image …...
RabbitMQ-API
这里写目录标题 Hello word 模式添加依赖生产者消费者获取信道工具类 Work Queues模式消费者代码 C1开启多线程运行启动 消费者代码 C2生产者代码 消息应答自动应答消息应答的方法Multiple 的解释消息自动重新入队消息手动应答代码消费者API 队列持久化消息持久化不公平分发消息…...
外边距实现居中的写法
1、代码实例 2、默认是贴到左侧对齐的,但我们想要把他贴到中间对齐 3、居中的写法 4、这样就可以保证盒子居中了 5、以上写法仅适于行内元素和行内块元素的写法,有没有什么方法适用于行内块元素:可以添加text-align:center进行添加࿰…...
剑指 Offer 20. 表示数值的字符串 (正则 逐步分解)
文章目录 题目描述题目分析法一:完整代码: 法二:完整代码: 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者…...
【深度学习】Transformer,Self-Attention,Multi-Head Attention
必读文章: https://blog.csdn.net/qq_37541097/article/details/117691873 论文名:Attention Is All You Need 文章目录 1、Self-Attention 自注意力机制2、Multi-Head Attention 1、Self-Attention 自注意力机制 Query(Q)表示当…...
CADintosh X for mac CAD绘图软件2D CAD 程序 兼容 M1
CADintosh X for Mac是一个功能强大的2D CAD绘图程序,专为Mac用户设计。它由Lemke Software开发,提供了一套丰富的工具和功能,使用户能够轻松创建高质量的技术图纸,平面图和设计。 CADintosh X for Mac具有直观的用户界面&#x…...
【读书笔记】《厌女》- [日]上野千鹤子 - 2010年出版
不停的阅读,然后形成自己的知识体系。 2023.08. 读 《厌女》- [日]上野千鹤子 - 2010年出版 - 豆瓣读书 文章目录 2023年中文版作者序2015年中文版作者序第一章 喜欢女人的男人的厌女症 2023年中文版作者序 ‘厌女症’的现象本来如‘房间里的大象’,因为…...
Android 从其他xml文件中获取View组件数据
问题 Android Studio 我想在 trace.java 从setting.java绑定的页面activity_setting.xml中 的editview中获取数据 解决方案 仅适用于 在同一应用的不同组件之间共享数据 在 SettingActivity.java 中,当用户准备离开当前活动时,可以将 EditText 中的数…...
java 数组的使用
数组 基本介绍 数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型。 即:数组就是一组数据。 数组的使用 1、数组的定义 方法一 -> 单独声明 数据类型[] 数组名 new 数据类型[大小] 说明:int[] a new int…...
Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)
1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器…...
外贸企业选择CRM的三大特点
外贸营销管理CRM云平台可以帮助外贸企业实现更高质量的营销管理和客户管理。无论是销售、市场营销或客户服务团队的成员,CRM都可以帮助企业更好地理解客户需求,并提供更好的服务。 1.便捷轻量级 云平台的一大优势是用户可以随时随地访问数据࿰…...
软件测试与游戏测试的区别
软件测试和游戏测试是两种不同领域的测试活动,它们之间存在一些区别,包括以下几个方面: 1. 测试目标 软件测试主要是验证和确认软件功能是否符合预期,通常关注软件的正确性、稳定性和兼容性等方面;而游戏测试则更关注游…...
Programming Abstractions in C阅读笔记:p72-p75
《Programming Abstractions In C》阅读P72-p75,每次阅读其实都有很多内容需要总结,这里摘抄其中一部分。 一、技术总结 1.字符串数组 学习《Programming Abstractions in C》第75页的时候,遇到一段代码: static string bigCitie…...
bash测试test详解
bash测试test详解 概述 任何相对完整的计算机语言都能够测试某个条件,然后根据测试的结果采取不同的动作。对于测试条件, Bash使用test命令、各种方括号和圆括号、if/then结构等来测试条件。 7.1. Test Constructs 一个if/then语句结构测试一个或多个命…...
你来问我来答,ChatGPT对话软件测试!主题互动
你来问我来答,ChatGPT对话软件测试! 大家好,我是聪明而有趣的ChatGPT。作为IT专家,我将竭尽全力为你解答技术问题,并提供适合各个级别人群理解的解决方案。无论你是初学者还是专业人士,我都会用智能、简单…...
无人机巢的作用及应用领域解析
无人机巢作为无人机领域的创新设备,不仅可以实现无人机的自主充电和电池交换,还为无人机提供安全便捷的存放空间。为了帮助大家更好地了解无人机巢,本文将着重解析无人机巢的作用和应用领域。 一、无人机巢的作用 无人机巢作为无人机技术的重…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
