廖雪峰Python学习笔记day9

【廖雪峰Python教程】一、python基础 廖雪峰python教程第一章内容及易错点总结❀ 阅读详情

学习笔记day8

# python study day9

# 进程和线程。实现多任务的方式
# 1、多进程模式
# 2、多线程模式
# 3、多进程+多线程模式

# multiprocessing 跨平台多进程模块。Unix/Linux/Mac环境下可以使用fork创建子进程
# from multiprocessing import Process
# import os
# def run_proc(name): # 子程序要执行的代码
#     print('Parent process %s (%s)...' % (name, os.getpid))
# if __name__ == '__main__':
#     print('Parent process %s.' % os.getpid)
#     p = Process(target=run_proc, args=('test',)) # 通过执行函数和参数创建子进程
#     print('Child process will start.')
#     p.start() # 开始启动
#     p.join() # 等待子进程执行结束
#     print('Child process end.') #>>>
# # Parent process 928.
# # Child process will start.
# # Run child process test (929)...
# # Process end.
# from multiprocessing import Pool
# import os, time, random
# def long_time_task(name):
#     print('Run task %s (%s)...' % (name, os.getpid()))
#     start = time.time()
#     time.sleep(random.random() * 3)
#     end = time.time()
#     print('Task %s runs %0.2f seconds.' % (name, (end- start)))
# if __name__ == '__main__':
#     print('Parent process %s.' % os.getpid())
#     p = Pool(4) # 使用进程池批量创建子进程
#     for i in range(5):
#         p.apply_async(long_time_task, args=(i,))
#     print('Waiting for all subprocesses done...')
#     p.close() # 需要在join之前,调用后不能再添加process
#     p.join() # 同步,等待所有子进程结束
#     print('All subprocesses done.') #>>>
#     Parent process 22900.
# # Waiting for all subprocesses done...
# # Run task 0 (19656)...
# # Run task 1 (10880)...
# # Run task 2 (11372)...
# # Run task 3 (19780)...
# # Task 2 runs 0.35 seconds.
# # Run task 4 (11372)...
# # Task 0 runs 0.83 seconds.
# # Task 3 runs 1.03 seconds.
# # Task 4 runs 1.10 seconds.
# # Task 1 runs 2.25 seconds.
# # All subprocesses done.
# 进程间的通信通过Queue、Pipes实现
# from multiprocessing import Process, Queue
# import os, time, random
# def write(q): # 写数据进程执行代码
#     print('Process to write: %s' % os.getpid())
#     for value in [1, 2, 3]:
#         print('put %s to queue...' % value)
#         q.put(value)
#         time.sleep(random.random())
# def read(q):
#     print('process to read: %s' % os.getpid())
#     while True:
#         value = q.get(True)
#         print('get %s from queue.' % value)
# if __name__ == '__main__':
#     q = Queue() # 父进程创建Queue, 并传给各个子进程
#     pw = Process(target=write, args=(q,))
#     pr = Process(target=read, args=(q,))
#     pw.start() # 启动子进程pw, 写入
#     pr.start() # 启动pr, 读取
#     pw.join()
#     pr.terminate() # pr进程死循环,强行终止 >>>
# # Process to write: 9468
# # put 1 to queue...
# # process to read: 18696
# # get 1 from queue.
# # put 2 to queue...
# # get 2 from queue.
# # put 3 to queue...
# # get 3 from queue.

