Python简介与入门

news2024/10/10 15:31:57

        如果你要用计算机做很多工作,最后你会发现有一些任务你更希望用自动化的方式进行处理。比如,你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理。也许你想要编写一个小型的自定义数据库、一个特殊的 GUI 应用程序或一个简单的小游戏。
        如果你是一名专业的软件开发者,可能你必须使用几种C/C++/JAVA 类库,并且发现通常编写/编译/测试/重新编译的周期是如此漫长。也许你正在为这些类库编写测试用例,但是发现这是一个让人烦躁的工作。又或者你已经完成了一个可以使用扩展语言的程序,但你并不想为此重新设计并实现一套全新的语言。那么 Python 正是你所需要的语言。

一、Python 初识

1.Python 的优势

        虽然 Python 易于使用,但它却是一门完整的编程语言;与 Shel1 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。另一方面,Python 提供了比 更多的错误检査,并且作为一门 高级语言,它内置支持高级的数据结构类型,例如:灵活的数组和字典。因其更多的通用数据类型,Pvthon比 Awk 甚至 Perl 都适用于更多问题领域,至少大多数事情在 Python 中与其他语言同样简单。
        Python 允许你将程序分割为不同的模块,以便在其他的 Python 程序中重用。Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习 Python 编程的示例。这些模块提供了诸如文件 I/0、系统调用、Socket 支持,甚至类似 Tk的用户图形界面(GUI)工具包接口。
        Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。

