basicPython-1

news2024/11/15 8:21:05

元组

"""
目录:
1.创建元组
2.元组的拼接
3.元组的解压赋值
4.元组的切片
5.元组的元素的索引
6.元组的嵌套
7.统计某个元素的个数
"""

"""创建元组(元组不可变)"""
# 1.强制:tuple()
# 2.普通
tuple_0 = (1,)
tuple_1 = 1, 2, 3, "apple", "red"
tuple_2 = (1, 2, 3, "banana", "blue")
print(type(tuple_1), type(tuple_2))

"""元组的拼接"""
tuple_new = tuple_1 + tuple_2

"""元组的解压赋值"""
tuple_3 = (1, 2, 3)
a, b, c = tuple_3

"""元组的切片(并非修改其内容)"""
print(tuple_3[::-1])

"""知道‘元组的元素’查看其‘索引’"""
print(tuple_1.index("apple"))

"""元组的嵌套"""
tuple_4 = ((1, 8, 3), (5, 1))

"""统计某个元素的个数"""
tuple_5 = (5, 6, 1, 3, 1, 2, 1, 8)
res = tuple_5.count(1)
print("有%d个数字‘1’" % res)

列表

"""
目录:
1.创建列表
2.列表的拼接
3.列表的解压赋值
4.列表的切片
5.列表的元素的索引
6.列表的嵌套
7.统计某个元素的个数
8.列表的元素添加
9.列表的元素删除
10.替换元素
11.元素排序
12.列表推导式
13.拷贝
"""

"""创建列表"""
# 1.强制:使用list()
# 2.普通:
list_0 = []
list_1 = [1]
list_2 = [2, 3, 4, 5]

"""列表的拼接"""
list_new_1 = list_1 + list_2
list_new_2 = list_1 * 3

"""列表的解压赋值"""
list_3 = [1, 2, 3]
a, b, c = list_3

"""列表的切片"""
print(list_3[0:3:2])
# 从第零个开始拿,直到3-1为止.每走两步向下拿个东西

print(list_3[::])
# 全部‘顺序’切片,等价于list_3[::1]

print(list_3[::-1])
# 全部‘倒序’切片

"""知道‘列表的元素’查看其‘索引’"""
print(list_3.index(1))

"""列表的嵌套"""
list_3 = [[1, 2], [1, 2, 3, 4], [0]]

"""列表推导式"""
list_4 = [i for i in range(9) if i < 5]
list_5 = [i for i in "hello_world"]

"""列表的元素添加"""
list_6 = [66, 77, 88, 99]

str_1 = "每次只能添加一个元素"
list_6.append(str_1)

list_new_3 = [211, "extend是并入一个列表", 985]
list_6.extend(list_new_3)

"""列表的元素删除"""
str_2 = "remove() 函数用于移除列表中某个值的第一个匹配项,没有返回值"
list_6.remove(str_2)

str_3 = "pop() 函数用于移除列表中的一个元素(默认最后一个元素)并且返回该元素的值"
list_6.pop()

list_6.clear()  # 清空列表

"""替换元素"""
list_6[0] = 233
list_6[:3:] = 1, 2, 3

"""元素排序"""
list_7 = [5, 9, 1, 7, 3]
# 顺序:sort()
list_7.sort()
print(list_7)
# 逆序:reverse() or sort(reverse=True)
list_7.reverse()
print(list_7)

"""统计某个元素的个数"""
res = list_7.count(1)

"""拷贝"""
# 1.浅拷贝:copy()---仅拷贝父对象,不会拷贝对象的内部的子对象
list_8 = [[1, 2], 3, 4, 5]
print("原来的>>>", list_8)

res_1 = list_8.copy()
res_1[3] = 55
print(res_1)
print(list_8)

list_8 = [[1, 2], 3, 4, 5]
print("原来的>>>", list_8)

res_2 = list_8.copy()
res_2[0][0] = 22
print(res_2)
print(list_8)

# 2.深拷贝:---完全拷贝了父对象及其子对象
import copy

res_3 = copy.deepcopy(list_8)

字典

