当前位置: 首页 > news >正文

02. Python基础知识

一、注释

  在开发程序过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当添加注释,以辅助自己或其他开发人员解读代码。注释是给程序员看的,为了让程序员方便阅读代码,解释器会忽略注释。在 Pyton 中,注释分为单行注释和多行注释。

  • 单行注释:在 Python 中,使用 “#” 作为单行注释,从符号 “#” 开始直到换行为止
  • 多行注释:在 Python 中,以一对三个引号(单引号和双引号都行)引起来的内容为多行注释
# 这是一个单行注释
print("Hello world!")   # print()函数可以向终端打印一段话'''这是一个多行注释
'''"""这同样也是一个多行注释
"""

“#” 与注释的内容建议以一个空格隔开

二、关键字

关键字描述
and逻辑运算符,与
as创建别名
assert用于调试
break跳出循环
class定义类
continue继续循环的下一个迭代
def定义函数
del删除对象
elif在条件语句中使用
else用于条件语句,表示当前条件不成立时的分支
except处理异常,发生异常时如何执行
False布尔值,表示假值
finally处理异常,无论是否存在异常,都将执行这一段代码
for创建 for 循环
from导入模块的特定部分
global声明全局变量
ifif 条件语句
import导入模块
in检查列表、元组等集合中是否存在某个值
is测试两个变量是否相等
lanbda创建匿名函数
None表示 null 值
nonlocal声明非局部变量
not逻辑运算符,非
or逻辑运算符,或
passnull 语句,一条什么都不做的语句
raise产生异常
return退出函数并返回值
True布尔值,表示真值
try编写 try…except 语句,执行可能出现异常的语句
while创建 while 循环
with用于简化异常处理
yield结束函数,返回生成器

三、变量

  变量(variable),就是可以变量的量,它可以用来保存字面量,并且变量中保存的字面量是不定的。变量本身没有任何意思,它会根据不同的字面值表示不同的意思。

  在 Python 中使用变量,不需要声明,直接为变量赋值即可。

变量名 = 变量值
a = 10
print(a)

  但是不能使用没有赋值的变量,如果使用没有赋值过的变化,会报错;

b
print(b)

  这段代码在执行后,会报如下的错误:

Traceback (most recent call last):File "e:/Source/Software/python/template.py", line 1, in <module>b
NameError: name 'b' is not defined

  Python 是一个动态类型的语言,可以为变量赋任何类型的值,也可以任意修改变量的值;在 Python 中,使用内置函数 type() 可以返回变量的类型。

a = 10
print(a)
# 使用type()函数可以查看变量的类型
print(type(a))a = "hello"
print(a)
print(type(a))

  在 Python 中允许多个变量指向同一个值,可以使用 id() 函数返回变量所指向的内存地址。

a = b = 123
print(a)
print(id(a))print(b)
print(id(b))

Python 中变量的使用原则是先定义在使用;

在 Python 中,使用内置函数 type() 可以返回变量类型,使用内置函数 id() 可以返回变量所指的内存地址;

四、常量

  常量 就是程序运行过程中,值不能改变的量。在 Python 中,并没有提供定义常量的保留字,不过在 PEP 8 规范中规定了常量由大写字母和下划线组成,但是在实际项目中,常量首次赋值后,还是可以被其它代码修改的。

USER_ID = 1001
print(USER_ID)USER_ID = 1002
print(USER_ID)

五、标识符

  标识符 可以简单的理解为一个名字,它主要用来标识变量、函数、类、模块 和 其它对象的名称。

5.1、标识符的命名规则

  • 标识符中可以包含字母、数字、_,但是不能使用数字开头
  • 标识符不能是 Python 中的关键字和保留字
  • 标识符区分大小写

如果使用不符合标准的标识符,将会报错:SyntaxError: invalid syntax

5.2、标识符的命名规范

  在 Python 中主要遵循两种命名规范:

  • 下划线命名法
    • 所有单词小写,单词之间使用 _ 分隔
  • 帕斯卡命名法(大驼峰命名法)
    • 每个单词的首字母大写,其余字母小写

不建议使用 Python 中的函数名作为标识符;

六、数据类型

  数据类型 指的是变量值的类型,也就是可以为变量赋哪些值。我们可以通过 type(变量) 的方式查看变量存储的数据类型。在 Python 中,变量是没有类型的,但是它存储的数据有类型。

6.1、数值类型

  数值类型 是不可变类型,如果修改数值类型变量的值,那么会先把该值存放在新开辟的内容中,然后修改变量让其指向新的内存地址。在 Python 语言中,数值类型主要包括 整数浮点数复数

6.1.1、整数类型

  整数 用来表示整数值,即没有小数部分的数值。在 Python 语言中,整数 包括 正整数负整数0,并且它的位数是任意的。整数类型包括 十进制整数、八进制整数、十六进制整数 和 二进制整数。

a = 10
print(a)                # 整数
# 使用type()函数可以查看变量的类型
print(type(a))
print(id(a))a = 0b10                # 二进制的10  
print(a)
print(id(a))a = 0o10                # 八进制的10
print(a)
print(id(a))a = 0x10                # 十六进制的10
print(a)
print(id(a))

  在书写很大的数时,可以使用下划线将其中的位分组,使其更加清晰易读。当我们打印这种使用下划线的数时,Python 不会打印其中的下划线。这时因为在存储这种数时,Python 会忽略其中的下划线。在对数字位分组时,即使不是将每个三位分成一组,也不会影响最终的值。

num = 100_000_000
print(num)
print(type(num))num = 1_0000_0000
print(num)

Python 中的整数大小没有限制,可以是一个无限大的整数;

如果数字过大,可以使用下划线作为分隔符;

其它进制的整数,默认是以是十进制的形式打印的;

十进制整数的不能以 0 开头;

6.1.2、浮点类型

  浮点数整数部分小数部分 组成,主要用于处理包括小数的数。浮点数可以使用科学计数法表示。

a = 3.14            # 浮点数
print(a)
print(type(a))

6.1.3、复数类型

  Python 中的 复数 与数学中的复数形式一致,都是由 实部 和 虚部 组成,并且使用 j 或 J 表示虚部。当表示一个复数时,可以将其实部和虚部相加。

a = 3 + 1j            # 复数
print(a)
print(type(a))

6.2、布尔类型

  布尔类型 主要用于表示 真值假值。在 Python 中,标识符 TrueFalse 被解释为 布尔值。另外,Python 中的布尔值可以转化为整数值,True 表示 1,False 表示 0

  在 Python 中,所有的对象都可以进行真值测试,其中只有下面列出的几种情况得到的值为假。

  • False 或 None
  • 数值中的零,包括 0、0.0、虚数0
  • 空序列,包括 字符串、空元组、空列表、空字典
  • 自定义对象的实例,该对象的 __bool__ 方法返回 False 或者 __len__ 方法返回 0
a = True
print(a)
print(type(a))a = False
print(a)
print(type(a))

6.3、序列

  Python 序列(Sequence)是指按特定顺序依次排列的一组数据,它们可以占用一块连续的内存,也可以分散到多块内存中。Python 中的序列类型包括 字符串(str)、列表(list)、元组(tuple)、字典(dict)和 集合(set)。

6.3.1、字符串类型

  字符串 就是连续的字符序列,可以是计算机所能表示的一切字符的集合。在 Python 中,字符串属于不可变序列,通常使用 单引号(‘’)、双引号(“”) 或 三引号(‘’‘’‘’ 或 “”“”“”)括起来。这三种引号形式在语义上没有差别,只是在形式上有些差别。其中 单引号双引号 中的字符必须在同一行上,而 三引号 内的字符序列可以分步在连续的多行上。

a = 'hello world!'
print(a)
print(type(a))a = "Sakura"
print(a)a = """hello
my name is Sakura"""
print(a)a = '''
hello world
你好,世界!
'''
print(a)

  Python 中的字符串还支持转义字符。转义字符 是使用 反斜杠(\)对一些特殊字符进行转义。常见的转义字符如下:

转义字符说明
\续行符
\b退格,将当前位置移到前一列
\f换页
\n换行符
\r回车,将当前位置移到本行开头
\t水平制表符,用于横向跳到下一个制表位
\0
\"双引号
\’单引号
\\一个反斜杠
\0dd八进制数,dd 范围为 0~7
\xhh十六进制数,hh 范围为 0~f
print("hello \world!")
print("\thello")
print("鲁迅说:\"这句话我从未说过\"")
print("子曰:\'学而时习之,不亦说乎!\'")
print("御坂美琴 夏娜\r木之本樱")
print("\\")
print("你好,\n世界")
print("Sakura \bKinomoto")

6.3.2、列表类型

  Python 中列表是由一系列按特定顺序排列的元素组成的,它是 Python 中内置的可变序列。在形式上,列表的所有元素都放在一对中括号 “[]” 中,两个相邻元素间使用逗号 “,” 分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放入到列表中,并且同一个列表中,元素的类型可以不同,因为它们之间没有任何关系。

# 列表中可以保存任意的对象
my_list = [10,"hello",True,None,[1,2,3]]
print(my_list)
print(type(my_list))

  列表中的对象都会按照插入的顺序存储到列表中,第一个插入的对象保存到第一个位置,第二个保存在第二个位置。我们也可以通过 索引 的方式获取指定的元素。索引 是元素在列表中的位置,列表中的每一个元素都有一个索引。索引是 0 开始的整数,列表第一个位置索引为 0,第二个位置索引为 1,依次类推。

names = ["Sakura","Mikoto","Shana"]
print(names[0])
print(names[1])
print(names[2])

  在 Python 中索引可以是 负数。这个索引从右向左计数,也就是从最后的一个元素开始计数,即最后一个元素的索引是 -1,倒数第二个第二个元素的索引值为 -2,以此类推。

names = ["Sakura","Mikoto","Shana"]
print(names[-1])
print(names[-2])
print(names[-3])

6.3.3、元组类型

  元组(tuple)是 Python 中的一种序列结构,和列表类似,也是由一系列按特定顺序排列的元素组成,但它是不可变序列。因此,元组也可以称为不可变的列表。在形式上,元素的所有元素都放在一对 “()” 中,两个相邻元素间使用 “,” 分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放在元组中,并且在同一个元素中,元素的类型可以不同。

# 元组中可以保存任意的对象
my_tuple = (10,"hello",True,None,[1,2,3])
print(my_tuple)
print(type(my_tuple))

  元组中的对象都会按照插入的顺序存储到元组中,第一个插入的对象保存到第一个位置,第二个保存在第二个位置。我们也可以通过 索引 的方式获取指定的元素。索引 是元素在元组中的位置,元组中的每一个元素都有一个索引。索引是 0 开始的整数,元组第一个位置索引为 0,第二个位置索引为 1,依次类推。

names = ("Sakura","Mikoto","Shana")
print(names[0])
print(names[1])
print(names[2])

  在 Python 中索引可以是 负数。这个索引从右向左计数,也就是从最后的一个元素开始计数,即最后一个元素的索引是 -1,倒数第二个第二个元素的索引值为 -2,以此类推。

names = ("Sakura","Mikoto","Shana")
print(names[-1])
print(names[-2])
print(names[-3])

从元素和列表的定义上看,这两种结构比较相似,两者之间的主要区别为:元组是不可变序列,列表是可变序列。即元组的元素不可以单独修改,而列表可以任意修改。

6.3.4、字典类型

  在 Python 中,字典(dictionary)是一系列 键值对。每个键都与一个值关联,可以使用键来访问与之关联的值。字典中的 元键 只能是 不可变类型 的数据类型,也就是可哈希类型。与键相关的值可以是数字、字符串、列表 乃至字典等。事实上,可将任意的 Python 对象用作字典的值。

person = {"name":"Sakura","age":10}
print(person)
print(type(person))

  在 Python 中,我们可以通过 key 来获取它所对应的 value 值。

person = {"name":"Sakura","age":10}
print(person["name"])
print(person["age"])

如果使用的字典中不存在键会报以下错误:KeyError: 'gender'

字典不支持索引取值!

6.3.5、集合类型

  在 Python 中,集合与列表类似,集合它是无序(不是按照元素的插入顺序保存)的可变序列。在集合中不能出现重复的元素。在形式上,集合的所有元素都放在一对 “{}” 中,两个相邻元素间使用 “,” 分隔。集合中的元素只能是不可变类型的数据类型,也就是可哈希类型。

names= {"Sakura","Mikoto","Shana","Sakura"}
print(names)
print(type(names))

6.4、数据类型转换

  在 Python 中,提供了如下的函数用来进行数据类型的转化。

int(x, base=10)             # 将x转换为以base为进制的整数类型
float(x=0.0)                # 将x转换为浮点数类型
complex(real=0, imag=0)     # 创建一个复数
str(object='')              # 将x转换为字符串
chr(i)                      # 将整数x转换为一个字符
ord(c)                      # 将一个字符x转换为它对应的整数值
bin(x)                      # 将一个整数x转换为一个二进制的字符串
oct(x)                      # 将一个整数x转换为一个八进制的字符串
hex(x)                      # 将一个整数x转换为一个十六进制字符串
a = "3"
b = int(a)
print(b)
print(type(b))a = "3.14"
b = float(a)
print(b)
print(type(b))a = complex(1,2)
print(a)
print(type(a))a = 3.14
b = str(a)
print(b)
print(type(b))
print(chr(97))                      # 将整数转换为字符
print(ord("a"))                     # 将字符转换为整数
print(int("15"))                    # 默认以十进制的形式读取字符串
print(bin(15))                      # 将十进制整数转换为二进制整数
print(int("0b1111",base=2))         # 以二进制的形式读取字符串
print(oct(15))                      # 将十进制整数转换为八进制整数
print(int("0o17",base=8))           # 以八进制的形式读取字符串
print(hex(15))                      # 将十进制整数转换为十六进制整数

类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新的对象;

以上的转换函数不会原有的变量产生影响,它是将对象转换位指定的类型并将其作为返回值返回,如果需要修改原来的变量,则需要对变量进行重新赋值;

七、基本输入输出

  默认情况下,在 Python 中,使用内置的 print() 函数将结果输出到控制台上,其基本语法格式如下:

print(输出内容)

  其中,输出内容可以是数字和字符串(字符串需要使用引号括起来),此类内容将直接输出,也可以是包含运算符的表达式,此类内容将计算结果输出。

  在 Python 中,默认情况下,一条 print() 语句输出后会自动换行,如果想要一次输出多个内容,而且不换行,可以将要输出的内容使用英文半角的逗号分隔。在输出时,也可以把结果输出到指定文件。

  在 Python 中,使用内置函数 input() 可以接收用户的接盘输入。input() 函数的基本用法如下:

变量名 = input("提示文本")

  其中,变量名 为保存用户输入结果的变量,引号内的内容用于提示要输入的内容。

  在 Python 3 中,无论输入的是数字还是字符都将被作为字符串读取。如果想要接收数值,需要把接收到的字符串进行类型转换。

name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))print("name: ",name,", age: ",age)
print(type(name))
print(type(age))

八、编程规范

  Python 中采用 PEP 8 作为代码规范,其中 PEP 是 Python Enhancement Proposal 的缩写,翻译过来是 Python 增加建议书,而 “PEP 8” 的 8 是版本号。

  1. 每个 import 语句应仅导入一个模块,避免依次导入多个模块;
  2. 不要在行尾添加分号 “;”,也不要使用分号将两条命令放在同一行;
  3. 建议每行不要超过 80 个字符,如果超过,建议使用小括号 “()” 将多行内容隐式的连接起来,而不推荐使用反斜杠反斜杠 “\” 进行连接;
  4. 使用必要的空行可以增加代码的可读性。一般在顶级定义(如函数或类的定义)之间使用两行,而方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行;
  5. 通常情况下,运算符两侧、函数参数之间、逗号“,”两侧仅以使用空格进行分隔;
  6. 应该避免在循环中使用 “+” 和 “+=” 运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用 join() 方法连接列表;
  7. 适当使用异常处理结构提高程序容错性,但不能过多依赖异常处理结构,适当显示的判断还是必要的;

相关文章:

02. Python基础知识

一、注释 在开发程序过程中&#xff0c;如果一段代码的逻辑比较复杂&#xff0c;不是特别容易理解&#xff0c;可以适当添加注释&#xff0c;以辅助自己或其他开发人员解读代码。注释是给程序员看的&#xff0c;为了让程序员方便阅读代码&#xff0c;解释器会忽略注释。在 Pyto…...

Mac 修改默认jdk版本

当前会话生效 这里演示将 Java 17 版本降低到 Java 8 查看已安装的 Java 版本&#xff1a; 在终端&#xff08;Terminal&#xff09;中运行以下命令&#xff0c;查看已安装的 Java 版本列表 /usr/libexec/java_home -V设置默认 Java 版本&#xff1a; 找到 Java 8 的安装路…...

数字赋能,气象引领 | 气象景观数字化服务平台重塑京城旅游生态

在数字化转型的浪潮中&#xff0c;旅游行业正以前所未有的速度重塑自身&#xff0c;人民群众对于高品质、个性化旅游服务需求的日益增长&#xff0c;迎着新时代的挑战与机遇&#xff0c;为开展北京地区特色气象景观预报&#xff0c;打造“生态气象旅游”新业态&#xff0c;助推…...

C语言项⽬实践-贪吃蛇

目录 1.项目要点 2.窗口设置 2.1mode命令 2.2title命令 2.3system函数 2.Win32 API 2.1 COORD 2.2 GetStdHandle 2.3 CONSOLE_CURSOR_INFO 2.4 GetConsoleCursorInfo 2.5 SetConsoleCursorInfo 2.5 SetConsoleCursorPosition 2.7 GetAsyncKeyState 3.贪吃蛇游戏设…...

springboot整合kafka

springboot整合kafka pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven…...

量子计算机全面解析:技术、应用与未来

标题&#xff1a;量子计算机全面解析&#xff1a;技术、应用与未来 一、什么是量子计算机&#xff1f; 量子计算机是一种利用量子力学原理&#xff08;如叠加、纠缠和干涉&#xff09;进行计算的新型计算设备。与传统计算机基于比特&#xff08;0 和 1&#xff09;的运算方式不…...

提升软件测试报告的质量:Allure2中添加用例失败截图、日志、HTML块和视频的方法

Allure2的用途 Allure2是一个用于生成测试报告的框架&#xff0c;广泛应用于自动化测试和手动测试中。它支持多种测试框架&#xff0c;如JUnit、TestNG、MSTest等&#xff0c;通过生动的图表和详细的日志&#xff0c;使得非技术人员也能轻松地理解测试结果。许多团队选用Allur…...

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

原因 是手动去改了mysql的配置文件my.ini的内容&#xff0c;重新启动服务启动不了。 看了很多文章最终找到了恢复数据的办法。 第一步备份 先备份mysql数据存的文件夹Data&#xff0c;如果找不到则去看配置文件那一行datadir 第二步重新安装mysql 卸载篇可以看我之前发的文…...

国际环境和背景下的云计算领域

前言 在当前国际环境和背景下&#xff0c;云计算领域呈现出复杂多变的局面&#xff0c;其发展深受技术创新、地缘政治、全球经济以及监管政策的影响。以下从技术趋势、市场竞争、地缘政治和监管环境四个方面详细解析云计算领域的现状。 一、技术趋势&#xff1a;多云与边缘计算…...

网络安全-企业环境渗透2-wordpress任意文件读FFmpeg任意文件读

一、 实验名称 企业环境渗透2 二、 实验目的 【实验描述】 操作机的操作系统是kali 进入系统后默认是命令行界面 输入startx命令即可打开图形界面。 所有需要用到的信息和工具都放在了/home/Hack 目录下。 本实验的任务是通过外网的两个主机通过代理渗透到内网的两个主机。…...

C# 超链接控件LinkLabel无法触发Alt快捷键

在C#中&#xff0c;为控件添加快捷键的方式有两种&#xff0c;其中一种就是Windows中较为常见的Alt快捷键&#xff0c;比如运行对话框&#xff0c;记事本菜单等。只需要按下 Alt 框号中带下划线的字母即可触发该控件的点击操作。如图所示 在C#开发中&#xff0c;实现类似的操作…...

一分钟学习数据安全——数据安全风险的系统化应对思路

数据是组织的重要资产&#xff0c;未经授权的数据访问可能导致数据泄露、数据篡改、隐私侵犯和合规风险等问题。企业可以通过数据访问控制来提高信息系统在数据全生命周期管理中的安全性。企业可以引入IAM系统&#xff0c;来控制身份来管理权限。通过对用户访问权限的管理和合适…...

深入了解 Spring Security 的授权核心功能

Spring Security 是一个强大且灵活的安全框架&#xff0c;能够帮助开发者为 Spring 应用程序提供认证和授权服务。在实际应用中&#xff0c;Spring Security 主要涉及用户的认证&#xff08;谁是用户&#xff09;和授权&#xff08;用户能做什么&#xff09;。本文将深入讲解 S…...

【Web前端】创建我的第一个 Web 表单

Web 开发中&#xff0c;表单是不可或缺的组成部分。无论是用户注册、登录还是反馈收集&#xff0c;表单都是与用户交互的重要方式。 什么是 Web 表单&#xff1f; Web 表单是一种用于收集用户输入数据的界面元素。它们允许用户在浏览器中输入信息并提交这些信息到服务器。Web …...

“人工智能+高职”:VR虚拟仿真实训室的发展前景

在当今科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;与虚拟现实&#xff08;VR&#xff09;技术的融合正逐步改变着各行各业&#xff0c;教育领域也不例外。特别是在高等职业教育&#xff08;简称“高职”&#xff09;体系中&#xff0c;VR虚拟仿真实训室…...

状态模式之状态机

状态机的背景 在软件开发过程中&#xff0c;尤其是涉及到复杂的系统行为控制时&#xff0c;我们常常会遇到这样的情况&#xff1a;一个对象或者系统会在多种状态之间进行转换&#xff0c;并且在不同状态下对相同事件的响应是不同的。 以自动售卖机为例&#xff0c;自动售卖机…...

NUXT3学习日记四(路由中间件、导航守卫)

前言 在 Nuxt 3 中&#xff0c;中间件&#xff08;Middleware&#xff09;是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑&#xff0c;像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用&#xff0c;也可以只在特定页…...

基于重复控制补偿的高精度 PID 控制

1. 背景与原理 重复控制&#xff08;Repetitive Control, RC&#xff09;是一种适用于周期性信号跟踪和周期性扰动抑制的控制方法&#xff0c;通过在控制回路中引入周期补偿器来提高系统的控制精度。将 RC 与 PID 控制相结合&#xff0c;利用 PID 的快速响应特性和 RC 的周期补…...

Linux之日志

日志 在编写网络服务器, 各种软件时, 程序一定要打印一些日志信息. 1. 可以向显示器打印, 也可以向文件中写入. 2. 日志是软件在运行时记录的流水账, 用于排查服务进程挂掉的信息. 其中必须要有的是: 日志等级, 时间, 日志内容.可选的是文件名, 代码行数, 进程pid 等 日志…...

【LeetCode面试150】——202快乐数

博客昵称&#xff1a;沈小农学编程 作者简介&#xff1a;一名在读硕士&#xff0c;定期更新相关算法面试题&#xff0c;欢迎关注小弟&#xff01; PS&#xff1a;哈喽&#xff01;各位CSDN的uu们&#xff0c;我是你的小弟沈小农&#xff0c;希望我的文章能帮助到你。欢迎大家在…...

云原生之k8s服务管理

文章目录 服务管理Service服务原理ClusterIP服务 对外发布应用服务类型NodePort服务Ingress安装配置Ingress规则 Dashboard概述 认证和授权ServiceAccount用户概述创建ServiceAccount 权限管理角色与授权 服务管理 Service 服务原理 容器化带来的问题 自动调度&#xff1a;…...

【Vue】 npm install amap-js-api-loader指南

前言 项目中的地图模块突然打不开了 正文 版本太低了&#xff0c;而且Vue项目就应该正经走项目流程啊喂&#xff01; npm i amap/amap-jsapi-loader --save 官方说这样执行完&#xff0c;就这结束啦&#xff01;它结束了&#xff0c;我还没有&#xff0c;不然不可能记录这篇文…...

RocketMQ: 部署结构与存储特点

RocketMQ 是什么 它是一个队列模型的消息中间件&#xff0c;具有高性能、高可靠、高实时、分布式特点 Producer、Consumer、队列都可以分布式Producer 向一些队列轮流发送消息 队列集合称为 TopicConsumer 如果做广播消费则一个 consumer 实例消费这个 Topic 对应的所有队列如果…...

Android OpenGL ES详解——绘制圆角矩形

1、绘制矩形 代码如下&#xff1a; renderer类&#xff1a; package com.example.roundrectimport android.content.Context import android.opengl.GLES30 import android.opengl.GLSurfaceView.Renderer import com.opengllib.data.VertexArray import com.opengllib.prog…...

【大数据学习 | Spark】Spark的改变分区的算子

当分区由多变少时&#xff0c;不需要shuffle&#xff0c;也就是父RDD与子RDD之间是窄依赖。 当分区由少变多时&#xff0c;是需要shuffle的。 但极端情况下&#xff08;1000个分区变成1个分区)&#xff0c;这时如果将shuffle设置为false&#xff0c;父子RDD是窄依赖关系&…...

前端知识点---rest(javascript)

文章目录 前端知识点---rest(javascript)rest的用法基本语法特点使用场景与扩展运算符&#xff08;spread&#xff09;区别小练习 前端知识点—rest(javascript) rest出现于ES2015 function doSum(a,b, ...args) //示例中的args就是一个rest参数 //它会将后续的所有参数存储…...

Spark使用过程中的 15 个常见问题、详细解决方案

目录 问题 1&#xff1a;Spark 作业超时问题描述解决方案Python 实现 问题 2&#xff1a;内存溢出问题描述解决方案Python 实现 问题 3&#xff1a;Shuffle 性能问题问题描述解决方案Python 实现 问题 4&#xff1a;Spark 作业调度不均问题描述解决方案Python 实现 问题 5&…...

ASP.NET MVC宠物商城系统

该系统采用B/S架构&#xff0c;使用C#编程语言进行开发&#xff0c;以ASP.NET MVC框架为基础&#xff0c;以Visual Studio 2019为开发工具&#xff0c;数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…...

DQN系列算法详解

代码链接见文末 1. Q-learning 1.1 概述 Q-Learning是一种强化学习算法,目的是通过选择能带来最大长期收益的行为来完成任务。 做事包含瞬时奖励和记忆经验奖励: 在Q-Learning中,每个动作都会带来“瞬时奖励”,同时也会根据过去的经验记住哪些行为更有利。瞬时奖励: 这里…...

uniapp发布android上架应用商店权限

先看效果&#xff1a; 实现原理&#xff1a; 一、利用uni.addInterceptor的拦截器&#xff0c;在一些调用系统权限前拦截&#xff0c;进行弹窗展示&#xff0c;监听确定取消实现业务逻辑。 二、弹窗是原生nativeObj进行drawRect绘制的 三、权限申请调用使用的 plus.android.…...

已阻止加载“http://localhost:8086/xxx.js”的模块,它使用了不允许的 MIME 类型 (“text/plain”)。

记录今天解决的一个小bug 在终端启动8080端口号监听后&#xff0c;打开网址http://localhost:8080&#xff0c;发现不能正确加载页面&#xff0c;打开检查-控制台&#xff0c;出现如下警告&#xff1a;已阻止加载“http://localhost:8086/xxx.js”的模块&#xff0c;它使用了不…...

JavaEE之线程初阶(上)

前文我们知道计算机中的每一个程序都对应着一个进程&#xff0c;进程是CPU申请资源的最小单位&#xff0c;那么线程是什么呢&#xff0c;线程中我们又能学习到什么新的知识呢&#xff1f;&#xff1f; 我们来一探究竟 1. 认识线程&#xff08;Thread&#xff09; 线程是什么 …...

Spring Security @PreAuthorize注解

PreAuthorize 注解在 Spring Security 中提供了一种声明式的方法&#xff0c;可以在您的 Spring Boot 应用中添加方法级别的安全检查。本教程将引导您设置并有效使用 PreAuthorize&#xff0c;确保用户只能在具有特定角色或权限的情况下调用 REST API。 什么是 PreAuthorize&a…...

windows已建立威胁IP排查

在应急响应的时候&#xff0c;需要筛选出服务器建立连接的进程、PID&#xff0c;此代码可满足该需求实现共计2步 首先windos netstat-ano > all.txt&#xff0c; 上传至pycharm路径 第一步获取服务器建立连接的ip import re# 从文件读取 netstat 输出 def read_netstat_f…...

AI 大模型如何重塑软件开发流程?——技术革新与未来展望

人工智能的蓬勃发展为许多领域注入了强劲动力&#xff0c;而在软件开发这一关键技术领域&#xff0c;AI 大模型的应用正在彻底改变传统流程。从代码自动生成到智能测试&#xff0c;再到协同开发和流程优化&#xff0c;AI 正逐步成为软件开发者的得力助手&#xff0c;也推动企业…...

Admin.NET框架前端由于keep-alive设置缓存导致的onUnmount未触发问题

bug版本&#xff1a;next分支&#xff0c;基于.NET6版本&#xff1b; 问题描述&#xff1a; 1、添加keep-alive后&#xff0c;在其下运行的组件会出现onActived(被关注时)和onDeactived(取消关注时)生命周期&#xff0c;而组件原有生命周期为onMounted(被创造时)和onUnmounted(…...

Rest-assured

依赖 <--rest-assured依赖--><dependency><groupId>io.rest-assured</groupId><artifactId>rest-assured</artifactId><version>4.4.0</version><scope>test</scope> </dependency><--junit5依赖-->…...

ubuntu24挂载硬盘记录

1、显示硬盘及所属分区情况。在终端窗口中输入如下命令&#xff1a; sudo fdisk -l 找到自己硬盘的分区 我的地址/dev/sda 2、显示硬盘及所属分区情况。在终端窗口中输入如下命令&#xff0c;格式化自己硬盘&#xff1a; sudo mkfs -t ext4 /dev/sda 3、在终端窗口中输入如下…...

Dubbo集成SpringBoot实现远程服务调用

SpringBoot集成Dubbo Dubbo介绍了解 Dubbo 核心概念和架构dubbo特性dubbo运行原理图 SpringBoot集成Dubbo技术实战一、Dubbo Spring Boot 版本关系二、引入Maven依赖demo项目基础结构引入依赖创建每个模块1&#xff09;api模块2&#xff09;provider模块3&#xff09;consumer模…...

Redis最终篇分布式锁以及数据一致性

在前三篇我们几乎说完了Redis的所有的基础知识以及Redis怎么实现高可用性,那么在这一篇文章中的话我们主要就是说明如果我们使用Redis出现什么问题以及解决方案是什么,这个如果在未来的工作中也有可能会遇到,希望对看这篇博客的人有帮助,话不多说直接开干 一.Hotkey以及BigKey…...

TCP协议

报文格式 源/目的端口号&#xff1a;数据从哪个进程来&#xff0c;到哪个进程去32位序号&#xff1a;TCP传输过程中&#xff0c;在发送端出的字节流中&#xff0c;传输报文中的数据部分的每一个字节都有它的编号32位确认号&#xff1a;标识了报文接收端期望接收的字节序列4位首…...

Vue3 源码解析(十):watch 的实现原理

本篇文章笔者会讲解 Vue3 中侦听器相关的 api&#xff1a;watchEffect 和 watch 。在 Vue3 之前 watch 是 option 写法中一个很常用的选项&#xff0c;使用它可以非常方便的监听一个数据源的变化&#xff0c;而在 Vue3 中随着 Composition API 的写法推行也将 watch 独立成了一…...

2023年9月GESPC++一级真题解析

一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 题号 123456789101112131415 答案 CDBCDBACACBBDDA 1. 我们通常说的 “ 内存 ” 属于计算机中的&#xff08;&#xff09;。 A. 输出设备 B. 输 ⼊ 设备 C. 存储设备 D. 打印设备 【答案】 C 【考纲知识点】…...

vscode 远程连接ssh 密钥方式

目录 1. powershell 生成key&#xff1a; 2. 在服务器上安装公钥 linux测试成功&#xff1a; 3).为了确保连接成功&#xff0c;输入如下指令以保证以下文件权限正确&#xff1a; 3 开启 ssh 密钥登录 vscode 远程连接配置 python连接测试ok 查看日志&#xff1a; 1. po…...

字符函数和字符串函数

字符分类函数 C语言中有⼀系列的函数是专门做字符分类的&#xff0c;也就是⼀个字符是属于什么类型的字符的。 这些函数的使用都需要包含⼀个头文件&#xff1a;ctype.h 这些函数的用法非常类似。 int islower ( int c )islower是能够判断参数部分是否是小写字母的。 通过返…...

如何利用ChatGPT加速开发与学习:以BPMN编辑器为例

在现代开发中&#xff0c;开发者经常会遇到各种需要编写和学习新技术的任务。ChatGPT作为一种强大的自然语言处理工具&#xff0c;不仅可以辅助编写代码&#xff0c;还可以帮助学习新的编程概念和解决开发中的难题。本文将以开发一个BPMN&#xff08;业务流程建模与标注&#x…...

深度学习2

四、tensor常见操作 1、元素值 1.1、获取元素值 tensor.item() 返回tensor的元素&#xff1b;只能在一个元素值使用&#xff0c;多个报错&#xff0c;当存在多个元素值时需要使用索引进行获取到一个元素值时在使用 item。 1.2、元素值运算 tensor对元素值的运算&#xff1a;…...

工业生产安全-安全帽第二篇-用java语言看看opencv实现的目标检测使用过程

一.背景 公司是非煤采矿业&#xff0c;核心业务是采选&#xff0c;大型设备多&#xff0c;安全风险因素多。当下政府重视安全&#xff0c;头部技术企业的安全解决方案先进但价格不低&#xff0c;作为民营企业对安全投入的成本很敏感。利用我本身所学&#xff0c;准备搭建公司的…...

单片机学习笔记 9. 8×8LED点阵屏

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...

c++ 力扣题(1)JZ64

JZ64求123...n_牛客题霸_牛客网 因此不能使用等差求和&#xff08;禁掉位运算为了禁掉等差求和&#xff0c;右移一位就是等差除二&#xff09;、循环、递归来解决 我们运用到在 统计构造次数所学到的内容&#xff1a; 1.可以利用静态全局变量的思想来做 2.构造n次对象&…...