# 多线程,python提供低级的_thread和高级的threading模块,常用threading
# import time,threading
# def son_thread_task():
#     for i in range(5):
#         print(threading.current_thread().name, i)
#         time.sleep(1)
# print(threading.current_thread().name, 'running')
# son_thread = threading.Thread(target=son_thread_task, name='sonthread')
# son_thread.start()
# son_thread.join()
# print(threading.current_thread().name, 'end') #>>>
# # MainThread running
# # sonthread 0
# # sonthread 1
# # sonthread 2
# # sonthread 3
# # sonthread 4
# # MainThread end
# Lock 线程安全
# import time, threading
# balance = 0 # 全局银行存款变量
# lock = threading.Lock()
# def balance_saveAndGet(money):
#     global balance
#     balance = balance + money
#     balance = balance - money
# def run_thread(money):
#     for i in range(2000000):
#         lock.acquire() # 获取锁后再修改
#         try:
#             balance_saveAndGet(money)
#         finally:
#             lock.release() # 释放锁。with threading.Lock() as lock:……
# def main():
#     t1 = threading.Thread(target=run_thread,args=(5,))
#     t2 = threading.Thread(target=run_thread,args=(8,))
#     t1.start()
#     t2.start()
#     t1.join()
#     t2.join()
#     print('balance now is:', balance)
# if __name__ == '__main__':
#     main()'
# python 因为解析器设计时有GIL全局锁导致多线程无法利用多核,不过可以考虑多进程代替

# ThreadLocal 全局线程变量,每个线程只能读写自己线程,互不干扰。
# 解决了线程内多函数之间相互传递参数的问题。
# import threading
# local_school = threading.local() # 创建全局ThreadLocal对象, 可以看作是dict
# def process_student():
#     std = local_school.student # 获取当前线程的student
#     print(std, threading.current_thread().name)
# def process_thread(name):
#     local_school.student = name # 使用ThreadLocal绑定线程的student
#     process_student()
# t1 = threading.Thread(target=process_thread, args=('Alice',),name='threada')
# t2 = threading.Thread(target=process_thread, args=('Bob',),name='threadb')
# t1.start()
# t2.start()
# t1.join()
# t2.join() #>>>
# # Alice threada
# # Bob threadb

# 单线程的异步编程模型称为协程
# 在Thread和Process中当应优选Process
# Process可以分布到多台机械上,Thread最大只能分布到多个CPU上
# managers模块通过网络暴露Queue可以实现分布式进程
# task_worker.py
# import time, sys, queue
# from multiprocessing.managers import BaseManager
# # 创建类似的QueueManager:
# class QueueManager(BaseManager):
#     pass
# # 由于这个QueueManager只从网络上获取Queue,所以注册时只提供名字:
# QueueManager.register('get_task_queue')
# QueueManager.register('get_result_queue')
# # 连接到服务器,也就是运行task_master.py的机器:
# server_addr = '127.0.0.1'
# print('Connect to server %s...' % server_addr)
# # 端口和验证码注意保持与task_master.py设置的完全一致:
# m = QueueManager(address=(server_addr, 5000), authkey=b'abc') #authkey连接标识
# # 从网络连接:
# m.connect()
# # 获取Queue的对象:
# task = m.get_task_queue()
# result = m.get_result_queue()
# # 从task队列取任务,并把结果写入result队列:
# for i in range(10):
#     try:
#         n = task.get(timeout=1)
#         print('run task %d * %d...' % (n, n))
#         r = '%d * %d = %d' % (n, n, n*n)
#         time.sleep(1)
#         result.put(r)
#     except Queue.Empty:
#         print('task queue is empty.')
# # 处理结束:
# print('worker exit.')

在这里插入图片描述
学习笔记day10

Python3(廖雪峰教程) Python之前学过简明教程,现在再系统的学一下,本博客属于廖雪峰Python教程的重点总结。 第一章 Python变量和数据类型 一、数据类型 整数:十六进制整数用0x前缀表示,数据内容用0-9的数字和a-f的字母表示,例如数字:0xff00。(注:0x中0是数字零,不是字母o) 浮点数:浮点数也就是小数,它的小数点位置是可变的,例如:2.3x10==0.23x100。当浮点数很大或很小的浮点... 阅读详情

相关推荐

【廖雪峰Java】Java基础知识

詹姆斯·高斯林(James Gosling)对于float类型,需要加上f后缀。// 科学计数法表示的3.14x10^38// 错误:不带f结尾的是double类型,不能赋值给float。

