python数据类型之字符串、字典、元组

一、数字类型

1、number类型

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

以下实例在变量赋值时 Number 对象将被创建:

var1 = 1
var2 = 10

也可以使用del语句删除一些 Number 对象引用。

del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

可以通过使用del语句删除单个或多个对象,例如:

del var
del var_a, var_b

Python 支持四种不同的数值类型:

  • 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。

    在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

    Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1100-80800,等等。

    计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等。

    对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_00010000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4

  • 长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
  • 浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250),

    浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.233.14-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

    整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

  • 复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.j
-7860122L-21.99.322e-36j
0800xDEFABCECBDAECBFBAEl32.3+e18.876j
-0490535633629843L-90.-.6545+0J
-0x260-052318172735L-32.54e1003e+26J
0x69-4721885298529L70.2-E124.53e-7j
  • 长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
  • Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

2、浮点型(float)

浮点型,一般在开发中用于表示小数。

v1 = 3.14
v2 = 9.89

关于浮点型的其他知识点如下:

  • 在类型转换时需要,在浮点型转换为整型时,会将小数部分去掉。

    v1 = 3.14 
    data = int(v1)
    print(data) # 3
  • 想要保留小数点后N位

    v1 = 3.1415926
    result = round(v1,3)
    print(result) # 3.142
  • 浮点型的坑(所有语言中)

v1 = 0.1
v2 = 0.2
print(v1 + v2) # 0.30000000000000004

在项目中如果遇到精确的小数计算应该怎么办?

import decimalv1 = decimal.Decimal("0.1")
v2 = decimal.Decimal("0.2")
v3 = v1 + v2
print(v3) # 0.3

3、数字类型转换

对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可。

  • int(x) 将x转换为一个整数。

  • float(x) 将x转换到一个浮点数。

  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

以下实例将浮点数变量 a 转换为整数:

>>> a = 1.0
>>> int(a)
1

4、数字运算

二、字符串

1、字符串格式化

https://www.cnblogs.com/wupeiqi/articles/5484747.html

三、None类型

None也是一个数据类型,只有一个值就是None,意味着表是空,相当于其他语言 null 一样

一定程度上可以帮我们节省内存

v1 = []v1 = ['a','b']# 使用None初始化
v1 = Nonev1 = ['a','b']

None可以自动转化成布尔值为false

v1 = None
if v1:print("test")
else:print("do...")  # 执行if None:pass

目前所有转换为布尔值为False的值有:

0
""
[] or list()
() or tuple()
set()
None

四、字典

1、定义字典

字典是 有序(3.6+以前无序)键不重复 且 元素只能是键值对可变的 个 容器。键不重复,重复则会被覆盖

如下定义一个字典

# 使用大括号 {} 来创建空字典
test_dic1 = {}
# 使用内建函数 dict() 创建字典:
test_dic2 = dict()
# 创建有值得字典
info = {"age": 12,"status": True,"name": "测试","hobby": ['篮球', '足球'],(11, 22, 33): ["alex", "eric"],True: 5,12: 10
}# 打印字典
print(info)  # {'age': 12, 'status': True, 'name': '测试', 'hobby': ['篮球', '足球'], (11, 22, 33): ['alex', 'eric'], True: 5, 12: 10}
# 查看字典大小
print(len(info))  # 7
# 字典类型
print(type(info))  # <class 'dict'>

字典中对键值得要求:

  • 键:必须可哈希。 目前为止学到的可哈希的类型:int/bool/str/tuple;不可哈希的类型:list/set/dict。(集合)
  • 值:任意类型。

如下的字典是不合法的

# 不合法
v1 = {[1, 2, 3]: '周杰伦',"age" : 18
} 
v2 = {{1,2,3}: "哈哈哈",'name':"alex"
} v3 = {{"k1":123,"k2":456}: '呵呵呵',"age":999
}

 注意:字典里 如何一个key是1或0,另一个是True或False,会替换掉,如下 


test = {1: 5, True: 6}
print(test)  # 打印结果是{1: 6}

一般在什么情况下会用到字典呢?

当我们想要表示一组固定信息时,用字典可以更加的直观,例如:

# 用户列表
user_list = [ ("alex","123"), ("admin","666") ]
# 用户列表 字典表示
user_list = [ {"name":"alex","pwd":"123"}, {"name":"eric","pwd":"123"} ]

