二、pyhon基础语法篇(黑马程序猿-python学习记录)

news2024/11/16 1:25:33

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/

===============================================================

 

目录

一 、print

1. end'' 

2. \t对齐

二、字面量

1. 字面量的含义

2. 常见的字面量类型 

3. 如何基于print语句完成各类字面量的输出

 三、 注释的分类

1. 单行注释

2. 多行注释

3. 注释的作用是什么

4. 单行注释如何定义

5. 多行注释如何定义

四、 变量  

1. 什么是变量 

2. 变量的格式是 

3. 变量的特征 

4. print语句如何输出多份内容 

5. python中如何做运算

五、 数据分类

    1. 数据类型的分类 

2. type()查看数据类型 

3. 变量有类型吗

六、 数据类型转换

1. 任何类型都可以转换成字符串,对不对 

2. 字符串可以随意转换成数字,对不对 

3. 浮点数转成整数会丢失什么

七、 标识符

八、 运算符

九、 字符串扩展 

1. 字符串的三种定义方式 

2. 字符串的拼接 

3. 常用的字符串格式化 

4. 精度控制语法 

5. 如果m比数字本身宽度小,会发生什么 

6. .n会对小数部分做精度限制,同时? 

7. f{}的拼接语法 

8. input语句的基本使用 

9. 查看索引位置index 

10.字符串的替换 replace 

10. 分割字符串split 

11. 字符串去除前后空格strip() 

12. 字符串去除首尾指定字符串strip(参数 ) 

13. 统计字符串中某个字符串出现的次数count 

14. 统计字符串的长度len 

15. 切片

十、布尔类型

十一、 比较运算符

十二、 if语句

十三、 循环

1. while循环

a. 练习题:求1-100的和

b. 练习题九九乘法表

2. for循环

3. for循环的九九乘法表

4. range

5. continue和break

十四、 函数

1. 函数定义

​​​​​​2. 有返回值的函数

3. 函数的None

4. 函数的多返回值

5. 传参不限个数*args

6. 传参不限个数**kwargs

十五、 数据容器-列表

1. 基础概念

​​​​​​​2. 用法总结

​​​​​​​3. index(元素)查看元素索引

​​​​​​​4. 插入元素insert

​​​​​​​5. 追加一个元素append

​​​​​​​6. 追加一批元素extend

​​​​​​​7. 删除列表元素 :del 列表[下标]

​​​​​​​8. 删除列表元素:列表.pop(下标)

9. 删除列表元素:remove

10. 删除列表的所有元素clear()

11. 统计某个元素 在列表中的数量count(元素)

12. 统计列表中全部元素的数量len(列表)

十六、 数据容器-元组

1. 元组定义​​​​​​​

​​​​​​​2. 元组操作

​​​​​​​3. 元组的特点

4. 切片

十七、 数据容器-集合

​​​​​​​1. 集合的概念

2. 定义集合

3. 添加新元素 集合.add(元素)

4. 移除元素 集合.remove(元素)

5. 随机取出一个元素pop

6. 清空集合clear

7. 取出2个集合的差集difference

8. 消除2个集合的差集difference_update

9. 2个集合合并为1个union

10. 统计集合元素数量len

十八、 数据容器-字典

1. 字典的定义

2. 定义重复key的字典

3. 取值

4. 新增元素/更新元素

5. 删除元素pop

6. 清空字典clear

7. 获取全部key 字典.keys()

8. 遍历字典

9. 统计字典内的元素数量 len()

十九、 数据容器分类

二十、 数据容器排序

二十一、 lambda


==================================================================

一 、print

1. end'' 

换行

不换行

print("hello")

print("world")

print("hello",end='')

print("world",end='')

hello

world

进程已结束,退出代码0

helloworld

进程已结束,退出代码0

2. \t对齐

不对齐

对齐

print("world world")

print("worl word")

print("world\tworld")

print("worl\tword")

world world

worl word

进程已结束,退出代码0

world world

worl word

进程已结束,退出代码0

二、字面量

1. 字面量的含义

代码中,被写在代码中的固定的值,称之为字面量。

2. 常见的字面量类型 

我们目前了解:整数、浮点数、字符串这三类即可

3. 如何基于print语句完成各类字面量的输出

print(字面量),如:

print(10),输出10

print(13.14),输出13.14

print("hello");输出 hello