"""
目录:
1.创建字典
2.字典的get函数
3.字典的拼接
4.字典的嵌套
5.统计字典有多少个‘键值对’
6.字典推导式
7.字典元素的添加
8.字典元素的修改
9.字典元素的删除
10.拷贝
11.字典的 items()函数
"""

"""创建字典"""
# 1.强制:dict()
# 2.普通:
dict_0 = {}
dict_1 = {"key": 150}
dict_2 = {
    "name": "小明",
    "age": 18,
    "hobby": "打篮球"
}

"""字典的get函数"""
res = dict_2.get("name", "查无此人")  # res:小明 若"name"键不存在 则返回后面的"查无此人"

"""字典的拼接"""
dict_3 = {**dict_1, **dict_2}
print(dict_3)

"""字典的嵌套"""
dict_4 = {
    "叶寻": {"age": 20, "height": 180},
    "小明": {"age": 15, "height": 165}
}

"""统计字典有多少个‘键值对’"""
print(len(dict_3))
print(len(dict_4))

"""字典推导式"""
dict_5 = {i: i ** 2 for i in range(5)}

"""字典元素的添加(直接添加即可)"""
dict_6 = {}
dict_6["age"] = 15
dict_6["name"] = 8

"""字典元素的修改"""
dict_7 = {"age": 18}
dict_7["age"] = 50

"""字典元素的删除"""
del dict_7["age"]
dict_7.clear()  # 清空字典
del dict_7  # 删除字典

"""拷贝"""
# 1.浅拷贝:copy()---仅拷贝父对象,不会拷贝对象的内部的子对象
dict_8 = {"color": {"red": "红色", "yellow": "黄色"}, "weight": 50}
print("原来的>>>", dict_8)

res_1 = dict_8.copy()
res_1["weight"] = 999
print(res_1)
print(dict_8)

dict_8 = {"color": {"red": "红色", "yellow": "黄色"}, "weight": 50}
print("原来的>>>", dict_8)

res_2 = dict_8.copy()
res_2["color"]["red"] = "玫瑰红"
print(res_2)
print(dict_8)

# 2.深拷贝:---完全拷贝了父对象及其子对象
import copy

res_3 = copy.deepcopy(dict_8)

"""字典的 items()函数"""
# items()的作用是把字典中的每对key和value组成一个元组 并把这些元祖放在列表中返回
d = {"red": 1, "blue": 2, "green": 3}
for i, v in d.items():
    print(i, v)

集合

"""
目录:
1.创建集合
2.去重
3.成员操作符(in_or_not_int)
4.枚举(列举)
5.增、删
6.交集
7.并集
"""

""" 创建集合"""
# 创建空集合(必须使用 set() 而不是 {} 因为 s = {} 默认创造出的是空‘字典’):
set_0_0 = set()  # 强转‘虚无’为集合
set_0_1 = set(())  # 强转‘空元组’为集合
set_0_2 = set([])  # 强转‘空列表’为集合
set_0_3 = set({})  # 强转‘空字典’为集合

# 创建非空集合(可以直接使用 s = {} 创建非空集合,但内容必须填上,且不能填‘键值对’):
set_1 = {4, 5, 6}

list_temp = [55, 66, 77]
set_2 = set(list_temp)

"""去重"""
list_new = [1, 1, 1, 1, 1, 2, 3, 4, 5]
set_3 = set(list_new)  # 自动去除重复内容

"""成员操作符(in_or_not_int)"""
print(5 in set_3)  # True or False

"""枚举(列举)"""
s = {1, 2, 3, 4, 5}
for i, v in enumerate(s, start=0):
    # enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
    # 同时列出数据和数据下标,一般用在 for 循环当中
    # 索引默认从0开始(即:start = 0)
    print('index: %s,value: %s' % (i, v))

"""增、删"""
s.add(10)  # 增加一个元素
s.update([5, 2, 3, 6])  # 添加多个元素

s.pop()  # 删除最前面的元素【第一个】
s.remove(5)  # 指定删除某个元素