2、获取字典值

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 获取值
name = info.get("name")
email = info.get("email")  # 如果键不存在返回 None
data = info.get("data")  # 注意:如果值是None 返回结果就是值Noneif name:print("键name存在,值是", name)  # 打印
if email:print("键email存在,值是", email)  # 不打印
if data:print("键data存在,值是", data)  # 不打印

3、所有键

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 所有键
keys = info.keys()
print(keys)'''
python3输出 dict_keys(['age', 'status', 'name', 'data'])
但是python2输出['age', 'status', 'name', 'data']
Python3中返回的是高仿列表,这个高仿的列表可以被循环显示
'''
# 循环
for ele in info.keys():print(ele)
# 当然也可以通过list将高仿的列表转成列表
result = list(keys)
print(result)  # ['age', 'status', 'name', 'data']# 获取所有键 也可以直接用for循环
for item in info:print(item)

4、是否存在键

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 是否存在键
# 方式1(推荐)
if "name" in info:print("info存在键name")
# 方式2
if "name" in info.keys():print("info存在键name")

5、所有值

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 所有值
values = info.values()
print(values)
'''
python3输出 dict_values([12, 0, '测试', None])
python2输出 [12, 0, '测试', None]
python3输出高仿列表这个高仿的列表可以被循环显示
'''
# 循环
for v in values:print(v)# 当然通过list可以将高仿列表转成列表
value1 = list(values)
print(value1)

6、是否存在值

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 是否存在值
if "测试" in info.values():print("info 存在值 测试")

7、所有键值对

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 所有的键值
item1 = info.items()
print(item1)  # dict_items([('age', 12), ('status', 0), ('name', '测试'), ('data', None)])for item in info.items():print(item[0], item[1])  # item是一个元组 (键,值)for key, value in info.items():print(key, value)  # key代表键,value代表值,将键和值从元组中直接拆分出来了。

8、是否存在键值对

info = {"age": 12,"status": 0,"name": "测试","data": None
}
# 是否存在键值
if ('age', 12) in info.items():print("在")
else:print("不在")

9、设置值

info = {"age": 12,"status": 0,"name": "测试","data": None
}
# 设置值
info.setdefault("email", "test@163.com")
print(info)  # {'age': 12, 'status': 0, 'name': '测试', 'data': None, 'email': 'test@163.com'}info.setdefault("name", "test")  # 如果键存在 则不设置
print(info)  # {'age': 12, 'status': 0, 'name': '测试', 'data': None, 'email': 'test@163.com'}

10、更新键值对

info = {"age": 12,"status": 0,"name": "测试","data": None
}
# 更新值
info.update({"age": 14, "name": "test"})  # info中没有的键直接添加;有的键则更新值
print(info)  # {'age': 14, 'status': 0, 'name': 'test', 'data': None}

11、移除指定键值对

info = {"age": 12,"status": 0,"name": "测试","data": None
}
# 移除指定键值对
info.pop("age")
print(info)  # {'status': 0, 'name': '测试', 'data': None}

12、按照顺序移除(后进先出)

info = {"age": 12,"status": 0,"name": "测试","data": None
}
# 按顺序移除
data = info.popitem()
print(info)  # {'age': 12, 'status': 0, 'name': '测试'}
print(data)  # ('data', None) 被移除的被自动转成了一个元祖
  • py3.6后,popitem移除最后的值。
  • py3.6之前,popitem随机删除。

13、求并集

(Python3.9新加入)

v1 = {"k1": 1, "k2": 2}
v2 = {"k2": 22, "k3": 33}v3 = v1 | v2
print(v3) # {'k1': 1, 'k2': 22, 'k3': 33}

14、索引(键)

字典不同于元组和列表,字典的索引是,而列表和元组则是 0、1、2等数值 。 

info = {"age": 12,"status": 0,"name": "测试","data": None
}print(info["age"])  # 输出:12
print(info["xxxx"])  # 报错,通过键为索引去获取之后时,键不存在会报错(以后项目开发时建议使用get方法根据键去获取值)value = info.get("xxxxx")  # None
print(value)

15、根据索引键 修改值 和 添加值 和 删除键值对

上述示例通过键可以找到字典中的值,通过键也可以对字典进行添加和更新操作 

info = {"age": 12,"status": 0,"name": "测试","data": None
}# 增加键值对
info["gender"] = "男"
print(info)  # {'age': 12, 'status': 0, 'name': '测试', 'data': None, 'gender': '男'}# 更新键值对
info["age"] = 18
print(info)  # {'age': 18, 'status': 0, 'name': '测试', 'data': None, 'gender': '男'}# 删除键值对
del info["age"]  # 删除info字典中键为age的那个键值对(键不存在则报错)
print(info)  # 输出: {'status': 0, 'name': '测试', 'data': None, 'gender': '男'}