2.Python的特性

        Python 让程序编写的紧凑和可读。用 Python 编写的程序通常比同样的(、C++ 或 Java 程序更短小,这是因为以下几个原因:

  • 高级数据结构使你可以在一条语句中表达复杂的操作;
  • 语句组使用缩进代替开始和结束大括号来组织;
  • 变量或参数无需声明。

3.Python 的应用领域

Python 是一种通用编程语言,具有广泛的应用领域。也是一门学习曲线非常平滑的编程语言,正因如此,Python 也成了众多编程入门同学的首选!

(1)数据科学和机器学习

        Python 在数据科学和机器学习领域非常流行,因为它有许多强大的库和框架,如 NumPy、Pandas、Scikit-learn 和 TensorFlow 等。

(2)web 开发

        Python 也可以用于 Web 开发,因为它有 Django 和 Flask 等流行的 web 框架。

(3)自动化测试

        Python 还可以用于自动化测试,因为它有许多流行的测试框架,如 unittest 和 pytest 等。

(4)网络爬虫

        Python 还可以用于网络爬虫,因为它有许多强大的库和框架,如 Beautifulsoup、Scrapy 和Requests 等。

(5)游戏开发

        Python 也可以用于游戏开发,因为它有许多流行的游戏引擎,如 Pygame 和 Panda3D 等。

(6)数据分析

        Python 还可以用于数据分析,因为它有许多流行的库和框架,如 NumPy、Pandas 和 Matplotlib 等。

(7)数据可视化

        Python 还可以用于数据可视化,因为它有许多流行的库和框架,如 Matplotlib、seaborn 和 Bokeh菜。

二、Linux环境中安装 Python

1.下载 Python3.11.6

可以在 Python 的官方网站下载,网址是 http://www.python.org

2.安装依赖包

(1)设置 yum 仓库

设置好 centos 基础源和 epel 扩展源,本案例使用阿里的更新源。

(2)安装依赖包
[root@localhost ~]# yum -y install gcc zlib zlib-devel libffi libffi-devel

#安装源码编译需要的编译环境

[root@localhost ~]# yum -y install readline-devel

#可以解决后期出现的方向键、删除键乱码问题,这里提前避免。

[root@localhost ~l# yum -y install openssl-devel openssl11 openssl11-devel
[root@localhost ~]# export CFLAGS=$(pkg-config--cflags openssl11)
[root@localhost ~]# export LDFLAGS=$(pkg-config --libs openssl11)

#设置编译 FLAG,以便使用最新的 openssl库

3.解压 Python 压缩包

解压 Python-3.11.6.tgz,命令如下:

[root@localhost ~]# tar xvf python-3.11.6.tar.xz

4.安装Python

[root@master home]# cd python-3.11.6/
[root@master Python-3.11.6]# ./configure --prefix=/usr/local/python3

此处有可选配置项,含义如下:

--enable-optimizations:用 PROFILE TASK 启用以配置文件主导的优化(PGO)

--with-lto:在编译过程中启用链接时间优化(LTO)

--enable-shared:启用共享Python库libpython 的编译

--with-ssl:编译安装 ssl 模块到 Python3 中(默认)

5.编译及安装

编译安装 Python-3.11.6,命令如下:

[root@master Python-3.11.6]# make
[root@master Python-3.11.6]# make install

        如果主机上已经安装有其他版本的 python3,注意是3的版本,要使用 altinsta1l 而不是insta11 。二者的一个重要区别在于,后者会创建符号链接,将 python3 等命令链接到正在安装的新版本 Python 3 上,这可能会破坏系统。如果是 python2 的版本,不会有此影响。

6.建立软连接

建立相关软连接,命令如下:

[root@master Python-3.11.6]#In-s /usr/local/python3/bin/python3 /usr/bin/python3
[root@master Python-3.11.6]# 1n-s /usr/local/python3/bin/pip3 /usr/bin/pip3

7.测试 Python3 运行

安装设置完毕,测试 Python3 的运行情况,命令如下:

proot@master Python-3.11.6]# python3
Python 3.11.6(default,Apr 22 2020,17:24:20)[GCC 4.8.5 20150623(Red Hat 4.8.5-16)] on linux
Type "help","copyright","credits" or "license" for more information.
>>> print('hello world')
>>> hello world

备注:
Ctrl+D 或exit()退出

8.设置国内 pip 更新源

本案例使用阿里的更新源,

[root@localhost ~]# cat<<EOF>/root/.config/pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[instal1]
trusted-host=mirrors.aliyun.com

备注:
使用如下命令也可以
pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple

pip3 config set install.trusted-host mirrors.aliyun.com

9.更新 pip 版本(必须更新)

[root@localhost ~]# pip3 install --upgrade pip

10.测试更新源

安装一个获取日期区间数据的 pandas 模块

[root@localhost ~l# pip3 install pandas

提示:安装结束后给主机做一个快照。

三、windows 系统中安装Python

1.安装 Python 程序

(1)双击python 安装包 python-3.11.6-amd64
(2)安装完成的界面

2.安装vscode 编译器

        在 Linux 系统中,我们可以直接使用 vi 编辑器对 Python 代码进行编写,在 Windows 系统中,Python提供了 IDLE 编译器,但是使用起来很不友好,我们可以安装一个 vscode 编译工具,对 Python 进行编译安装过程如下。

(1)双击安装包VscodeUsersetup-x64-1.85.0,进入安装界面

(2)设置安装路径

(3)选择开始菜单文件夹

此步骤直接点下一步。

(5)选择附加任务

(6)开始安装

(7)安装完后直接开始运行

3.安装vscode 插件

(1)安装 python 插件

如图所示点击 Extentions(扩展)按钮,在搜索区域输入“python”,然后选择 Python 插件进行安装,有了这个插件,就可以在 vscode 中编辑 python 代码了。

(2)安装black format 插件(选装)

用同样的方法安装一个“black format”插件,该插件可以使用“shift+A1t+F”组合键对 Python 代码进行格式化的处理,自动整理代码的书写规范,让代码看上去更美观。

4.设置国内更新源

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors.aliyun.com
pip install --upgrade pip

五、Python 的语法基础

1.标识符

        所谓的标识符就是对变量、常量、函数、类 等对象起的名字。
        首先必须说明的是,Python 语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同,python 对于表示标识符的命名有如下规定:

  • 标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(),而不能使用空格、连字符、标点符号、引号或其他字符。
  • 标识符的第一个字符不能是数字,而必须是字母或下划线。
  • Pvthon 区分大小写。
  • 不能将 Python 关键字用作标识符。

        例如:a,abc,id ,等都是可以的。但是例如: $a(以$开头的是 PHP 的变量语法),~abc123a 都是不可以的。这一点一定要注意。可能有人会问,中文可以作为标识符吗?答案是可以的。

2.Python 保留字

        Python 保留字,也叫关键字,是 Python 语言官方确定的用作语法功能的专用标识符,不能把它们用作任何自定义标识符名称。关键字只包含小写字母。可以通过 python 提供的库输出这些关键字:

        Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字。如下所示:

3.注释

        我们写的程序里,不光有代码,还要有很多注释。注释有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的。

(1)单行注释

Python 中,以符号“#”为单行注释的开始,从它往后到本行的末尾,都是注释内容。语法如下

(2)多行注释

Python 没有真正意义上的多行注释(块注释),语法如下

4.语句与缩进

(1)语句

        在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。这里强调一下,python的标准语言不需要使用分号。简单的换行就表示语句已经结束。

(2)代码块

        为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束。比如:

        Python 最具特色的语法就是 使用缩进来表示代码块,不需要使用大括号像 PHP 、JAVA 等语言都
是使用({})来表示代码块的。python!一般用四个空格来缩进。在pycharm或vscode 中tab 自动回转成 4 个空格。在 Linux 环境中,如 VIM 编辑器,建议使用空格。

(3)多行语句

前面的例子中都是多条语句在同一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠(\)来实现多行语句。

执行结果:

ni haowo de ming zi jiao zhang san

5.pass 语句

        pass 语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用 pass语句:

  • 当你不知道后面的代码怎么写的时候
  • 当你不需要写代码细节的时候
  • 当语法必须,又没有实际内容可写的时候
  • 其它的一些你觉得需要的场景

六、Python 常用的数据类型

Python 内置的数据类型有数字、字符串、元组、列表和字典。

1.数字

        数字类型包括整型、浮点型、布尔型等,声明时由 Python 内置的基本数据类型管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可。

(1)整型和浮点型

整数使用整型表示,有小数位使用浮点型表示。
示例 1:为变量赋予整型和浮点型的数值
示例代码如下:

        示例 1 的代码中,首先定义了变量 x=123。此时的 x 值是整数,x 即是整型变量。当执行语句x=1.98 时,x 又成为了浮点型变量,由此可以看出,变量的类型是能改变的,与 Java、c#语言等是有区别的。这是因为当 Python 给已经存在的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用id 函数输出,

(2)布尔型

布尔型是用于逻辑运算,有2个值True、False,表示真和假。

示例 2:为变量赋布尔型数值

示例代码如下:

执行结果:

        代码定义了变量 f=True。if 是判断语句,为真则执行 print 语句,最后输出的是 1,说明语句执行成功。

使用比较运算符返回的结果是布尔值。
示例 3:获取比较运算符的运算结果示例代码如下:

(3)Python 运算符

        Python 中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/(加、减、乘、除)和小括号组成,运算顺序也是先乘除后加减、小括号优先。下面演示几个示例说明它们的使用方法。

示例 4:四则运算示例代码如下:

Python 还有两个算术运算符是%和**,分别实现求模和求幂运算。

求模运算取余数,求幂是计算累乘的结果。
示例 5:求模和求幂运算示例代码如下:

2.字符串

        Python 中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用。

(1)字符串使用

在 Python 中有 3 种表示字符串的方式,单引号、双引号、三引号。

示例6:Python 字符串的 3 种表现方式

示例代码如下:

        示例 6 中,变量 name 使用单引号,变量 address 使用双引号,变量 content 使用三引号,它们都是合法的 Python 字符串类型。需要注意的是,单引号和双引号作用是一样的, 可以根据习惯使用。但定义多行文字时,必须要使用三引号。

(2)使用字符串注意事项

        字符串的定义方式单引号、双引号、三引号大部分情况下作用是相同,但在特殊情况中使用也有所区别,下面列出需要注意的地方。

1)单引号、双引号、三引号都是成对出现的。

如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。如下代码就会报错:

2)如果字符串中单独出现单引号或双引号,可以使用另一种引号定义。

