Python标准库概览
Python标准库概览
知识点
- 标准库: turtle库(必选)
- 标准库: random库(必选)、time库(可选)
知识导图

1、turtle库概述
- turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制。
- turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进”、“后退”、“旋转”等爬行行为,对坐标系的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。
- 使用import保留字对turtle库的引用有如下三种方式
- 第一种,import turtle,则对turtle库中函数调用采用 turtle.<函数名>() 形式。
import turtle
turtle.circle(200)
- 第二种,from turtle import *,则对turtle库中函数调用直接采用 <函数名>()形式,不在使用turtle.作为前导。
from turtle import *
circle(200)
- 第三种,import turtle as t,则对turtle库中函数调用采用更简洁的 t.<函数名>() 形式,保留字as的作用是将turtle库给予别名t。
import turtle as t
t.circle(200)
1.1 turtle库与基本绘图
- turtle库包含100多个功能函数,主要包括窗体函数、画笔状态函数、画笔运动函数等三类。
1.2 窗体函数
- turtle.setup(width, height, startx, starty)
作用:设置主窗体的大小和位置
参数:
width :窗口宽度,如果值是整数,表示的像素值;如果值是小数,表示窗口宽度与屏幕的比例;
height::窗口高度,如果值是整数,表示的像素值;如果值是小数,表示窗口高度与屏幕的比例;
startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央;
starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央;
1.3 画笔状态函数
| 函数 | 描述 |
|---|---|
| pendown() | 放下画笔 |
| penup() | 提起画笔,与pendown()配对使用 |
| pensize(width) | 设置画笔线条的粗细为指定大小 |
| color() | 设置画笔的颜色 |
| begin_fill() | 填充图形前,调用该方法 |
| end_fill() | 填充图形结束 |
| filling() | 返回填充的状态,True为填充,False为未填充 |
| clear() | 清空当前窗口,但不改变当前画笔的位置 |
| reset() | 清空当前窗口,并重置位置等状态为默认值 |
| screensize() | 设置画布的长和宽 |
| hideturtle() | 隐藏画笔的turtle形状 |
| showturtle() | 显示画笔的turtle形状 |
| isvisible() | 如果turtle可见,则返回True |
- turtle中的画笔(即小海龟)可以通过一组函数来控制,其中turtle.penup()和turtle.pendown()是一组,它们分别表示画笔的提起和落下,函数定义如下:
turtle.penup() 别名 turtle.pu(), turtle.up()
作用:抬起画笔,之后,移动画笔不绘制形状
参数:无
turtle.pendown() 别名 turtle.pd(), turtle.down()
作用:落下画笔,之后,移动画笔将绘制形状
参数:无
- turtle.pensize()函数用来设置画笔尺寸
turtle.pensize(width) 别名 turtle.width()
作用:设置画笔宽度,当无参数输入时返回当前画笔宽度
参数:
width :设置的画笔线条宽度,如果为None或者为空,函数则返回当前画笔宽度。
- turtle.pencolor()函数给画笔设置颜色
turtle.pencolor(colorstring) 或者 turtle.pencolor((r,g,b))
作用:设置画笔颜色,当无参数输入时返回当前画笔颜色
参数:
colorstring :表示颜色的字符串,例如:“purple”、“red”、"blue"等(r,g,b): 颜色对应RGB的01数值,例如:1, 0.65, 0
1.4 画笔运动函数
| 函数 | 描述 |
|---|---|
| forward() | 沿着当前方向前进指定距离 |
| backward() | 沿着当前相反方向后退指定距离 |
| right(angle) | 向右旋转angle角度 |
| left(angle) | 向左旋转angle角度 |
| goto(x,y) | 移动到绝对坐标(x,y)处 |
| setx( ) | 将当前x轴移动到指定位置 |
| sety( ) | 将当前y轴移动到指定位置 |
| setheading(angle) | 设置当前朝向为angle角度 |
| home() | 设置当前画笔位置为原点,朝向东。 |
| circle(radius,e) | 绘制一个指定半径r和角度e的圆或弧形 |
| dot(r,color) | 绘制一个指定半径r和颜色color的圆点 |
| undo() | 撤销画笔最后一步动作 |
| speed() | 设置画笔的绘制速度,参数为0-10之间 |
- turtle.fd()函数最常用,它控制画笔向当前行进方向前进一个距离
turtle.seth()函数用来改变画笔绘制方向turtle.fd(distance) 别名 turtle.forward(distance)
作用:向小海龟当前行进方向前进distance距离
参数:
distance :行进距离的像素值,当值为负数时,表示向相反方向前进。
- turtle.seth()函数用来改变画笔绘制方向
turtle.seth(to_angle) 别名 turtle.setheading(to_angle)
作用:设置小海龟当前行进方向为to_angle,该角度是绝对方向角度值。
参数:
to_angle :角度的整数值。
- turtle.circle()函数用来绘制一个弧形
turtle.circle(radius, extent=None)
作用:根据半径radius绘制extent角度的弧形。
参数:
radius :弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半径在小海龟右侧;
extent : 绘制弧形的角度,当不给该参数或参数为None时,绘制整个圆形。
2、random库概述
- 使用random库主要目的是生成随机数
- 这个库提供了不同类型的随机数函数,其中最基本的函数是random.random(),它生成一个[0.0, 1.0)之间的随机小数,所有其他随机函数都是基于这个函数扩展而来。
from random import *
print(random())
# 0.5780913011344704
print(random())
# 0.20609823213950174
2.1 random库与随机数运用
- random库的常用函数
| 函数 | 描述 |
|---|---|
| seed(a=None) | 初始化随机数种子,默认值为当前系统时间 |
| random() | 生成一个[0.0, 1.0)之间的随机小数 |
| randint(a, b) | 生成一个[a,b]之间的整数 |
| getrandbits(k) | 生成一个k比特长度的随机整数 |
| randrange(start, stop[, step]) | 生成一个[start, stop)之间以step为步数的随机整数 |
| uniform(a, b) | 生成一个[a, b]之间的随机小数 |
| choice(seq) | 从序列类型(例如:列表)中随机返回一个元素 |
| shuffle(seq) | 将序列类型中元素随机排列,返回打乱后的序列 |
| sample(pop, k) | 从pop类型中随机选取k个元素,以列表类型返回 |
- random库使用random.seed(a)对后续产生的随机数设置种子a。
from random import *
seed(10)
print(random())
# 0.5714025946899135
print(random())
# 0.4288890546751146
seed(10) #再次设置相同的种子,则后续产生的随机数相同
print(random())
# 0.5714025946899135
print(random())
# 0.4288890546751146
- 设置随机数种子的好处是可以准确复现随机数序列,用于重复程序的运行轨迹。对于仅使用随机数但不需要复现的情形,可以不用设置随机数种子。n 如果程序没有显式设置随机数种子,则使用随机数生成函数前,将默认以当前系统的运行时间为种子产生随机序列。
3、time库概述
- 处理时间是程序最常用的功能之一,time库是Python提供的处理时间标准库。time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可让程序暂停运行时间。
import time
print(time.localtime())
'''
time.struct_time(tm_year=2017, tm_mon=12,
tm_mday=2, tm_hour=14, tm_min=44, tm_sec=9,
tm_wday=4, tm_yday=26, tm_isdst=0)'''
- time库的功能主要分为3个方面:时间处理、时间格式化和计时。
• 时间处理主要包括4 个函数: time.tiem ( ) 、time.gmtime()、time.localtime() 、time.ctime()。
• 时间格式化主要包括3个函数:time.mktime()、time.strftime()、time.strptime()。
• 计时主要包括3 个函数: time.sleep ( ) 、time.monotonic()、time.perf_counter()
- 使用time.time()获取当前时间戳
import time
print(time.time())
# 1516939876.6022282
- 使用time.gmtime(secs)获取当前时间戳对应的struct_time对象
import time
print( time.gmtime(now))
'''
time.struct_time(tm_year=2020, tm_mon=1,
tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16,
tm_wday=4, tm_yday=26, tm_isdst=0)'''
- 使用time.localtime(secs)获取当前时间戳对应的本地时间的struct_time对象
import time
print( time.localtime(now))
'''
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=26,
tm_hour=12, tm_min=11, tm_sec=16, tm_wday=4,
tm_yday=26, tm_isdst=0)'''
- 注意结果与gmtime的区别,UTC时间已自动转换为北京时间。
- 使用time.ctime(secs)获取当前时间戳对应的易读字符串表示,内部会调用time.localtime()函数以输出当地时间。
import time
print( time.ctime(now))
# 'Fri Jan 26 12:11:16 2020'
- time库使用time.mktime()、time.strftime()、time.strptime()进行时间格式化。
- 使用time.mktime(t) 将struct_time对象t转换为时间戳,注意t代表当地时间。struct_time对象的元素如下
| 下标 | 属性 | 值 |
|---|---|---|
| 0 | tm_year | 年份,整数 |
| 1 | tm_mon | 月份[1, 12] |
| 2 | tm_mday | 日期[1, 31] |
| 3 | tm_hour | 小时[0, 23] |
| 4 | tm_min | 分钟[0, 59] |
| 5 | tm_sec | 秒[0, 61] |
| 6 | tm_wday | 星期[0, 6](0表示星期一) |
| 7 | tm_yday | 该年第几天[1, 366] |
| 8 | tm_isdst | 是否夏时令,0否, 1是, -1未知 |
- 调用time.mktime(t)函数
import time
t = time.localtime(now)
print( time.mktime(t))
# 1516939876.0
print( time.ctime(time.mktime(t)))
# 'Fri Jan 26 12:11:16 2020'
- time.strftime()函数是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。该方法利用一个格式字符串,对时间格式进行表达。
import time
lctime = time.localtime()
print( lctime)
'''
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=26,
tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26,
tm_isdst=0)
'''
print( time.strftime("%Y-%m-%d %H:%M:%S", lctime))
# '2020-01-26 12:55:20'
- strftime()方法的格式化控制符
| 格式化字符串 | 日期/时间 | 值范围和实例 |
|---|---|---|
| %Y | 年份 | 0001~9999,例如:1900 |
| %m | 月份 | 01~12,例如:10 |
| %B | 月名 | January~December,例如:April |
| %b | 月名缩写 | Jan~Dec,例如:Apr |
| %d | 日期 | 01 ~ 31,例如:25 |
| %A | 星期 | Monday~Sunday,例如:Wednesday |
| %a | 星期缩写 | Mon~Sun,例如:Wed |
| %H | 小时(24h制) | 00 ~ 23,例如:12 |
| %I | 小时(12h制) | 01 ~ 12,例如:7 |
| %p | 上/下午 | AM, PM,例如:PM |
| %M | 分钟 | 00 ~ 59,例如:26 |
| %S | 秒 | 00 ~ 59,例如:26 |
- strptime()方法与strftime()方法完全相反,用于提取字符串中时间来生成strut_time对象,可以很灵活的作为time模块的输入接口
import time
timeString = '2020-01-26 12:55:20'
print( time.strptime(timeString, "%Y-%m-%d %H:%M:%S"))
'''
time.struct_time(tm_year=2020, tm_mon=1, tm_mday=26,
tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26,
tm_isdst=-1)'''
4、time库与程序计时
- 程序计时是非常常用的功能,尤其是对于运行时间较长的程序,往往需要先进行小规模(短时间)的实验,并根据实验结果预估最终程序的大致运行时间。
- 程序计时主要要包含三个要素:程序开始/结束时间、程序运行总时间、程序各核心模块运行时间。
- 下面以1千万次循环计时为例介绍程序计时的实现,并进一步理解time模块相关函数的运用。
- 以1千万次循环为主体,模拟实际程序的核心模块,用time.sleep()来模拟实际程序的其他模块。
import time
def coreLoop():limit = 10**8while (limit > 0):limit -= 1
def otherLoop1():time.sleep(0.2)
def otherLoop2():time.sleep(0.4)def main():startTime = time.localtime()print('程序开始时间:', time.strftime('%Y-%m-%d %H:%M:%S', startTime))startPerfCounter = time.perf_counter()otherLoop1()otherLoop1PerfCounter = time.perf_counter()otherLoop1Perf = otherLoop1PerfCounter - startPerfCountercoreLoop()coreLoopPerfCounter = time.perf_counter()coreLoopPerf = coreLoopPerfCounter - otherLoop1PerfCounterotherLoop2()otherLoop2PerfCounter = time.perf_counter()otherLoop2Perf = otherLoop2PerfCounter - coreLoopPerfCounterendPerfCounter = time.perf_counter()totalPerf = endPerfCounter - startPerfCounterendTime = time.localtime()print("模块1运行时间是:{}秒".format(otherLoop1Perf))print("核心模块运行时间是:{}秒".format(coreLoopPerf))print("模块2运行时间是:{}秒".format(otherLoop2Perf))print("程序运行总时间是:{}秒".format(totalPerf))print('程序结束时间:', time.strftime('%Y-%m-%d %H:%M:%S', endTime))
main()
- 程序运行的输出效果如下
程序开始时间: 2017-12-26 13:46:39
模块1运行时间是:0.20003105182731706秒
核心模块运行时间是:5.987101639820927秒
模块2运行时间是:0.40018931343066555秒
程序运行总时间是:6.587323585324574秒
程序结束时间: 2017-12-26 13:46:45
5、实例解析:雪景艺术绘图
- turtle图形艺术,指利用turtle库画笔创造性绘制绚丽多彩艺术图形的过程。
- turtle图形艺术效果中隐含着很多随机元素,如随机颜色、尺寸、位置和数量等。在图形艺术绘制中需要引入随机函数库random。常
- 用randint()函数,生成指定范围内的随机数,
- “雪景”图形艺术背景为黑色,分为上下两个区域,上方是漫天彩色雪花,下方是由远及近的灰色横线渐变。该图运用了随机元素,如雪花位置、颜色、大小、花瓣数目、地面灰色线条长度、线条位置等,需要使用turtle库和random库。
- 绘制分为三个步骤
\1. 构建图的背景
\2. 绘制雪花效果
\3. 绘制雪地效果
- 第一步,构建图的背景
设定窗体大小为800x600像素,窗体颜色为black。然后,定义上方雪花绘制函数drawSnow()和下方雪地绘制函数drawGround()。
- 第二步,绘制雪花效果。
为体现艺术效果,drawSnow()函数首先隐藏turtle画笔、设置画笔大小、绘制速度,然后使用for循环绘制100朵雪花。雪花大小snowsize、雪花花瓣数dens都分别设定为一定数值范围随机数。最后通过for循环绘制出多彩雪花。
- 第三步,绘制雪地效果。
drawGround()函数使用for循环绘制地面400个小横线,画笔大小pensize、位置坐标x、y、线段长度均通过randint()函数作为随机数产生。
# SnowView.py
from turtle import *
from random import *
def drawSnow():hideturtle()pensize(2)for i in range(100):r, g, b = random(), random(), random()pencolor(r,g,b)penup()setx(randint(-350,350))sety(randint(1,270))pendown()dens = randint(8,12)snowsize = randint(10,14)for j in range(dens):forward(snowsize)backward(snowsize)right(360/dens)
def drawGround():hideturtle()for i in range(400):pensize(randint(5,10))x = randint(-400,350)y = randint(-280,-1)r, g, b = -y/280, -y/280, -y/280pencolor((r,g,b))penup()goto(x,y)pendown()forward(randint(40,100))
setup(800,600,200,200)
tracer(False)
bgcolor("black")
drawSnow()
drawGround()
done()
小结
本次主要讲解了3个重要的Python标准库:turtle、random和time,分别用于基本图形绘制、随机数运用和时间处理。再详细讲解各函数库功能基础上,通过雪景随机艺术画的绘制进一步帮助读者掌握这三个有趣且有用的标准库。
能够用Python绘图了,最想绘制的图形是什么?最想送给谁?
相关文章:
Python标准库概览
Python标准库概览 知识点 标准库: turtle库(必选)标准库: random库(必选)、time库(可选) 知识导图 1、turtle库概述 turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制。turtle库绘制图形有一个基本框架&#x…...
两个列表的最小索引总和
题目: 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺…...
Go语言基础之切片
切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合 切片的定义…...
关于java三元组的问题
在改代码的时候,发现一个奇怪的地方,举例如下 Testpublic void buildTest(){TT t new TT();Long time tnull?System.currentTimeMillis():t.getTime();System.out.println("done");}Datapublic static class TT{Long time;}这个地方运行就…...
如何正确地设置Outlook SMTP发送电子邮件(wordpress配置)
如何正确地设置Outlook SMTP发送电子邮件(wordpress配置) 作者:虚坏叔叔 博客:https://pay.xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 正在寻找正确的Outlook SMTP设置?…...
机器学习编译系列---张量程序抽象
机器学习编译系列---张量程序抽象 1. 张量函数概念的引入与抽象的必要性 1. 张量函数概念的引入与抽象的必要性 在文章机器学习编译系列—概述中提到,机器学习编译的一个很重要操作是做等价变换来减少内存或者提高运行效率。变换是以“元张量函数”(private tensor …...
python使用matplotlib实现折线图的绘制
一、意义 数据可视化可以以简洁的方式呈现出数据,发现众多数据中隐藏的规律和意义。Matplotlib是一个数学绘图库。利用它可以制作简单的图表(散点图、折线图)。然后,将基于漫步概念生成一个更有趣的数据集–根据一系列随机决策生成…...
网络协议的定义、组成和重要性?
什么是网络协议? 网络协议是在计算机网络中,用于规定通信实体之间进行数据传输和通信的规则集合。网络协议涵盖了各种通信细节,包括数据包格式、错误处理、数据传输速率等,是用于分组交换数据网络的一种协议,其任务仅…...
vue 使用print.js打印小票
官网:https://printjs.crabbly.com/ // 安装 npm install print-js --save// 引入 import printJS from print-js// 使用 printJS({printable: https://hwke.tbbug.com/images/phone/1899ed9346f64020ff4f9bbae6983952.jpg,type: image,imageStyle: width:100%;ma…...
算法通关村第6关【白银】| 树的层次遍历问题
一、基本层次遍历问题 1.二叉树的层次遍历 思路:使用队列可以很好的保存遍历状态,出队将结点左右子结点入队,用size记录下一层的元素个数,这样就能区分出层了 class Solution {public List<List<Integer>> levelOr…...
Qt与电脑管家3
1.ui页面设计技巧 最外面的widget: 上下左右的margin都置相同的值 这里有4个widget,做好一个后,后面3个可以直接复制.ui文件,然后进行微调即可。 2.现阶段实现的效果: 3.程序结构: btn1--->btn btn1---…...
Jmeter 快速生成测试报告
我们使用Jmeter工具进行接口测试或性能测试后一般是通过察看结果数、聚合报告等监听器来查看响应结果。如果要跟领导汇报测试结果,无法直接通过监听器的结果来进行展示和汇报,因为太low了,因此测试完成后去整理一个数据齐全且美观的报告是非常…...
消息队列——RabbitMQ(一)
MQ的相关概念 什么事mq MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中ÿ…...
人工智能在机器学习中的八大应用领域
文章目录 1. 自然语言处理(NLP)2. 图像识别与计算机视觉3. 医疗诊断与影像分析4. 金融风险管理5. 预测与推荐系统6. 制造业和物联网7. 能源管理与环境保护8. 决策支持与智能分析结论 🎉欢迎来到AIGC人工智能专栏~探索人工智能在机器学习中的八…...
vue3+ts使用vue-i18n
vue3ts使用vue-i18n 1、安装插件 npm install --save vue-i18nyarn add vue-i18n2、配置文件 locale/index.ts import { createI18n } from vue-i18n import zhCN from ./lang/zh-CN import enUS from ./lang/en-USexport const LOCALE_OPTIONS [{ label: 中文, value: zh…...
在Ubuntu上安装和设置RabbitMQ服务器,轻松实现外部远程访问
文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…...
Redis多机实现
Background 为啥要有多机--------------1.容错 2.从服务器分担读压力。 主从结构一大难题------------如何保障一致性,对这个一致性要求不是很高,因为redis是用来做缓存的 同时我们要自动化进行故障转移-------哨兵机制,同时哨兵也可能cra…...
ClickHouse安装及部署
文章目录 Docker快速安装Ubuntu预编译安装包安装检查是否支持SSE4.2使用预编译安装包 Tgz安装包配置文件修改修改密码配置远程访问 其他主机访问文章参考 Docker快速安装 本地pull镜像 docker run -d --name ch-server --ulimit nofile262144:262144 -p 9000:9000 -p 8123:81…...
[HarekazeCTF2019]Easy Notes-代码审计
文章目录 [HarekazeCTF2019]Easy Notes-代码审计 [HarekazeCTF2019]Easy Notes-代码审计 登录之后有几个功能点,可以添加节点,然后使用Export导出 我们查看源码, 我们发现想要拿到flag的条件时$_SESSION[admin]true 如果我们能够控制sessio…...
nginx-location正则
一 Nginx的location语法 location [||*|^~] /uri/ { … } 严格匹配。如果请求匹配这个location,那么将停止搜索并立即处理此请求~ 区分大小写匹配(可用正则表达式)~* 不区分大小写匹配(可用正则表达式)!~ 区分大小写不匹配!~* 不区分大小写不匹配^~ 如果把这个前缀…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