注释:在程序代码中对程序代码进行解释说明的文字。

作用:注释不是程序,不能呗执行。只是对程序代码进行解释说明。让别人可以看懂程序代码的作用,能够大大增加程序的可读性

            
三、 注释的分类

1. 单行注释

2. 多行注释

“”“

”“”

一对三个双引号引起来的注释

一般写在文件的开头

3. 注释的作用是什么

注释是代码中的解释型语句,用来对代码内容进行注释

注释不是代码,不会被程序执行

4. 单行注释如何定义

通过#定义,在#号的右侧的所有内容均作为注释

建议在#号和注释内容之间,间隔一个空格

单行注释一般用于对一行或小部分代码进行解释

5. 多行注释如何定义

通过一对三个引号来定义("""注释内容"""),引号内容均是注释,可以换行

多行注释一般对:python文件,类和方法进行解释

四、 变量  

1. 什么是变量 

在程序运行时,能储存计算结果或能表示值的抽象概念。

简单的说,变量就是在程序运行时,记录数据用的

2. 变量的格式是 

变量名 = 变量值

3. 变量的特征 

变量的值可以改变

4. print语句如何输出多份内容 

print(内容1,内容2,..........,内容n)

5. python中如何做运算

加减乘除:+ - * /

五、 数据分类

    
1. 数据类型的分类 

在学习字面量的时候,我们了解到:数据是有类型的、

目前在入门阶段,我们主要接触如下三类数据类型:

string int float

2. type()查看数据类型 

3. 变量有类型吗

变量没有类型。但是存储的数据有类型。

我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?

查看的是:变量存储的是数据的类型。因为,变量无类型,但是它存储的数据有。

六、 数据类型转换

print("int转string", type(str(123)),str(123))
print("float转string", type(str(123.123)),str(123.123))
print("int转float", type(float(123)),float(123))
print("float转int", type(int(123.12)),int(123.12))

1. 任何类型都可以转换成字符串,对不对 

正确

2. 字符串可以随意转换成数字,对不对 

不对。字符串内必须只有数字才可以

3. 浮点数转成整数会丢失什么

丢失精度,也就是小数部分

七、 标识符

5b792b2f19cf83f8bca8087cafa0106e.png0ea70023bf98854f979ff8c2f606431e.png6b3a5725def9e152ef002219631620f7.png98422e5ad1c2a424ee1630a2a31bbaca.png 

八、 运算符

九、 字符串扩展 


1. 字符串的三种定义方式 

转义

name = "'张三"

print(name)

name = '"张三'

print(name)

name = "\"张三\""

print(name)

name = "\'张三\'"

print(name)

'张三

"张三

"张三"

'张三'

2. 字符串的拼接 

name="李四"

message="我的名字是%s"%name

print(message)

xinzi=1000

message="我的名字是%s,薪资是%s"%(name,xinzi)

print(message)


3. 常用的字符串格式化 

字符串 %s

整数 %d

浮点数 %f

4. 精度控制语法 

m.n的形式控制,如%5d,%5.2f,%.2f

m和.n均可省略

5. 如果m比数字本身宽度小,会发生什么 

m不生效

6. .n会对小数部分做精度限制,同时? 

会对小数部分做四舍五入

7. f{}的拼接语法 

name="张三"

age=18

xinzi=3000.23

print(f"我的名字是{name},年龄是:{age},薪资是:{xinzi}")

输出结果是:

我的名字是张三,年龄是:18,薪资是:3000.23

8. input语句的基本使用 

name = input("你的名字是:")

print(name)

输出:zhnagsan

9. 查看索引位置index 

value="abc def";

print(value.index("d"))

4

10.字符串的替换 replace 

value="abc def abc";

new_value = value.replace("a","g")

print(new_value)

gbc def gbc

10. 分割字符串split 

value="abc def abc";

new_value = value.split(" ")

print(new_value)

['abc', 'def', 'abc']

11. 字符串去除前后空格strip() 

value=" abc def abc ";

new_value = value.strip()

print(new_value)

abc def abc

12. 字符串去除首尾指定字符串strip(参数 ) 

value="abc def abc";

print(value.strip("ab"))

value="abc def cab";

print(value.strip("ab"))

c def abc

c def c

13. 统计字符串中某个字符串出现的次数count 

value="abc def cab";

print(value.count("ab"))

2