示例7:使用引号定义字符串的值
示例代码如下:

        字符串变量 title1中出现了单引号,需要使用双引号定义,字符串变量 title2 中出现了双引号,需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义。

3)当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义。

Python中的转义字符是“\”,只要在特殊字符前面加上“\”,就可以输出原字符,而不需关注定义字符串使用的是单引号还是双引号。

示例 8:使用转义字符为字符串赋值示例代码如下:

备注:
Python 的常用转义字符
\  (在行尾时)续行符

\\  反斜杠符号

\'  单引号

\"  双引号

\n  换行

\v  纵向制表符

\t  横向制表符

\r  回车 

(3)字符串的其它用法

Python 的字符串可以进行乘法(*)的操作,使用一个整型数字和字符串相乘。

例如用数字 3 乘字符串“a”,结果是字符串”aaa”,等同于将字符串“a”连接了 3 遍,代码和运行结果如下:

3.列表

列表(list)是 Python 中非常重要的数据类型,通常作为函数的返回类型。由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。

(1)列表的定义

列表是 Python 内置的一种数据结构,由中括号“[]”定义,元素以逗号分开,语法如下。

语法:
列表名 =[元素 1,元素 2,…

(2)列表的取值
1)列表中的数据是有序的,按定义时的顺序排好,可以单独取出某一位置元素的数值。