16、转换

v = dict([("k1", "v1"), ["k2", "v2"]])print(v)  # { "k1":"v1", "k2":"v2" }
info = {"age": 12, "status": True, "name": "test"}
v1 = list(info)  # ["age","status","name"]
v2 = list(info.keys())  # ["age","status","name"]
v3 = list(info.values())  # [12,True,"test"]
v4 = list(info.items())  # [ ("age",12), ("status",True), ("name","test") ]

17、嵌套

# 字典的键必须可哈希(list/set/dict不可哈希)
info = {(11, 22): 123
}# 错误
info = {(11, [11, 22, ], 22): "alex"
}# 字典的值可以是任意类型
info = {"k1": {12, 3, 5},"k2": {"xx": "x1"}
}# 字典的键和集合的元素在遇到 布尔值 和 1、0 时,需注意重复的情况。如下实际为1:3
info = {1: 0,True: 3
}
# 元组的元素不可以被替换
dic = {'name': 'test','age': 48,'wife': [{'name': 'aaa', 'age': 38}, {'name': 'bbb', 'age': 48}],'children': ['第一个娃', '第二个娃']
}
"""
1. 获取test的妻子名字d1 = dic['wife'][0]['name']print(d1)
2. 获取test的孩子们d2 = dic['children']print(d2)
3. 获取test的第一个孩子d3 = dic['children'][0]print(d3)
4. test的媳妇姓名变更为 cccdic['wife'][0]['name'] = "ccc"print(dic)
5. test再娶一任妻子dic['wife'].append( {"name":"铁锤","age":19} )print(dic)6. 给test添加一个爱好:吹牛逼dic['hobby'] = "吹牛逼"print(dic)
7. 删除test的年龄del dic['age']或dic.pop('age')print(dic)
"""

五、元组

1、定义

列表(list),是一个有序可变的容器,在里面可以存放多个不同类型的元素。

元组(tuple),是一个有序不可变的容器,在里面可以存放多个不同类型的元素。

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号 ( ),列表使用方括号 [ ]。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"   #  不需要括号也可以

创建空元组

tup1 = ()

建议在元组的最后多加一个逗号,用于标识他是一个元组。特别是元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用:

>>> tup1 = (50)
>>> type(tup1)     # 不加逗号,类型为整型
<class 'int'>>>> tup1 = (50,)
>>> type(tup1)     # 加上逗号,类型为元组
<class 'tuple'>

元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。 

user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( user_list[0] )
print( user_list[2] )
print( user_list[3] )#切片
print( user_list[0:2] )
print( user_list[1:] )
print( user_list[:-1] )#步长演示
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
print( user_list[1:4:2] )
print( user_list[0::2] )
print( user_list[1::2] )
print( user_list[4:1:-1] )

2、访问元组

元组可以使用下标索引来访问元组中的值,如下实例:

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])结果
tup1[0]:  Google
tup2[1:5]:  (2, 3, 4, 5)

3、获取长度

user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( len(user_list) )

4、 for循环

# in 运算符
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
for item in user_list:print(item)# 下标user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
for item in user_list:if item == '刘华强':continueprint(name)#目前:只有 str、list、tuple 可以被for循环。 "xxx"  [11,22,33]  (111,22,33) 
# len + range + for + 索引
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
for index in range(len(user_list)):item = user_list[index]print(item)

5、修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')# 以下修改元组元素操作是非法的。
# tup1[0] = 100# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3) # (12, 34.56, 'abc', 'xyz')

6、删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

#!/usr/bin/python3tup = ('Google', 'Runoob', 1997, 2000)print (tup)
del tup
print ("删除后的元组 tup : ")
print (tup)以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
删除后的元组 tup : 
Traceback (most recent call last):File "test.py", line 8, in <module>print (tup)
NameError: name 'tup' is not defined

7、元组运算符

与字符串一样,元组之间可以使用 +、+=和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

相加:两个列表相加获取生成一个新的列表。

data = ("赵四","刘能") + ("宋晓峰","范德彪")
print(data) # ("赵四","刘能","宋晓峰","范德彪")v1 = ("赵四","刘能")
v2 = ("宋晓峰","范德彪")
v3 = v1 + v2
print(v3) # ("赵四","刘能","宋晓峰","范德彪")

相乘,列表*整型 将列表中的元素再创建N份并生成一个新的列表。