14. 统计字符串的长度len 

value="abc def cab";

print(len(value))

11

15. 切片

             c2084a1d3034e2fd58b31f4797105a6e.png

value="0123456";

print(value[1:3])

value="0123456";

print(value[::2])

12

0246

十、布尔类型

布尔类型的值 是True 和 False

十一、 比较运算符

十二、 if语句

if

if(3>2):

print("3>2")

3>2

if else

if(3<2):

print("11111")

else:

print("22222")

222222

if elif else

num=10

if(num==1):

print("num==1")

elif(num==10):

print("num==10")

else:

print("num==7")

num==10

十三、 循环

1. while循环

a. 练习题:求1-100的和

num=1

sum=0

while num<=100:

sum+=num

num+=1

print(sum)

5050

b. 练习题九九乘法表

i=1;

while i<10:

j = 1;

while j<=i:

print(f"{j}*{i}={i*j}\t",end='')

j+=1;

i += 1;

print()

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

2. for循环

data="hello world";

for item in data:

print(item)

h

e

l

l

o

w

o

r

l

d

3. for循环的九九乘法表

end='' 不换行

\t 对齐

print()换行

for i in range(1,10):

for j in range(1,i+1):

print(f"{j}*{i}={j*i}\t",end='')

print()

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

4. range

range(num)

range(num,num)

range(num,num,step)

data = range(5)

for item in data:

print(item)

data = range(5,8)

for item in data:

print(item)

data = range(5,10,2)

for item in data:

print(item)

0

1

2

3

4

5

6

7

5

7

9

5. continue和break

continue:直接进行下次循环

break:结束循环

十四、 函数

1. 函数定义

​​​​​​2. 有返回值的函数

def add(a,b):

return a+b;

result = add(3,30);

print(result)

33

3. 函数的None

​​​​​​​4. 函数的多返回值

def test():

return 1,2,3

x,y,z=test()

print(f"{x},{y},{z}")

1,2,3

​​​​​​​5. 传参不限个数*args

def test(*args):

print(args)

test("1", "2", "3")

('1', '2', '3')

​​​​​​​6. 传参不限个数**kwargs

def test(**kwargs):

print(kwargs)

test(name="12", age="22", sex="22")

{'name': '12', 'age': '22', 'sex': '22'}

十五、 数据容器-列表

1. 基础概念

列表的正向索引取值方法

列表的反向索引取值方法

​​​​​​​2. 用法总结

​​​​​​​3. index(元素)查看元素索引

元素存在

元素不存在

mylist=[1,2,3]

print(mylist.index(1))

mylist=[1,2,3]

print(mylist.index(5))

0

ValueError: 5 is not in list

​​​​​​​4. 插入元素insert

列表.insert(下标,元素),在指定的位置插入指定的值

mylist=[1,2,3]

mylist.insert(1,"啦啦")

print(f"最新的数据时:{mylist}")

最新的数据时:[1, '啦啦', 2, 3]

​​​​​​​5. 追加一个元素append

列表append(元素),将指定的元素,追加到列表的尾部

mylist=[1,2,3]

mylist.append("lala")

print(f"最新的数据是:{mylist}")

最新的数据是:[1, 2, 3, 'lala']

​​​​​​​6. 追加一批元素extend

列表.extend(其他数据容器),将其他的数据容器的内容取出。依次追加到列表的尾部

mylist=[1,2,3]

mylist.extend([5,6,7])

print(f"最新的数据是:{mylist}")

最新的数据是:[1, 2, 3, 5, 6, 7]

​​​​​​​7. 删除列表元素 :del 列表[下标]

通过下标删除元素

mylist=[1,2,3]

del mylist[1]

print(f"最新的数据是:{mylist}")

最新的数据是:[1, 3]

​​​​​​​8. 删除列表元素:列表.pop(下标)

通过下标删除元素

mylist=[1,2,3]

del_data=mylist.pop(1)

print(f"最新的数据是:{mylist},取出的值是{del_data}")

最新的数据是:[1, 3],取出的值是2

9. 删除列表元素:remove

只会删除第一个匹配的元素

通过元素删除列表元素

mylist=[1,2,3,1]

mylist.remove(1)

print(f"最新的数据是:{mylist}")

最新的数据是:[2, 3, 1]

10. 删除列表的所有元素clear()

mylist=[1,2,3,1]