"""交集"""
s1 = {1, 2, 99, 88}
s2 = {1, 2, 55, 66}
s3 = {1, 2, 10, 20}
print(s1.intersection(s2, s3))  # intersection()方法用于返回两个或更多集合的‘交集’
# 符号方法更简单 --->>>  print(s1 & s2 & s3)

"""并集"""
print(s1.union(s2, s3))  # union()方法用于返回两个或更多集合的‘并集’
# 符号方法更简单 --->>>  print(s1 | s2 | s3)


"""差集"""
print(s1 - s2)

"""对称差集"""
print(s1 ^ s2)
# 上面的一行等价于 --->>>  print((s1 - s2) | (s2 - s1))

"""父子集"""
print(s1 > s2)

字符串

"""
目录:
1.创建字符串
2.访问字符串中的值
3.字符串拼接
4.转义字符
5.成员运算符
6.字符串的切片
7.字符串常用函数
"""

"""创建字符串"""
# 1.强制转换str()
# 2.普通
name = "Xiao_Ming"

"""访问字符串中的值"""
str_1 = "abcdfg"
print(str_1[0])

"""字符串拼接"""
str_2 = "i love "
str_3 = "you"
str_4 = str_2 + str_3

"""转义字符"""
# 响铃 \userDate.txt
# 换行 \n
# 横向制表符 \t
# 纵向制表符 \v


"""成员运算符"""
str_5 = "abc"
print("userDate.txt" in str_5)

"""字符串的切片"""
str_6 = "abcdefg"
print(str_6[:5:])
# 结果展示:userDate.txt b.txt c d e
# 索引展示:0 1 2 3 4

"""
字符串常用函数
1.join()
2.replace()
"""

""" 1.join()函数(返回值是"字符串类型")"""
res_1 = ":".join("快遍历并插入进来")
res_2 = "".join(["我", "是", "一", "个", "数", "组"])  # 列表转换为字符串的方法

""" 2.replace() """
# replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),
# 如果指定第三个参数max,则替换不超过 max 次
str_n = "我是他朋友"
print(str_n.replace("他", "你"))

格式化输出

# (一)占位符
'''
%s 字符串
%c 字符
%d 十进制(整数)
%o 八进制整数
%x 十六进制整数
'''
print("我的年龄为%d" % 28)
print("我是%s,它是%s" % ("小明", "金刚"))
print("你看看它们,一个是%(male)s,一个是%(female)s" % {"female": 1, "male": 2})

# (二)字符串的拼接
a = "你好呀!"
b = "我是XXX"
c = a + b
print(c)

# (三)格式化填充


a = '{0:🤭^10}'.format('567')
# 符号:后面是填充符
# 符号^表示居中,
# 如果为符号<则是居左
# 10表示总长度
print(a)

b = '{:02}:{:02}:{:02}'.format(13, 4, 57)
# 0是填充符,2是width,表示位数为2
# 结果:
'13:04:57'
print(b)

"""  1.整数的输出  """
# print('%o' % 20)  # 八进制
# print('%d' % 20)  # 十进制
# print('%x' % 20)  # 十六进制

"""  2.浮点数输出  """
# print('%f' % 1.11)  # 默认保留6位小数
# print('%0.1f' % 1.11)  # 取1位小数
# print('%e' % 1.11)  # 默认取6位小数,用科学计数法
# print('%0.3e' % 1.11)  # 取3位小数,用科学计数法
# print('%g' % 1111.1111)  # 默认取6位有效数字
# print('%.7g' % 1111.1111)  # 取7位有效数字
# print('%.2g' % 1111.1111)  # 取2位有效数字,自动转换为科学计数法

"""  3.字符串输出  """
# print('%s' % 'hello world')  # 字符串输出
# print('%+20s' % 'hello world')  # 右对齐,取20位,不够则补位
# print('%-20s' % 'hello world')  # 左对齐,取20位,不够则补位
# print('%.2s' % 'hello world')  # 取2位
# print('%10.2s' % 'hello world')  # 右对齐,取2位
# print('%-10.2s' % 'hello world')  # 左对齐,取2位