data = ("赵四","刘能") * 2
print(data) # ("赵四","刘能","赵四","刘能")v1 = ("赵四","刘能")
v2 = v1 * 2
print(v1) # ("赵四","刘能")
print(v2) # ("赵四","刘能","赵四","刘能")

8、元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:元组:>>> tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
>>> tup[1]
'Runoob'
>>> tup[-2]
'Weibo'
>>> tup[1:]
('Runoob', 'Taobao', 'Wiki', 'Weibo', 'Weixin')
>>> tup[1:4]
('Runoob', 'Taobao', 'Wiki')
>>>

 9、转换

其他类型转换为元组,使用tuple(其他类型),目前只有字符串和列表可以转换为元组。

name = "测试"
data = tuple(name)
print(data) # 输出 ("测","试")name = ["测试",18,"pythonav"]
data = tuple(name)
print(data) # 输出 ("测试",18,"pythonav")

10、嵌套

由于元组和列表都可以充当容器,他们内部可以放很多元素,并且也支持元素内的各种嵌套。 

tu = ( 'a', 'b', ('c','d') )
tu1 = tu[0]
tu2 = tu[1]
tu3 = tu[2][0]
tu4 = tu[2][1]
tu5 = tu[2][1][3]print(tu1) # a
print(tu2) # b
print(tu3) # c
print(tu4) # d

11、关于元组是不可变的

所谓元组的不可变指的是元组所指向的内存中的内容不可变。

>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # 不支持修改元素
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了

从以上实例可以看出,重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象。

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

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

相关文章

亚马逊防关联要注意什么?看这一篇,防关联有技巧!

亚马逊账号关联的问题&#xff0c;对于跨境电商来说都不陌生&#xff0c;店铺的安全问题往往和账号关联有关&#xff0c;一旦亚马逊账号被关联就很可能导致我们的店铺被封&#xff0c;对于被亚马逊封店的卖家都会有申诉机会&#xff0c;如果无法成功申诉&#xff0c;那将永久被…