qq_1532145264的博客 2238

廖雪峰Python 2.X 教程

Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过TIOBE排行榜,你就能知道编程语言的大致流行程度。这是最近10年最常用的10种编程语言的变化图: 总的来说,这几种编程语言各有千秋。C语言是可以用来编写操作

GarfieldEr007的专栏 2万+

Python廖雪峰教程学习笔记:Day3

前言 养成一个好的习惯只需要坚持21天,Day3 条件判断和循环 条件判断与循环在编程实现中都很常见,比如,输入用户的年龄,根据年龄的大小可以打印出不同的内容,该功能的实现可以使用if语句实现: if - else语句,如果if判断是False,则执行else后面的内容,否则执行if后面的内容。 if - elif - else语句,可以有多个判断语句。 ⚠️注意:1⃣️在判断语句的后面不要...

Comme_moik的博客 1493

Python教父凉了?!网友热议:看完廖雪峰,什么都做不了!

市面上有很多大牛老师,斯坦福大学人工智能教授吴恩达,Python技术专家廖雪峰,他们的课广受赞誉,常被称作“教科书”级别的入门课程。 但是仍有很多人说,“大牛一行字就够我琢磨1小时了。” 很多人在学习新知识前,状态都是这样的: 其实如果是新手,只学会了入门级教程,那约等于什么都写不出来。 就以Python为例,为了写出解决实际问题的爬虫,你还需要:简单的网络基础,包括套接字...

程序人生的博客 6万+

STM32接入CH340芯片的升级电路及初始化进入升级模式(死机)问题处理

MCU-REST 在 MCU-BOOT0 处于低电平状态下,进行下拉操作,在MCU-REST 与 MCU-BOOT0 恢复正常电平时,将导致MCU死机,MCU-REST 先于 MCU-BOOT0 下拉可解决该问题;MCU-REST 在 上升沿结束时将判断 MCU-BOOT0 的状态,MCU-BOOT0 处于高电平,MCU死机,MCU-BOOT0 处于低电平 MCU 正常;

LuDvei的博客 2491

Android11 关于三方应用获取su权限

SELinux,全称Security-Enhanced Linux,是一种基于Linux内核的安全机制。它通过强制访问控制(MAC)来增强Linux系统的安全性,如果不禁用SELinux,完成下面的修改可能会导致设备进入Recovery界面!adb shell getenforce 为Permissive(宽容模式),查看报错日志,发现是客户apk想使用su命令提权,但是没有权限!对于保护系统资源和防止未经授权访问非常有帮助!系统这边做修改,让su权限下放到三方应用.客户的apk运行报错。

sinat_37429535的博客 1901

Python廖雪峰教程学习笔记:Day9

前言 养成一个好的习惯只需要坚持21天,Day9 访问限制 由上一节定义的Student类来看,我们可以在外部代码修改name、score属性。比如我们想要修改对象的成绩,可以直接对score赋值。 bart.score = 60 print(bart.score) # 60 如果要让内部的属性不被外部访问和修改,我们可以在属性的名称前面加上两个下划线__,这样就变成了一个私有对象,只有内部可以...

Comme_moik的博客 1691

python设计俄罗斯方块(附源码)

【代码】python设计俄罗斯方块(附源码)

牧魂的博客 2059

廖雪峰Python学习笔记day10

学习笔记day9 # python study day10 # 正则表达式 # \d # 匹配一个数字 # \w # 匹配一个字母或数字 # . # 匹配任意字符 # * # 匹配0个或任意多个字符 # + # 匹配至少一个字符 # ? # 匹配0个或1个字符 # {n} # 匹配n个字符 # {n, m} # 匹配n-m个字符 # \s # 匹配一个空格(包括Tab空白符),\s+ 表示至少一个空格 # [] # 匹配范围,[0-9a-zA-Z\_] 可以匹配一个数字、字母或下划线 # A|B # 匹配