# 常用转义字符
'''
\   续行符
\\  反斜杆符号
\'  单引号
\"  双引号
\a  响铃
\b  退格(Backspace)
\000 空
\n  换行
\r  回车
\v  纵向制表符
\t  横向制表符
\f  换页
'''

# 综合练习

b = '{num:.2f}'.format(num=3.1415926)
# 2f的意思是以四舍五入的方式保留2位小数。
print(b)

print('%-8s' % '{}x{}={}'.format(1, 2, 3))

循环语句

""" for循环实例 """
# 九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print("%-7s" % "{}x{}={}".format(j, i, j * i), end=" ")
    print()

""" while循环实例 """
# 符号楼梯
while True:

    # 信息录入
    height = int(input("请输入楼梯高度>>>"))
    symbol = input("请输入符号>>>")
    if height <= 0:
        continue

    # 生成符号楼梯
    i = 0
    while i <= height:
        print(symbol * i)
        i += 1

    # 是否退出
    if input("按Q键退出,否则继续").upper() == 'Q':
        break

生成式

"""元组生成式 由于元组不可变 所以不能往元组里面‘添加新的值’ 即不可‘生成’"""

"""列表生成式"""

# 基本操作:
list_basic = ["神兽金刚", "百变金刚", "雷神风暴"]
list_1 = []
for name in list_basic:
    if name.endswith("金刚"):
        list_1.append(name)

# 生成式操作:
list_1 = [name for name in list_basic if name.endswith("金刚")]

"""字典生成式"""
list_basic = ["神兽金刚", "百变金刚", "神兽金刚", "金刚雷神风暴"]
dict_1 = {list_basic.index(i): i for i in (list_basic)}

"""集合生成式"""
list_basic = ["神兽金刚", "百变金刚", "金刚雷神风暴", "神兽金刚"]
set_1 = {name for name in list_basic if name.endswith("金刚")}

"""生成器表达式"""
list_basic = ["神兽金刚", "百变金刚", "金刚雷神风暴", "神兽金刚"]
res = (name for name in list_basic)

"""
知识补充:
———————————————————————————————————————————————————————————
1.
Python中生成器能做到迭代器能做的所有事,
而且因为自动创建了__iter__()和next()方法,
生成器显得特别简洁。
而且生成器也是高效的,
使用生成器表达式取代列表解析,同时节省内存。
除了创建和保持程序状态的自动生成,当发生器终结时
还会自动抛出StopIterration异常。
———————————————————————————————————————————————————————————
2.
列表、元组、字典、字符串都是可迭代对象。
数字、布尔值都是不可迭代的。
———————————————————————————————————————————————————————————
3.
什么是迭代器?
迭代器对象要求支持迭代器协议的对象。
在Python中,支持迭代器协议
就是实现对象的__iter__()和next()方法。
其中__iter__()方法返回迭代器对象本身,
next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。

例子:
list = [1,2,3,4] # list是可迭代对象
lterator = iter(list) # 通过iter()方法取得list的迭代器
print(next(lterator)) # 1 通过next()获取下一个位置的值
print(next(lterator)) # 2
print(next(lterator)) # 3
print(next(lterator)) # 4

输出:
1
2
3
4

———————————————————————————————————————————————————————————
4.
什么是生成器?
生成器(generator)就是一个函数,
它提供了一种实现迭代器协议的便捷方式。
生成器与普通函数的区别在于它包含 yield 表达式,
并且不需要定义 __iter__()和__next__()。
生成器是一种惰性的序列,
如果我们需要创建一个 0~1000000000 的序列,
这样大的序列创建出来会占用比较多的内存,
生成器就是为了解决这样的问题。

例子:

# 普通序列
g = []
for x in range(5):
    g.append(x)
    
# g ----> [0, 1, 2, 3, 4]


# 生成器
def f():
    for x in range(5):
        yield x # 返回并记录函数状态
        
# next
f = f()
>>> next(f) # 每调用一次next,就执行一次yield | 依靠这种需要才生产的工作机制,大大的节省资源
0
>>> next(f)
1
>>> next(f)
2
>>> next(f)
3
>>> next(f)
4

# for next
>>> for x in range(5):
>>>  print(next(f))
0
1
2
3
4
———————————————————————————————————————————————————————————

"""