语法:
列表名[索引位置]
示例 9:使用列表保存元素的数值,并输出示例代码如下:

        示例 9代码中,定义的列表 num 中,存储有三个字符串,其顺序是'001’、'002’、'003’取值时用列表名 num 加上中括号,数字表示索引位置。需要注意:列表中元素的是由 0 开始,以 1为单位依次递增。

2)可以获取列表指定范围的一组元素,语法如下。

语法:
列表名[起始位置:终止位置]
可以输出起始位置到终止位置前的元素,不包括终止位置,

示例 10:输出列表中指定位置的元素
示例代码如下:

示例 10 中,num 列表后的[0:1]表示获取由索引 6 开始至索引位置 1 之前的元素,所以只能取到第 1 个元素;而[0:2]则可以取到索引 2 之前的元素,其它的与此相同。

(3)修改列表元素值

可以修改指定位置的列表元素值,语法如下。
语法:
列表名[索引位置]=值
示例 11:修改列表中指定位置的元素值示例代码如下:

        定义列表 num 时,索引位置 0 的元素是“001”,修改它的值为“004”后,索引位置 0 元素的值变为“004”。

(4)添加列表元素

可以采用两种方式,添加向列表中添加元素。

1)可以把一个元素添加到列表的最后 ,语法如下。

语法:
列表名.append(元素值)
示例 12:将元素添加到列表的最后位置示例代码如下:

示例 12 的代码执行语句 num.append('004')之后,字符串“804”被添加到列表的末尾。

2)在列表指定位置前插入新的元素,语法如下。

语法:
列表名.insert(索引位置,元素值)

示例 13:将元素添加到列表中指定的位置示例代码如下:

        示例 13 中,语句 num.insert(1,'004')的作用是在列表 num 的索引位置 1 之前插入字符串'004’。初始时,num 有 3 个元素,索引位置 1 的当前元素是’002',执行示例 16 的代码后, 字符串'004’插入到'002’的前面。

(5)删除列表元素

可以删除列表指定索引位置的元素,语法如下。

语法:
del 列表名[索引位置]
示例 14:删除列表中第2个元素示例代码如下:

        示例 14 中,首先,执行语句 del num[1],使用 del 删除索引为 1 的元素’002’输。然后,东出列表 num 中所有元素时,列表中已经不存在’002’元素。

(6)查找列表元素

使用 in 关键字可以査找列表中是否存在指定的数值,语法如下。

语法:
元素值 in 列表名

        返回布尔类型 True 或 False。如果査找到,返回 True;否则,返回 False。示例 15:使用关键字in 查找列表中是否存在指定的数值

示例代码如下:

        执行示例 15 的代码,因为字符串'001’在列表中存在,返回 True。而由于字符串'004'在列表中不存在,则返回 False。

(7)合并列表

        多个列表可以使用加号(+)进行合并,加号后面的列表元素会追加到前面列表的后面。

示例 16:使用+合并两个列表

示例代码如下:

        示例 16 中,定义了两个列表 num1 和 num2。使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。

(8)重复列表

使用星号(*)可以对列表进行重复操作,与单独字符串乘法操作相似。

示例 17:使用*重复输出列表的元素值
示例代码如下:

示例 17 中,语句 num = num1*5 表示为 num 赋值时,将 num1 的元素重复出现 5 遍。