zero_130的博客 210

三菱JET伺服限位、原点信号通过PLC刷新设置方法

RWw及RWr软元件的初始设定值,可通过 [Pr. PA01.0 控制模式选择] 及 [Pr. PN22.0 默认映射模式选择] 的值进行切换。JET伺服参数用于CC-Link IE现场网络Basic。循环通信的请求报文与响应报文的收发数据被换读为伺服放大器的对象数据 (RWwn、RWrn)。接下来看映射字2D05具体的内容: 也就是2D05操作字的第九位、第十位、第十一位。响应报文的设定值可进行变更。变更初始设定值时,应变更PDO映射。不同的模式,对应不同的刷新映射内容。GXWORKS3程序。

qq_51166033的博客 8055

维护测试监控LLM应用

LangFuse: 开源 + SaaS(免费/付费),LangSmith 平替,可集成 LangChain 也可直接对接 OpenAI API;LangSmith: LangChain 的官方平台,SaaS 服务(免费/付费),非开源,企业版支持私有部署;调试 Prompt 的 Playground测试/验证系统的相关指标数据集管理各种指标监控与统计:访问量、响应时长、Token 费等等。

SunnyRivers 1780

廖雪峰Python学习笔记day15

学习笔记day14 # python study day15 # 一般不同平台邮件收发过程 # 发件人 -> MUA(Mail User Agent——邮件用户代理) -> # MTA(Mail Transfer Agent——邮件传输代理) -> 若干个MTA -> # MDA(Mail Delivery Agent——邮件投递代理) <- MUA <- 收件人 # SMTP 邮件发送协议,python提供 email(负责构造邮件)、smtplib(负责发送邮件)模

zero_130的博客 246

银河麒麟服务器操作系统V10-SP1部署gitlab服务

银河麒麟高级服务器操作系统 V10 SP1 部署GitHub

weixin_43173670的博客 2154

廖雪峰Python学习笔记day11

学习笔记day10 # python study day11 # collections 内建集合模块 # namedtuple 创建自定义tuple对象,规定tuple元素个数,使用属性引用元素 # from collections import namedtuple # Point = namedtuple('Point', ['x', 'y']) # p = Point(1, 3) # p2 = Point(-1, -3) # print(p.x, p.y) #>>> 1 3 #

zero_130的博客 265

别再为通讯发愁了!手把手教你用PCAN-View调试Kinco步科伺服电机的CANopen

本文详细介绍了如何使用PCAN-View工具调试Kinco步科伺服电机的CANopen通讯,从环境搭建到实战演练,涵盖硬件连接、软件配置及故障排除。通过具体案例和代码示例,帮助工程师快速掌握伺服电机通讯控制技术,解决工业设备通讯难题。

weixin_29189377的博客 266

ABAP 里的 XML 与 JSON 处理,一套从接口落地到 Clean Core 的完整参考

ABAP 里的 XML 和 JSON 处理并不只是几段工具类调用。iXML、sXML、、XCO、、code page conversion、GZIP、对象序列化,这些能力背后对应的是不同的数据规模、访问模式、接口契约和运行时边界。小报文、复杂树结构、需要修改节点,iXML 很顺手。大报文、顺序读写、内存敏感,sXML 更可靠。ABAP 结构和 XML、JSON 之间要做标准转换,是主干。现代 JSON API、ABAP Cloud、命名转换,XCO 值得优先考虑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 224

廖雪峰Python学习笔记day1

学习参考自 廖雪峰Python教程 # 廖雪峰学习python 3.x # vscode 快捷当行注释 CTRL + / 或者 CTRL + K + C # vscode 快捷取消注释 CTRL + / 或者 CTRL + K + U # vscode 快捷下方插入行 CTRL + Enter # 交互模式下('>>>')输入一行代码,执行一行 # 33 + 2 # >>> 35 # 命令行模式下,直接运行.py文件,一次性执行所有代码 # print(33.1*3)