异常处理

"""

try:
    子代码块

except (异常类型A, 异常类型B, 异常类型C)
    子代码块
    
except 异常类型2 as 别名
    子代码块
    
except 异常类型3 as bbb  # bbb 拿到的是捕获异常所拿到的提示信息
    子代码块
    
except 异常类型4 as eee
    子代码块

except Exception as 别名:
    它是最后的防线,可以捕捉所有的异常!但它根据需求,可写也可不写

else:
    子代码块: 会在
    try的子代码块
    没有异常的时候执行


finally:
    子代码块
    无论如何都执行

"""

序列化和反序列化

'''

1 什么是序列化和反序列化?
    内存中的数据类型 ---(序列化)---> 特定的格式 ( json格式 或者 pickle格式 )
    内存中的数据类型 <---(反序列化)--- 特定的格式 ( json格式 或者 pickle格式 )

2 为何要序列化?
    序列化得到的结果 -> 特定的格式内容有两种用途
    2.1 可用于储存(如:游戏存档)
    2.2 传输给其他平台使用(如:跨平台数据交互)
        Python ------------------------Java
        列表 -------- 特定格式 --------- 数组
         .                              .
         .                              .
         .                              .
        集合(Python特色,无法转换)

3 强调!!!
    针对用途1的特定格式:应该用一种专门的格式比较好,pickle只有Python可以识别,但它可以很好的保留Python的特色
    针对用提2的特定格式:应该用一种通用的,能被所有语言识别的格式 -> json

4 补充~~~(了解)
    l = json.loads('[1, "abc", true, false]') ----- A1
    l = json.loads(b'[1, 'abc', True, False]') ----- A2
    上面两式子都能成功转换!!【Python版本(2.7~3.4)&(3.6~now)】
    注意!Python 3.5 中,A2式子会报错
    A1中的内容是json格式,它是str类型
    A2中的内容是 bytes类型


'''

# 实例!!!


''' 1  json的实例 '''

import json

# # 1 如何序列化和反序列化
# # 1.1 序列化
# res = json.dumps([1, 'abc', True, False])
# print(res, type(res))
#
# # 1.2 反序列化
# l = json.loads(res)
# print(l, type(l))

# 2 在文件中以json格式写入信息和读取信息

# # 2.1.1 写入信息(复杂方法)
# with open(r'C:\Users\叶寻\Desktop\Python\new_course\test.txt', 'wt', encoding='utf-8') as f:
#     res1 = json.dumps([1, 'abc', True, False])
#     f.write(res1)
#
# # 2.1.2 读取信息(复杂方法)
# with open(r'C:\Users\叶寻\Desktop\Python\new_course\test.txt', 'rt', encoding='utf-8') as f:
#     res2 = f.read()
#     l = json.loads(res2)
#     print(l, type(l))

# # 2.2.1 写入信息(简单方法)
# with open(r'C:\Users\叶寻\Desktop\Python\new_course\test.txt', 'wt', encoding='utf-8') as f:
#     res1 = json.dump([1, 'abc', True, False], f)
#
# # 2.2.2 读取信息(简单方法)
# with open(r'C:\Users\叶寻\Desktop\Python\new_course\test.txt', 'rt', encoding='utf-8') as f:
#     l = json.load(f)
#     print(l, type(l))


''' 2  pickle的实例 '''

import pickle

res = pickle.dumps({1, 2, 3, 4, 5})
print(res, type(res))

s = pickle.loads(res)
print(s, type(s))

猴子补丁

'''

当使用别人的模块不是很顺利的时候
我们可以在执行文件的入口处加上一个自己的补丁
当我们想要反悔的时候
删掉入口文件中的补丁即可

'''

# 例如:假设当前文件为执行的入口,ujson是比json更强的模块,
# 但是我们已经用json写了很多功能了!!又不想牵一发而动全身
# 这时,我们可以在入口文件(即本文件)加入补丁