(9)列表常见问题

        Python 中,使用列表实现各种操作时,可能会得到意外的结果。其中最常见的问题是索引越界。索引越界是使用列表时经常犯的一个错误。如列表中有 3个元素,因为索引位置是从 0开始计算,所以最大的索引值是 2。如果索引值大于2,表示索引是越界的,程序无法执行。

示例 17:索引越界

1)索引越界

示例代码如下:

2)负值索引

索引值为 5 时,大于最大的索引值 2,程序报索引越界错误。那么,当使用小于。 的负数索引时会不会出错呢?答案是不会,因为 Python 列表的负数索引表示的是由列表的末尾进行反向的取值,也就是最后一个元素的位置也可以使用索引-1 取值,倒数第二个索引是-2, 向前依次递减,示例代码如下:

3)当获取列表指定范围的一组元素时,不存在列表索引越界的问题,示例代码如下:

        列表 num 中有 3个元素,获取列表范围时指定了最大位置是 5,超出了最大索引值,程序可以正常执行,并没有报错。

4)获取列表指定范围时可以同时使用正数和负数索引,示例代码如下:

表示获取由索引位置0元素开始,到-1元素之前的所有元素。

5)列表元素也可以是列表,示例代码如下:

        上述案例定义了列表 num,它里面的每一个元素也是一个列表,使用 num[0]表示取到的是第一个元素值,对应的是一个列表。使用 num[8][0]表示取到第一个元素列表的第一个值,使用 print num[2][1]表示取到第三个列表的第二个元素值。

4.元组

        元组(tuple)和列表类似,也是 Python 的一种数据结构,由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作。元组通常表示一行数据,而元组中的元素表示不同的数据项。

(1)元组的创建

元组由关键字和小括号定义,一旦创建后就不能修改元组的内容,定义的语法如下。

语法:
元组名 =(元素1,元素 2,...)
        与列表最大的不同是:元组是写保护的,元组一旦创建就不能做任何的修改。下面定义一个元组,尝试对它修改,示例代码如下:

        定义元组 num 后,尝试对索引位置 8的元素值进行修改,程序直接报错。元组与列表的区别如表下表所示。

        在使用时元组与列表区别并不大,那么为什么要使用元组呢?主要是因为元组是不可变的,操作速度比列表快,而且因为它不可以修改,数据要更加安全,所以要根据实际情况决定是使用元组还是列表,使程序更加高效合理。

(2)元组的操作
1)元组具有不可变性,所以相比列表的操作要少,其中取值操作与列表是完全相同的,示例代码如下:

与列表的取值操作完全相同,都是使用方括号、索引获取指定位置的数值。

2)元组不允许删除元组中的元素值,但是可以删除整个元组,语法如下。

语法:
del 元组名

实例18:元组删除报错代码如下:

        定义元组 num 后,删除其中的某一个元素程序报错。删除整个元组后,再想使用元组, 报未定义变量的错误。

3)元组和列表可以做互相转换操作,元组转换为列表的语法如下。

语法:
list(列表名)
示例 19:元组转换为列表代码如下:

        这段代码首先定义了元组 num,然后把它转换为列表 listNum,对列表 listNum 可以做修改元素的操作,使用 type()函数输出了元组的列表的类型。

列表转换为元组的语法如下。
语法:
tuple(列表名)
示例 25:列表转换为元组
代码如下:

可以看到转换是成功的,输出的类型正确。

5.字典

        字典(dict)是 Python 中重要的数据类型,字典是由“键-值”对组成的集合,字典中的值通过键来引用。

(1)字典的创建

        字典的每个元素是键值对(key-value)组成,键值之间使用冒号分隔,“键值对”之间用 逗号隔开,并且被包含在一对花括号中。键是唯一的,不能存在多个相同的值,且它的值是无序的,键可以是数字、字符串、元组,一般用字符串作为键。定义的语法如下。

语法:
字典名 = {键 1:值 1,键 2:值 2,…}

示例代码如下:

        定义了一个字典 mobile,存储的键是姓名、值是电话号码,由此,姓名和电话号码就构成了对应的关系。可以使用 type()函数查看到它的类型是'dict’。

(2)字典的取值操作

        字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,而字典是通过键获取对应的值。