mylist.clear()

print(f"最新的数据是:{mylist}")

最新的数据是:[]

11. 统计某个元素 在列表中的数量count(元素)

mylist=[1,2,3,1]

count=mylist.count(1)

print(count)

2

12. 统计列表中全部元素的数量len(列表)

mylist=[1,2,3,1]

count=len(mylist)

print(count)

4

十六、 数据容器-元组

1. 元组定义​​​​​​​

​​​​​​​2. 元组操作

​​​​​​​3. 元组的特点

4. 切片

十七、 数据容器-集合

​​​​​​​1. 集合的概念

集合是无序的,所以集合不支持:下标索引访问

但是集合和列表一样,是允许修改的

2. 定义集合

my_set={"张三","李四","王五","张三"}

print(my_set)

{'张三', '李四', '王五'}

3. 添加新元素 集合.add(元素)

my_set={"张三","李四","王五","张三"}

my_set.add("1")

print(my_set)

{'1', '李四', '张三', '王五'}

4. 移除元素 集合.remove(元素)

my_set={"张三","李四","王五","张三"}

my_set.remove("李四")

print(my_set)

{'张三', '王五'}

5. 随机取出一个元素pop

my_set={"张三","李四","王五","张三"}

my_set.pop()

print(my_set)

{'张三', '李四'} pop随机去掉一个元素

6. 清空集合clear

my_set={"张三","李四","王五","张三"}

my_set.clear()

print(my_set)

set()

7. 取出2个集合的差集difference

集合1.difference(集合2):取出集合1有而集合2没有的。原来的2个集合不变

set1={1,2,3}

set2={1,3,5}

set3=set1.difference(set2)

print(set3)

{2}

8. 消除2个集合的差集difference_update

集合1.difference_update(集合2)

对比集合1和集合2,在集合1中删除和集合2相同的元素

结果:集合1被修改 集合2不变

set1={1,2,3}

set2={1,3,5}

set1.difference_update(set2)

print(set1)

{2}

9. 2个集合合并为1个union

集合1.union(集合2)

将集合1和集合2组合成新的集合

结果:得到新集合 集合1和集合2不变

set1={1,2,3}

set2={1,3,5}

set3 = set1.union(set2)

print(set3)

{1, 2, 3, 5}

10. 统计集合元素数量len

set1={1,2,3}

print(len(set1))

3

十八、 数据容器-字典

1. 字典的定义

my_dict1={"1":"张三","2":"李四","3":"王五"}

my_dict2={}

my_dict3=dict()

print(f"my_dict1的内容是:{my_dict1},类型:{type(my_dict1)}")

print(f"my_dict2的内容是:{my_dict2},类型:{type(my_dict2)}")

print(f"my_dict3的内容是:{my_dict3},类型:{type(my_dict3)}")

my_dict1的内容是:{'1': '张三', '2': '李四', '3': '王五'},类型:<class 'dict'>

my_dict2的内容是:{},类型:<class 'dict'>

my_dict3的内容是:{},类型:<class 'dict'>

2. 定义重复key的字典

my_dict1={"1":"张三","1":"李四","3":"王五"}

print(f"my_dict1的内容是:{my_dict1},类型:{type(my_dict1)}")

my_dict1的内容是:{'1': '李四', '3': '王五'},类型:<class 'dict'>

重复的key :后边的数据会把前边重复的数据给覆盖掉

3. 取值

my_dict1={"1":"张三","2":"李四","3":"王五"}

print(my_dict1["2"])

李四

4. 新增元素/更新元素

字典[key]=value

如果key存在,就是更新

如果key不存在 就是新增

5. 删除元素pop

my_dict1={"1":"张三","2":"李四","3":"王五"}

score = my_dict1.pop("2")

print(my_dict1)

print(score)

{'1': '张三', '3': '王五'}

李四

6. 清空字典clear

my_dict1={"1":"张三","2":"李四","3":"王五"}

my_dict1.clear()

print(my_dict1)

{}

7. 获取全部key 字典.keys()

语法:字典.keys(),结果:得到字典中的全部key

my_dict1={"1":"张三","2":"李四","3":"王五"}

keys = my_dict1.keys()

print(keys)

dict_keys(['1', '2', '3'])

8. 遍历字典

方法1:获取到全部key 循环key实现遍历

方法2:直接对字典for循环,循环的是key,所以能直接循环字典实现遍历