import json
import ujson


def monkey_patch_json():
    json.__name__ = 'ujson'
    json.dumps = ujson.dumps
    json.loads = ujson.loads


# 在入口文件中运行
monkey_patch_json()

知识补充

# coding:utf-8

# 交叉赋值
m = 10
n = 20
n, m = m, n

# 解压赋值
# 取前面部分的值
l = [1, 2, 3, 4, 5, 6, 7]
x, y, z, *aaa = l
a, b, c, *_ = l
print(aaa)
print(_)

# 取后面部分的值
ll = [1, 2, 3, 4, 5, 6, 7]
*_, a1, b1, c1 = ll
print(_)

# 百分之78
print("百分率>>> %s  %%" % 78)

在这里插入图片描述

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

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

相关文章

无人机路径优化(八):五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划(提供MATLAB代码)

一、五种算法&#xff08;DBO、LO、SWO、COA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发…

抵御.360勒索病毒威胁:解密文件的有效方法与预防措施

导言&#xff1a; 近来&#xff0c;网络犯罪的一种新型形式——.360勒索病毒&#xff0c;备受关注。这种病毒通过加密用户文件&#xff0c;要求支付赎金以获取解密密钥。本文91数据恢复将深入介绍.360勒索病毒的特点&#xff0c;同时提供一些有效的恢复方法&#xff0c;并分享…

沁恒微WCH32V003定时器中断

最近在做一个项目&#xff0c;用到的主控芯片是沁恒微的WCH32v003&#xff0c;其中一个功能是定时器中断&#xff0c;在编写代码的时候想找官方的库函数文件&#xff0c;但是找了很久都没有找到&#xff0c;官网只有一个数据手册和应用手册&#xff0c;而应用手册一般是分为库函…

ai写作软件都有哪些?分享4个好用的!

ai写作软件都有哪些&#xff1f;分享4个好用的&#xff01; 随着人工智能技术的不断发展&#xff0c;AI写作软件逐渐崭露头角&#xff0c;成为了自媒体、内容创作者以及各行各业专业人士的得力助手。这些软件不仅能够提供高效的内容生成&#xff0c;还可以帮助用户优化文章结构…

FineReport使用总结

1、保留上次的查询条件 可以利用LocalStorage和SessionStorage来实现需求 我使用的是LocalStorage。 FineReport 版本是 10.0.0 首先我实在点击查询按钮时&#xff0c;把对应的查询条件放入LocalStorage。 设置初始化事件 var textEditor0 this.options.form.getWidgetByN…

再学css

盒模型 有两种&#xff0c; IE盒子模型、W3C盒子模型&#xff1b;盒模型&#xff1a; 内容(content)、填充(padding)、边界(margin)、 边框(border)&#xff1b;区 别&#xff1a; IE的content部分把 border 和 padding计算了进去; 标准盒子模型的模型图 从上图可以看到&#x…

操作系统A-第四和五章(存储器)作业解析

目录 1、在请求分页系统中&#xff0c;某用户程序的逻辑地址空间为 16 页&#xff0c;每页 1KB&#xff0c;分配的内存空间为 8KB。假定某时刻该用户的页表如下表所示。 试问&#xff1a;(1)逻辑地址 184BH 对应的物理地址是多少&#xff1f;&#xff08;用十六进制表示&…

用友GRP-U8 forgetPassword_old.jsp SQL注入漏洞(QVD-2023-31085)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8R10行政事业内控管理软件 forgetPassword_old.jsp接口处存在SQL注入漏…

Makefile编译原理 makefile中的include关键字

一.makefile中的include关键字 类似C语言中的include 将其他文件的内容原封不动的搬入当前文件 make对include关键字的处理方式&#xff1a; 在当前目录搜索或指定目录搜索目标文件 搜索成功&#xff1a;将文件内容搬入当前makefile中 搜索失败&#xff1a;产生警告&…

网络安全防御保护 Day2

