![Python字符串替换的方法-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码](https://zhuji.vsping.com/wp-content/themes/dux/assets/img/thumbnail.png)
Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下几种替换字符串的方法 replace方法(常用) translate方法 re.sub方法 字符串切片(根据Python字符串切片方法替换字符) 1.replace方法 Python replace方法把字符串中的old(旧字符串) 替换成new(新字符串),如果指定第三个参数max,则设置替换次数不超过 max 次。 str.replace(old, new[, max]) 示例1 在该示例中,出现的两个单词Hello都被替换为Hi。 #原字符 msg = "Hello world! Hello Python!" # 替换字符,字符串直接调用replace方法 msg2 = msg.replace('Hello', 'Hi') print(msg2) #输出 Hi world! Hi Python! 示例2 可以直接str.replace方法。它将我们进行替换的字符串作为第一个参数。结果和示例1一样。 msg = "Hello world! Hello Python!" msg2 = str.replace(msg, 'Hello', 'Hi') print(msg2) #输出 Hi world! Hi Python! 示例3 我们可以用换行符替换每个逗号,并设置替换次数 data = "1,2,3,4,5" # 替换次数为3次 data2 = data.replace(',', '\n', 3) print(data2) #输出 1 2 3 4,5 示例4 在该示例中,我们替换最后一次出现的单词Hello。需要结合Python rfind()方法。rfind()方法是指返回字符串最后一次出现的位置。 msg = "Hello world! Hello Python!" # Python rfind()返回字符串最后一次出现的位置 idx = msg.rfind("Hello") print(idx) # 提取前一部分字符不替换,取后一部分字符进行替换 # 这里用到了字符串切片的方式 msg2 = msg[:idx] + str.replace( msg[idx:] , "Hello", "Hi") print(msg2) #输出 13 Hello world! Hi Python! 示例5 我们可以将replace方法链接起来进行多次替换。 msg = "Hello world! Hello Python!" msg2 = msg.replace('Hello', 'Hi').replace('!','.')...
![Python程序运行内存的查看-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码](https://zhuji.vsping.com/wp-content/themes/dux/assets/img/thumbnail.png)
在运行代码时,我们常常想要知道代码运行内存占用情况。很多情况下我们想知道是不是自己哪个循环写的太繁琐了,或者是在哪一步可以用更小的内存来实现等。所以需要我们对程序整体、某一部分代码、某一变量运行内存使用有更直观的了解。 在本地运行代码如PyCharm和远程运行代码如VScode中都是如何查看内存使用情况的? 内存分析器Memory Profiler 这是一个python模块,用于监控进程的内存消耗以及对python程序的内存消耗进行逐行分析。它是一个纯 python 模块,依赖于psutil模块。 pip 安装:pip install -U memory_profiler 对象 sys.getsizeof()——以字节为单位返回对象的大小。 sys.getsizeof只计算实际使用的内存大小,引用所消耗的内存大小不计算。sys.getsizeof只能作为计算内存大小的参考~ 代码及结果 import sys a = [0,1,2,3,4]*2 memory_a = sys.getsizeof(a) print("a内存占用:%i字节"%memory_a) a内存占用:144字节 函数 如果想要对某一函数做性能分析,在需要做性能分析的函数前面加装饰器 @profile 代码及结果 from memory_profiler import profile import time @profile # 在需要做性能分析的函数前面加装饰器 @profile def my_func1(c): a = [1] * (10 ** c) b = [2] * (2 * 10 ** 7) time.sleep(5) del b del a print("+++++++++") def my_func2(): p = [0,1,2,3,4,5] P = p*2 print(P) if __name__ == '__main__': c=6 my_func1(c) my_func2() +++++++++ Filename: E:/平时笔记/test/memory_test.py Line Mem usage Increment Occurrences Line Contents 4 36.4 MiB 36.4 MiB 1 @profile # 在需要做性能分析的函数前面加装饰器 @profile 5 6 def my_func1(c): 7 44.1 MiB 7.6 MiB 1 a = [1] * (10 ** c) 8 196.7 MiB...
![获取字典中values值中最大的数,返回对应的keys-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码](https://zhuji.vsping.com/wp-content/themes/dux/assets/img/thumbnail.png)
1.字典中键值对的获取 print(data.values()) # 查看字典的值 print(data.keys()) # 查看字典的key 2.对字典中的值进行排序 sorted(data.values()) sorted(data.values(),reverse=True) # 倒序 3.实操练习:获取字典中values值中最大的数,返回对应的keys def best_stock(data: dict) -> str: li = sorted(data.values(),reverse=True) for i in data.keys(): if data[i] == li[0]: return i if __name__ == '__main__': print(best_stock({"CHINESE": 10.0, "MATH": 390.2, "ENGLISH": 1.2})) print(best_stock({"CHINESE": 10.0, "MATH": 390.2, "ENGLISH": 1.2})) print(best_stock({"CHINESE": 91.1, "MATH": 1.01, "ENGLISH": 120.9}))
![ORM的增删改查-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码](https://zhuji.vsping.com/wp-content/themes/dux/assets/img/thumbnail.png)
增:添加数据 利用模型类创建对象来进行增加 语法: 对象名 = 模型类(字段=值) 需要自己手动保存 对象名.save() 利用模型类管理器增加数据 语法: 模型类.objects.create(字段=值…) 删:删除数据 利用模型类创建对象进行删除 语法: 对象名 = 模型类.objects.get(条件) 对象名.delete() 利用模型类管理器删除数据 语法: 模型类.objects.get、filter(条件).delete() 删除不存在的数据会报错 改:修改数据 利用模型类创建对象进行修改 语法: 对象名 = 模型类.objects.get(条件) 对象名.字段 = 值 对象名.save() # 保存修改的信息 利用模型类管理器修改数据 语法: 模型类.objects.filter(条件).update() 查:查找数据 all(): 模型类.objects.all() 查询全部数据 get(): 模型类.objects.get(条件) get:只能获取单条数据,如果查询的结果超过1条数据,报错 filter(): 模型类.objects.filter(条件) filter:查询得到的是一个结果集 可以查询多条数据,单条数据 exclude(): 模型类.objects.exclude(条件) exclude:查询和条件相反的数据(不满足条件的数据) 条件查询: 等值查询(=):查询id大于2的数据 gt: Register.objects.filter(id__gt=2) 模型类.objects.filter(字段__gt=值) 查询id小于3的数据 lt: Register.objects.filter(id__lt=3) 模型类.objects.filter(字段__lt=值) 注:(大于等于:gte、小于等于lte) 查询名字为张三的个数(统计个数count) Register.objects.filter(name=”张三”).count() 模型类.objects.filter(条件).count() 按照id降序进行排序(order_by) 模型类.objects.all().order_by(“字段”) 升序 模型类.objects.all().order_by(“-字段”) 降序 可以写all()也可以不写 查询名字以张开始的: Register.objects.filter(name__startswith=”张”) 模型类.objects.filter(字段__startswith=”值”)
![Python:多线程的使用教程-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码](https://zhuji.vsping.com/wp-content/themes/dux/assets/img/thumbnail.png)
一、简介 Python中使用线程有两种方式:函数或者用类来包装线程对象。 函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下: 参数说明: function – 线程函数。 args – 传递给线程函数的参数,他必须是个tuple类型。 kwargs – 可选参数。 实例: import _thread import time # 为线程定义一个函数 def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print ("%s: %s" % ( threadName, time.ctime(time.time()) )) # 创建两个线程 try: _thread.start_new_thread( print_time, ("Thread-1", 2, ) ) _thread.start_new_thread( print_time, ("Thread-2", 4, ) ) except: print ("Error: 无法启动线程") while 1: pass 二、线程模块 Python3 通过两个标准库_thread和threading提供对线程的支持。 _thread 提供了低级别的、原始的线程以及一个简单的锁,它相比于 threading 模块的功能还是比较有限的。 threading 模块除了包含 _thread模块中的所有方法外,还提供的其他方法: threading.currentThread(): 返回当前的线程变量。 threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。 threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。 除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法: run(): 用以表示线程活动的方法。 start():启动线程活动。 join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。 isAlive(): 返回线程是否活动的。 getName(): 返回线程名。 setName(): 设置线程名。 三、使用 threading 模块创建线程 可以通过直接从 threading.Thread 继承创建一个新的子类,并实例化后调用 start() 方法启动新线程,即它调用了线程的 run() 方法: import threading import time exitFlag = 0 class myThread (threading.Thread): def __init__(self, threadID, name, counter): threading.Thread.__init__(self)...
![Python第三方库安装教程、什么是第三方库-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码](https://zhuji.vsping.com/wp-content/themes/dux/assets/img/thumbnail.png)
Python有一个全球社区:https://pypi.org/,在这里我们可以搜索任何主题的Python第三方库。PyPI全称是Python Package Index,指的是Python包的索引,它由PSF(Python Software Foundation)来维护,并且展示全球Python计算生态。 我们需要学会利用PyPI的主站检索,找到我们使用和关心的Python第三方库。 举个例子,如果在开发与区块链相关的程序,需要三步来利用Python的计算生态:第一步,在pypi.org网站搜索blockchain(blockchain是区块链的英文名称);第二步,在搜索到的第三方库中,挑选适合开发目标的第三方库以此为基础(可以通过搜索引擎、他人的评价、甚至一些其他的辅助网站来判断和分析);第三步,阅读这个第三方库的使用方法,完成自己的需求。 安装Python第三方库 安装Python第三方库主要有三种方法。方法一,最最常用的方法,pip命令安装;方法二,集成安装方法;方法三,文件安装方法。 1.pip安装方法 pip安装方法简单来说就是使用Python自带的pip安装工具,进行第三方库安装。这个工具可以在Windows平台、Mac OS平台和Linux平台使用,需要打开命令行,这个命令行是每个操作系统提供的命令行,而不是IDLE之间的Python交互环境。在命令行中输入pip -h可以打出这个命令的帮助信息,下面介绍一些常用的pip指令 pip install <第三方库名> #安装指定的第三方库 pip install -U <第三方库名> #-U表示update,对已经安装到计算机的第三方库进行版本更新,使它升到最新版本 pip uninstall <第三方库名> #卸载指定的第三方库 pip download <第三方库名> #下载但不安装指定的第三方库,这个下载的第三方库可以作为后续安装的基础 pip show <第三方库名> #列出某个指定第三方库的详细信息,包括这个库的介绍和使用方法等 pip search <关键词> #根据关键词在库的名称和介绍中搜索相关的第三方库 pip list #列出当前系统已经安装的第三方库 pip安装方法是安装Python第三方库的最主要方法,它适合99%以上的第三方库安装,它也是未来获取第三方库官方给出的最主要的也是唯一的方法,但这种方法需要计算机能够连接互联网,并且它会受限于一定的当前的网络条件。 2.集成安装方法 集成安装方法就是结合特定的Python开发工具批量安装一批库。当然这样的安装工具并不多,推荐一个名为Anaconda的库,官网https://www.anaconda.com/,它是一个Python数据处理方面的集成开发工具,支持近800个第三方库。换句话说,只要把Anaconda的相关的开发程序下载并完成安装,系统中就有了800个第三方库,可以直接使用它们而不需要安装,这样的开发环境中不只包含第三方库,还包含了多种主流的Python开发工具,是目前数据计算领域的相对标准的开发环境。 3.文件安装方法 也许你会遇到一个问题,比如有些第三方库我们可以使用pip是可以将它的文件下载到本地,但是安装过程会经常发生错误,这也许是因为这些第三方库提供的并不是可执行文件,提供的是第三方库的源代码,下载到本地后需要结合操作系统进行编译,再进一步安装。如果操作系统中没有一个能够编译的环境,那么这样的第三方库下载到本地就不能够进行编译以及安装。当然也可以直接下载编译后的版本用于安装,但是可能第三方库的作者并没有提供这样的方式,这里就需要另一个网站https://www.lfd.uci.edu/~gohlke/pythonlibs/,该网站是加州大学尔湾分校的一位教授维护的网页,给出了在Windows操作系统上一批原本需要经过编译再安装的第三方库的编译后版本。 简单来说,如果发现使用pip指令安装一个第三方库,它能够完整下载,但是操作系统不具备编译环境使得不能安装它,就可以使用网页提供的信息安装第三方库。可以分为三个步骤:第一步,在网页上搜索第三方库,找到这个库的第三方信息;第二步,下载对应版本的第三方库文件,需要结合操作系统版本、Python使用的版本来下载相应的编译后的文件;第三步,使用pip install <文件名>安装。安装玩之后,第三方库就可以使用了