zero_130的博客 370

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python廖雪峰教程学习笔记:Day2

前言 养成一个好的习惯只需要坚持21天,Day2 使用list和tuple list 列表 list是一种有序的集合,可以随时添加和删除其中的元素。它的表示用[]。list = [] 变量name就是一个list。用len()函数可以得到list的长度,即该list当中有多少个元素。 list中元素的访问采用索引,⚠️注意索引是从0开始的,当索引超出list的长度,Python会报一个Inde...

Comme_moik的博客 766

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰 Python教程 学习笔记_Day01

qq_43017379的博客 235

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

廖雪峰 Python教程 学习笔记_Day02

qq_43017379的博客 190

廖雪峰Python教程day1-day9总结

源码见廖雪峰github-day9,目前也只能是对源码进行理解,如果要自己写出来这些代码,还是很困难的。 一、基本结构 首先,是一个webapp最基本的结构 async def init(): await orm.create_pool(host='127.0.0.1', port=3306, user='root', password='', db='awesome') app ...

chaoren1128的博客 643

Python廖雪峰教程学习笔记:Day5

前言 养成一个好的习惯只需要坚持21天,Day5 高级特性 切片 迭代 列表生成器 生成器 切片 取一个list和tuple的部分元素可以用切片快速实现。 L为一个list,L[0:3]表示从索引0开始取到索引3为止,但不包括索引3,即索引0,1,2三个元素。 如果第一个索引是0,还可以省略为L[:3],运行结果和L[0:3]一样。 如果索引从1开始,取出两个元素则可以写作L[1:3],运行...

Comme_moik的博客 569

Python廖雪峰教程学习笔记:Day15

前言 养成一个好的习惯只需要坚持21天,Day15 多进程 Unix/Linux操作系统提供了一个fork()系统调用。一般我们遇到的函数都是调用一次便返回一次,这里的fork()调用一次返回两次。因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子进程的ID。 fork调用,一个进程在接到新任务时就可以复制出一个子...

Comme_moik的博客 451

Python廖雪峰教程学习笔记:Day14

前言 养成一个好的习惯只需要坚持21天,Day14 什是JSON? JSON是轻量级的文本数据交换格式,指的是 JavaScript 对象表示法(JavaScript Object Notation),类似XML但又比 XML 更小、更快,更易解析。 JSON语法 JSON数据的书写格式是:"名称":“值”,例如: "name":"汤姆" JSON的值可以是:数字、字符串、逻辑值、数组、对象和n...

Comme_moik的博客 535

Python廖雪峰教程学习笔记:Day7

前言 养成一个好的习惯只需要坚持21天,Day7 隔了几天没有写博客记录自己的学习。果然养成一个好的习惯不容易,丢掉一个好的习惯确是轻而易举,我不知道自己能坚持这个习惯多久,但是我会把每天写一篇学习博客的事情放在心上。自己写的博客可能不能帮助别人学到什么,但是这种总结归纳从一定程度上促进了自己的进步,加油! 匿名函数 有时候,为了减少代码,我们可以直接传入匿名函数,不需要显式的定义函数。在Pyth...

Comme_moik的博客 257

Python廖雪峰教程学习笔记:Day4

前言 养成一个好的习惯只需要坚持21天,Day4 函数 编程中,函数的调用、定义在一定程度上可以简化功能的实现,降低程序的复杂度。 调用函数 Python中内置了许多有用的函数,我们在调用一个内置函数的时候,需要知道函数的名称和参数。 内置函数-Python 3.7.6文档 调用abs()函数: 调用函数的数量,如果传入的参数数量不对,会报TypeError错误: 如果传入参数的数量是对的,但...

Comme_moik的博客 558
上一篇: 廖雪峰Python学习笔记day8
下一篇: jquery,jsp页面定义onclick方法not defined
zero_130
博客等级 码龄10年 21粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值