开启管理口WEB登录服务 Cloud配置如下 为管理口配置ip 查看防火墙接口配置 使用https://192.168.20.3&#xff08;管理口ip&#xff09;:8443登录上防火墙 进入网络界面修改配置 划分vlan vlan20和vlan30也一样&#xff0c;把ip换成10.0.1.1/24和10.0.1.2/24即可 别忘了改变端口…

MySQL运维实战(5.1) 字符和编码的基本概念

作者&#xff1a;俊达 字符和编码 字符 字符是符号&#xff0c;是人们用于交流的各类符号&#xff0c;如26个英文字母、汉字、标点符号、数学运算符、其他语言的字母和符号。 编码 编码是计算机中以二进制方式存储字符的方式。每个字符都有一个对应的编码值&#xff0c;计算机…

[设计模式Java实现附plantuml源码~结构型]对象的间接访问——代理模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

GNSS定位技术总结与PPP定位技术

1.统一观测值方程 2.PPP方程构建 站间单差方程如下&#xff1a; 同样的&#xff0c;设计矩阵也更加庞大&#xff1a; 站间单差消除了卫星轨道、卫星钟、电离层、对流层以及卫星端的伪距和载波硬件延迟的影响。但在PPP中&#xff0c;我们无法通过站间单差消除这些影响&#xff…

学习使用Flask模拟接口进行测试

前言 学习使用一个新工具&#xff0c;首先找一段代码学习一下&#xff0c;基本掌握用法&#xff0c;然后再考虑每一部分是做什么的 Flask的初始化 app Flask(__name__)&#xff1a;初始化&#xff0c;创建一个该类的实例&#xff0c;第一个参数是应用模块或者包的名称 app…

Vertica单点更改服务器ip

需求 服务器网段调整&#xff0c;将ip&#xff1a;192.168.40.190收回&#xff0c;使用ip&#xff1a;192.168.40.200 默认情况下&#xff0c;节点 IP 地址和导出 IP 地址配置相同的 IP 地址。导出地址是网络上有权访问其他 DBMS 系统的节点的 IP 地址。使用导出地址从 DBMS …

elk之安装和简单配置

写在前面 本文看下elk的安装和简单配置&#xff0c;安装我们会尝试通过不同的方式来完成&#xff0c;也会介绍如何使用docker&#xff0c;docker-compose安装。 1&#xff1a;安装es 1.1&#xff1a;安装单实例 下载es安装包 在这里 下载&#xff0c;下载后解压到某个目录…

KubeSphere 核心实战之四【在kubesphere平台上部署Ruoyi-cloud项目】(实操篇 4/4)

**《KubeSphere 核心实战系列》** KubeSphere 核心实战之一&#xff08;实操篇 1/4&#xff09; KubeSphere 核心实战之二&#xff08;实操篇 2/4&#xff09; KubeSphere 核心实战之三&#xff08;实操篇 3/4&#xff09; KubeSphere 核心实战之四&#xff08;实操篇 4/4&…

Chiplet,汽车“芯”风向

异构集成、高速互联、算力灵活可扩展正在成为新一轮汽车芯片竞争的焦点。尤其是随着以ChatGPT为代表的大数据、大模型产品在车端的落地&#xff0c;对于芯片的要求还在持续提升。 本周&#xff0c;12家日本汽车制造商&#xff08;包括丰田、日产、本田等&#xff09;、零部件制…

数据结构之单链表详解

前言 之前大摆了5天多&#xff0c;没怎么学编程&#xff0c;自昨日起&#xff0c;觉不可如此&#xff0c;痛定思痛&#xff0c;开始继续学习&#xff0c;昨天刷了20多道简单级别的力扣&#xff0c;今天想把链表好好巩固一下&#xff0c;于是乎&#xff0c;把单链表的增删查改搞…

【linux|java应用报错】Cannot allocate memory

启动一个java应用报Cannot allocate memory&#xff0c;并且会生产一个hs_ess_pid.log文件。 文件内容为&#xff1a; #内存不足&#xff0c;Java运行时环境无法继续。 #本机内存分配&#xff08;mmap&#xff09;无法映射4294967296字节以提交保留内存。 【排查】 1、尝试使…