my_dict1={"1":"张三","2":"李四","3":"王五"}

keys = my_dict1.keys()

for element in keys:

print(f"key:{element},value:{my_dict1[element]}")

my_dict1={"1":"张三","2":"李四","3":"王五"}

for key in my_dict1:

print(f"key:{key},value:{my_dict1[key]}")

key:1,value:张三

key:2,value:李四

key:3,value:王五

key:1,value:张三

key:2,value:李四

key:3,value:王五

9. 统计字典内的元素数量 len()

my_dict1={"1":"张三","2":"李四","3":"王五"}

print(len(my_dict1))

3

十九、 数据容器分类

二十、 数据容器排序

sorted(容器) 正序

sort(容器,reverse=True) 倒序

data=[3,1,2,4,5]

print(sorted(data))

print(sorted(data,reverse=True))

[1, 2, 3, 4, 5]

[5, 4, 3, 2, 1]

二十一、 lambda

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多进程|基于非阻塞调用的轮询检测方案|进程等待|重新理解挂起|Linux OS

说在前面 今天给大家带来操作系统中进程等待的概念&#xff0c;我们学习的操作系统是Linux操作系统。 我们今天主要的目标就是认识wait和waitpid这两个系统调用。 前言 那么这里博主先安利一下一些干货满满的专栏啦&#xff01; 手撕数据结构https://blog.csdn.net/yu_cbl…

nacos源码分析==服务订阅-服务端推送被订阅者最新信息给订阅者

上一篇讲到客户端发送请求到服务端进行服务注册&#xff0c;注册后&#xff0c;服务端会发出两个事件&#xff0c;第一个事件会触发另一个ServiceChangedEvent&#xff0c;这个事件被com.alibaba.nacos.naming.push.v2.NamingSubscriberServiceV2Impl#onEvent 监听&#xff0c…

16. 条件控制

总体来说&#xff0c;条件控制的效果类似c/c/c#/java中的&#xff0c;只不过在语法格式的层面上存在一定的差异。 1. if条件语法格式 if condition_1:...elif condition_2:...else:...1、python 中用 elif 代替了 c/c中的 else if&#xff0c;所以if语句的关键字为&#xff1a…

高性能排序函数实现方案

如C语言的qsort()、Java的Collections.sort()&#xff0c;这些排序函数如何实现&#xff1f; 1 合适的排序算法&#xff1f; 线性排序算法的时间复杂度较低&#xff0c;适用场景特殊&#xff0c;通用排序函数不能选择。 小规模数据排序&#xff0c;可选时间复杂度O(n^2)算法大…

【算法】滑动窗口

目录1.概述2.算法框架3.应用本文参考&#xff1a; LABULADONG 的算法网站 1.概述 &#xff08;1&#xff09;滑动窗口可以用以解决数组/字符串的子元素相关问题&#xff0c;并且可以将嵌套的循环问题&#xff0c;转换为单循环问题&#xff0c;从而降低时间复杂度。故滑动窗口算…

【数据分析】(task5)数据建模及模型评估

note 文章目录note一、建立模型二、模型评估2.1 交叉验证2.2 混淆矩阵/recall/accuracy/F12.3 ROC曲线三、Pyspark进行基础模型预测时间安排Reference一、建立模型 下载sklearn的命令pip install scikit-learn。 from sklearn.model_selection import train_test_split impor…

ARP渗透与攻防(二)之断网攻击

ARP断网攻击 系列文章 ARP渗透与攻防(一)之ARP原理 1.环境准备 kali 作为ARP攻击机&#xff0c;IP地址&#xff1a;192.168.110.26 MAC地址&#xff1a;00:0c:29:fc:66:46 win10 作为被攻击方&#xff0c;IP地址&#xff1a;192.168.110.12 MAC地址&#xff1a;1c:69:7a:a…

Tkinter的Entry与Text

Tkinter界面设计之输入控件Entry以及文本框控件Text。 目录 一、放置控件 1. pack()函数 2. place()函数 3. grid()函数 二、简单控件 1. Entry输入控件 1.1 tk.StringVar()函数&#xff1a;接收一个字符串 1.2 tk.Entry()函数&#xff1a;设置一个输入控件E 2. Text文…

CMake多文件编译