示例代码如下:

        需要注意的是:键是唯一的,而不同键的值却可以相同,当定义多个键相同时,字典中 只会保留最后一个定义的键值对,示例代码如下:        

(3)字典的添加、修改、删除操作
1)字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加。

示例代码如下:

字典键值对的键名是区分大小写的。同一个单词,如果大小写不同,则被视为不同的键,

示例代码如下:

2)修改字典中的元素,直接使用存在的键赋值

示例代码如下:

3)删除字典中的元素,使用 del 函数

示例代码如下:

使用 del 函数删除键“Tom”,字典中的对应键不存在了。

4.字典的常见问题

字典不能使用“+”运算符执行连接操作。
示例代码如下:

从上面代码的运行结果可以得到结论:使用“+”运算符直接报错。

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

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

相关文章

2025年人工智能行业的发展趋势预测以及中小企业的应对策略

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 ​ 进入2024年的第四季度&#xff0c;人工…

python数据分析与可视化工具介绍-numpy库

NumPy&#xff08;Numerical Python的简称&#xff09;&#xff0c;是科学计算基础的一个库&#xff0c;提供了大量关于科学计算的相关功能&#xff0c;例如&#xff0c;线性变换&#xff0c;数据统计&#xff0c;随机数生成等。其提供的最核心的类型为多维数组类型&#xff08…

Android Studio 打包混淆失效问题

项目场景&#xff1a; 通过 Python 脚本运行打包 Apk &#xff0c;实现动态配置各个版本的 Apk。 问题描述 通过 Python 脚本打包编译 Apk&#xff0c;开启混淆后&#xff0c;打包成功&#xff0c;反编译出来的 Apk 并没有被混淆。 原因分析&#xff1a; 首先确认打包混淆…

矩阵系统源码搭建,oem贴牌,技术指导

一、技术选型与整合 多种技术的融合 矩阵系统通常需要整合多种技术&#xff0c;包括前端技术、后端技术、数据库技术、服务器技术等。选择合适的技术栈并确保它们能够良好地协同工作是一个挑战。例如&#xff0c;前端可能使用 React 或 Vue.js&#xff0c;后端可能使用 Java Sp…

聚观早报 | 台积电9月份营收;联发科发布天玑9400

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 10月10日消息 台积电9月份营收 联发科发布天玑9400 vivo X200系列将全系标配原子岛 骁龙8 Gen4或改名“骁龙8至尊…

[ComfyUI]看惯AI味女神,回归现实,聊聊去AI胶皮味现实真人写真

随着人工智能技术的飞速发展&#xff0c;图像生成与反推技术已经取得了显著的进展。然而&#xff0c;有时候我们也会怀念那些真实、自然的人像照片。今天&#xff0c;我们为您带来了一篇关于[ComfyUI]如何拍摄去AI胶皮味现实真人写真的文章&#xff0c;帮助您回归现实&#xff…

Redis:分布式 - 哨兵

Redis&#xff1a;分布式 - 哨兵 概念哨兵 Docker 搭建哨兵分布式选举流程 概念 Redis 的主从复制模式下&#xff0c;一旦主节点由于故障不能提供服务&#xff0c;需要人工进行主从切换&#xff0c;同时大量的客户端需要被通知切换到新的主节点上&#xff0c;对于上了一定规模…

美发店管理升级:SpringBoot技术实现

3系统分析 3.1可行性分析 通过对本美发门店管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本美发门店管理系统采用SSM框架&#xff0c;JAVA作为开发语…

产业园区数字化转型:破解传统园区发展瓶颈

在当今数字化浪潮汹涌澎湃的时代&#xff0c;传统产业园区面临着诸多发展瓶颈&#xff0c;而产业园区数字化转型成为了突破这些困境的关键路径。 传统产业园区往往存在着管理效率低下、资源配置不合理、企业间协同困难以及创新能力不足等问题。这些问题就像一道道枷锁&#xf…

胃阴亏则百病生!阴虚火旺、胃病多发、灼痛?秋冬滋补季,用“仙草”养养胃~

中国有句俗话“十人九胃”&#xff0c;现代社会作息混乱、饮食无度&#xff0c;胃病的患病率也变得越来越高。 经常熬夜&#xff0c;饮食不规律&#xff0c;暴饮暴食&#xff0c;肠胃不适&#xff0c;面色差~ 喜食辛辣&#xff0c;总吃烧烤&#xff0c;烘烤、辛辣热性的食物&…