C语言——利用函数递归,编写函数不允许创建临时变量,求字符串长度

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int my_strlen(char* str) {if(*str ! \0)return 1my_strlen(str1);elsereturn 0; }int main() {char arr[] "hello";int len my_strlen(arr); //arr是数组&#xff0c;数组传参&#xff0c;传过去的是第…

NB水表能承受最大的水压是多少?

NB水表&#xff0c;作为新一代智能水表&#xff0c;以小巧的体积、稳定的性能和强大的功能赢得了市场的认可。那么&#xff0c;它究竟能承受多大的水压呢&#xff1f;接下来&#xff0c;小编来为大家揭秘下&#xff0c;一起来看下吧&#xff01; 一、NB水表概述 NB水表&#xf…

安卓手机好用的清单软件有哪些?

生活中每个人都有丢三落四的习惯&#xff0c;伴随着生活节奏的加快&#xff0c;人们常忘事的情况会更加频繁的出现&#xff0c;这时候很多人就开始选择手机上记录清单类的软件&#xff0c;安卓手机在手机市场中占有很大的分量&#xff0c;在安卓手机上好用的记录清单的软件有哪…

在高斯DB数据库中,获取上个月的日期

个人网站 返回上个月的日期。ADD_MONTHS函数用于对日期进行加减操作&#xff0c;通过将当前日期减去1个月来获取上个月的日期。请注意&#xff0c;这里使用的是负数来表示减去一个月的时间间隔。 SELECT ADD_MONTHS(CURRENT_DATE, -1) AS last_month;

SiP封装、合封芯片和芯片合封是一种技术吗?都是合封芯片技术?

合封芯片、芯片合封和SiP系统级封装经常被提及的概念。但它们是三种不同的技术&#xff0c;还是同一种技术的不同称呼&#xff1f;本文将帮助我们更好地理解它们的差异。 一、合封芯片与SiP系统级封装的定义 首先合封芯片和芯片合封都是一个意思 合封芯片是一种将多个芯片&a…

力扣labuladong——一刷day49

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣513. 找树左下角的值二、力扣666. 路径总和 IV三、力扣1261. 在受污染的二叉树中查找元素四、力扣572. 另一棵树的子树 前言 二叉树的递归分为「遍历」…

【Leetcode每日一题】mid——6. N 字形变换

题目描述 https://leetcode.cn/problems/zigzag-conversion/description/ 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; 之后&#xff0…

技术细分|推荐系统——推荐系统中的数据去偏方法

本篇的主要脉络同样依据中科大何向南教授、合工大汪萌教授联合在 TKDE 上的一篇综述文章展开&#xff1a;Bias and Debias in Recommender System: A Survey and Future Directions。 下面按照前导文章中介绍的数据偏差 Selection Bias、Conformity Bias、Exposure Bias、Posit…

PDF添加文字或者图片

引入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version> </dependency> <dependency><groupId>org.apache.pdfbox</groupId><artifactI…

找JPG格式图片的地址(持续更新中)

问题描述&#xff1a;找JPG格式图片的地址 解决办法&#xff1a; 第一个 谷歌的images 第二个&#xff0c;搜狗图片和百度图片 不过下载是WEBP格式&#xff0c;可以使用一个在线WEBP格式转JPG格式的在线网站即可。 转换的网址为&#xff1a; https://ezgif.com/webp-to-j…

【学历是敲门砖】如果你想有个好的起点,不妨冲一冲计算机考研,这本书将会助你一臂之力

目录 计算机考研难点 《计算机考研精炼1000题》揭秘问答 1. 为什么是1000题&#xff1f; 2. 有什么优势&#xff1f; 3. 编写团队水平如何&#xff1f; 4. 题目及解析品质如何&#xff1f;可以试读吗&#xff1f; 购买链接 高质量的学习提升圈子 京东热卖下单链接&…

可视化NGINX管理平台Nginx Proxy Manager

# for CentOSyum install docker-compose -y# for Ubuntuapt-get install docker-compose -y 如果提示&#xff1a; 没有可用软件包 docker-compose&#xff0c; 错误&#xff1a;无须任何处理 通过 pip 安装 docker-compose # 添加企业版附加包 yum -y install epel-rel…

java--static的注意事项

1.使用类方法、实例方法时的几点注意事项 ①类方法中可以直接访问类的成员&#xff0c;不可以直接访问实例成员。 ②实例方法中既可以直接访问类成员&#xff0c;也可以直接访问实例成员。 ③实例方法中可以出现this关键字&#xff0c;类方法中不可以出现this关键字的。

利用工业网关进行设备数采的方法-天拓四方分享

在工业物联网&#xff08;IIoT&#xff09;中&#xff0c;设备数采是一种关键技术&#xff0c;它通过收集、分析和传输设备运行过程中的各种数据&#xff0c;为工业制造提供重要的信息和洞察。随着工业4.0和智能制造的快速发展&#xff0c;工业数据采集和处理已经成为工业物联网…

甲方使用外包真的能节约成本吗?

语&#xff1a;外包作为一种常见的业务模式&#xff0c;被广泛应用于各行各业。然而&#xff0c;甲方在选择外包时&#xff0c;是否真的能够实现成本节约呢&#xff1f;本文将从多个角度进行探讨。 正文&#xff1a; 降低人力成本&#xff1a;外包通常是将某些业务环节或项目交…

2022年全国英烈纪念设施数据,各区县均有!

中国是一个拥有悠久历史和灿烂文化的国家&#xff0c;其英烈纪念设施承载着中国人民对为国家独立、民族解放和民主进步而英勇斗争的先烈们的崇敬和缅怀之情。 这些设施不仅是中国革命历史和先烈精神的重要载体&#xff0c;也是传承红色文化、弘扬革命精神的重要场所。 今天分享…

【RtpRtcp】3: webrtc m79:video 相关创建及切片、发送

m79 的 客户端代码流程。 对于视频帧: CreateRtpStreamSenders 管理一组RtpStreamSender ,每一个RtpStreamSender 都进行rtp包的发送: 具体发送是RTPSenderVideo 处理,RTPSenderVideo 对收到的h264 帧,进行帧分片rtp,然后一组包一起使用LogAndSendToNetwork 发送的。 Rtp…

js预解释(预编译)

js预解释(预编译):在Javascript真正被解析之前, js解析引擎会首先把整个文件进行预处理, 以消除一些歧义. 这个预处理的过程就被称为预解释 在浏览器环境中, js引擎会整合<script>标签中的内容, 产生window对象, 这个window对象就是全局对象在node环境中, 会产生global对…

Linux中df命令使用

在Linux中&#xff0c;df命令用于显示磁盘空间的使用情况。它的基本语法如下&#xff1a; df [选项] [文件或目录]这个命令可以用来查看当前系统上各个磁盘分区的使用情况。如果没有指定文件或目录&#xff0c;则所有当前被挂载的文件系统的可用空间将被显示。 df命令的一些常…