之前学习ceres-solver中的3d相关的源码的时候&#xff0c;发现对于CMake多文件工程编译中对于CMakeLists.txt的编写和处理的理解运用还是比较模糊&#xff0c;这里整理梳理一下对于不同文件夹数量如何使用。 参考文章&#xff1a; CMake使用详解二&#xff08;多文件编译&…

maya常用操作

1&#xff1a;重置工作区。2&#xff1a;切换视图。按空格切换视图。3&#xff1a;未选中状态&#xff0c;按shift&#xff0c;再点右键&#xff0c;可以打开交互式创建。这样可以在栅格上创建想要的大小。不选中交互式创建的话&#xff0c;创建的是默认未知。默认未知为正中间…

linux系统中利用QT实现车牌识别的方法

大家好&#xff0c;今天主要和大家分享一下&#xff0c;如何利用QT实现车牌识别的方法。 目录 第一&#xff1a;车牌识别基本简介 第二&#xff1a;车牌识别产品申请 第三&#xff1a;百度车牌识别API接口 第四&#xff1a;车牌识别综合测试 第一&#xff1a;车牌识别基本简…

Scala快速入门

Scala简介 Scala是一门现代的多范式编程语言&#xff0c;平滑地集成了面向对象和函数式语言的特性。Scala运行于Java平台&#xff08;JVM&#xff0c;Java 虚拟机&#xff09;上&#xff0c;并兼容现有的Java程序&#xff0c;Scala代码可以调用Java方法&#xff0c;访问Java字…

ArcGIS Pro脚本工具(17)——生成多分式标注

​朋友们&#xff0c;你们知道ArcGIS里面分式标注的四种写法么&#xff1f; 放错图了&#xff0c;是这个 分式标注的四种形式我们可以把这类叫分式标注&#xff0c;网上也有博主分享过如何在ArcGIS中制作这类标注&#xff0c;但我觉得仍有一些不足。 一是基本都使用VB编写&…

中文问题相似度挑战赛

赛题概要 请本赛题排行榜前10位的队伍&#xff0c;通过作品说明提交源代码&#xff0c;模型以及说明文档&#xff0c;若文件过大&#xff0c;可发送至官网邮箱AICompetitioniflytek.com, 若截止时间内为提交&#xff0c;官方会通过电话联系相关选手&#xff0c;若未接到通知或…

WPF作图神器Interactive DataDisplay的初步使用

文章目录安装初步使用安装 Interactive DataDisplay是一款比较优秀的C#绘图控件&#xff0c;尽管与一些商业控件还有不小的差距&#xff0c;关键是开源免费轻量。 在VS中安装控件十分简单&#xff0c;本测试基于Net Core5.0&#xff0c;在VS的菜单栏->工具->NuGet包管理…

HomeLab 常用工具一:filebrowser

前言在实际使用过程中&#xff0c;我们通常都有基于WEB 的文件操作需求&#xff08;例如从一台陌生设备上想打开看一下&#xff0c;图片等&#xff09;&#xff0c;和nextcloud 相比 filebrowser 更为轻巧也更为方便。一、filebrowser 安装这里基于docker 安装和使用&#xff0…

Prometheus 动态拉取监控服务

Prometheus 版本 2.41.0 平台统一监控的介绍和调研直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 配置身份认证Prometheus 动态拉取监控服务 我们在以前的实例中配置Prometheus 的target 都是手动配置&#xff0c;这在监控目标少的情况下还可以接受…

【基础】BMP格式

BMP格式位图 (BMP)简介格式1.1图和调色板的概念1.2 bmp文件格式1.2.1 位图文件头 14字节1.2.2 位图信息头 40字节1.2.3 调色板1.2.4 注意位图 (BMP)简介 BMP取自位图Bitmap的缩写&#xff0c;也称为DIB&#xff08;与设备无关的位图&#xff09;&#xff0c;是一种独立于显示器…

【苹果家庭群发推】软件keychain中刚打开的证书下载的证书文件要决不会报错 UNTimeIntervalNotificationTrigge

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

linux入门---linux基本指令

目录标题云服务器选择云服务器购买xshell下载如何登陆云服务器Linux的新建与删除新建删除云服务器选择 学习linux的时候云服务器是一个非常重要的工具&#xff0c;那么我们在购买云服务器的时候有很多选择比如说&#xff1a;华为云&#xff0c;腾讯云&#xff0c;阿里云等等&a…