线下旅行社增长:单品牌半年新开500家门店,净利润增幅超307%

实体门店集体下行&#xff0c;旅行社缘何能越开越多 前言 线上流量井喷背景下&#xff0c;旅游业却“反其道而行”&#xff0c;重燃线下旅行社战火。 文化和旅游部市场管理司今年9月发布的《2024年第二季度全国旅行社统计调查报告》显示&#xff0c;截至2024年6月30日&#…

WPF中的常用控件

控件分类 在第一篇文章.Net Core和WPF介绍中的WPF的功能和特性部分根据功能性介绍了WPF的控件 名称。 在接下来的文章中&#xff0c;将会详细的介绍各个控件的概念及使用。 主要包括&#xff1a; 内容控件&#xff1a;Label、Button、CheckBox、ToggleButton、RadioButton、…

Large AI Model Empowered Multimodal Semantic Communications——基于大模型的多模态语义通信框架

1. 背景 本文讨论了大规模AI模型在多模态语义通信&#xff08;SC&#xff09;系统中的应用&#xff0c;处理不同类型的数据&#xff08;文本、音频、图像、视频&#xff09;以实现低延迟、高质量的语义层次通信。提出了一个基于大模型的多模态SC&#xff08;LAM-MSC&#xff09…

心理学基础

一&#xff0c;三观 三观包括世界观、人生观、价值观。 1&#xff0c;世界观 世界观‌是人们对整个世界的总的看法和根本观点。可以划分为两种根本对立的世界观类型&#xff0c;即唯心主义世界观和唯物主义世界观。 2&#xff0c;人生观 人生观是人们在实践中形成的对于人…

[C高手编程] C语言数据结构:排序算法与查找算法

&#x1f496;&#x1f496;⚡️⚡️专栏&#xff1a;C高手编程-面试宝典/技术手册/高手进阶⚡️⚡️&#x1f496;&#x1f496; 「C高手编程」专栏融合了作者十多年的C语言开发经验&#xff0c;汇集了从基础到进阶的关键知识点&#xff0c;是不可多得的知识宝典。如果你是即将…

开发一个exe应用工具,pdf转图片工具,pdf截成单个图片,然后全量修整没用的白边

pdf转图片工具 图片裁剪白边工具 window系统exe应用工具下载地址https://download.csdn.net/download/websmallrabbit/89864476如果有帮助到您还请动动手帮忙点赞&#xff0c;关注&#xff0c;评论转发&#xff0c;感谢啦&#xff01;&#x1f495;&#x1f495;&#x1f495;&…

记一次详细的实战渗透

声明&#xff1a;本文仅限于技术讨论与分享&#xff0c;严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负&#xff0c;与本号及原作者无关。 前言 一次授权的渗透测试&#xff0c;过程比较详细&#xff0c;充满了巧合&#xff0c;也算比较有意思直接记录一下&a…

SpringBoot访问web中的静态资源

SpringBoot访问web中的静态资源&#xff0c;有两个方式&#xff1a; 1、SpringBoot默认指定了一些固定的目录结构&#xff0c;静态资源放到这些目录中的某一个&#xff0c;系统运行后浏览器就可以访问到 ① 关键是SpringBoot默认指定的可以存放静态资源的目录有哪些&#xff…

这几个被淘汰的Python库,请不要再用!

随着每个 Python 版本的发布&#xff0c;都会添加新模块&#xff0c;并引入新的更好的做事方式&#xff0c;虽然我们都习惯了使用好的旧 Python 库和某些做事方式&#xff0c;但现在也时候升级并利用新的和改进的模块及其特性了。 这里插播一条粉丝福利&#xff0c;如果你正在…

图片美化SDK解决方案,赋能H5与小程序极致体验

无论是社交媒体分享、电商产品展示&#xff0c;还是个人日常生活的记录&#xff0c;一张经过精心美化的图片总能瞬间吸引眼球&#xff0c;传递出更加丰富和动人的信息。如何在不增加应用体积、不牺牲用户体验的前提下&#xff0c;为H5页面和小程序提供媲美原生APP的图片美化功能…