Python 简介与入门

目录

[一、Python 初识](#一、Python 初识)

[1、Python 的优势](#1、Python 的优势)

[2、Python 的特性](#2、Python 的特性)

[3、Python 的应用领域](#3、Python 的应用领域)

[二、Linux 环境中安装 Python](#二、Linux 环境中安装 Python)

[1、下载 Python3.11.6](#1、下载 Python3.11.6)

2、安装依赖包

[3、解压 Python 压缩包](#3、解压 Python 压缩包)

[4、安装 Python](#4、安装 Python)

5、编译及安装

6、建立软链接

[7、测试 Python3 运行](#7、测试 Python3 运行)

[8、设置国内 pip 更新源](#8、设置国内 pip 更新源)

[9、更新 pip 版本(必须更新)](#9、更新 pip 版本(必须更新))

[三、Windows 系统中安装 Python](#三、Windows 系统中安装 Python)

[1、安装 Python 程序](#1、安装 Python 程序)

[(1)双击python 安装包 python-3.11.6-amd64](#(1)双击python 安装包 python-3.11.6-amd64)

(2)安装完成的界面

[2、安装 vscode 编译器](#2、安装 vscode 编译器)

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

(2)设置安装路径

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

(4)选择附加任务

(5)开始安装

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

[3、安装 vscode 插件](#3、安装 vscode 插件)

(1)简体中文

[(2)安装 python 插件](#(2)安装 python 插件)

4、设置国内更新源

[四、Python 语法基础](#四、Python 语法基础)

1、标识符

[2、Python 保留字](#2、Python 保留字)

3、注释

(1)单行注释

(2)多行注释

4、语句与缩进

(1)语句

(2)代码块

(3)多行语句

[5、pass 语句](#5、pass 语句)

[五、Python 常用的数据类型](#五、Python 常用的数据类型)

1、数字

(1)整型和浮点型

(2)布尔型

[(3)Python 运算符](#(3)Python 运算符)

2、字符串

(1)字符串使用

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

①单引号、双引号、三引号都是成对出现的

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

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

(3)字符串的其他用法

3、列表

(1)列表的定义

(2)列表的取值

①列表中的数据是有序的,按第定义是的顺序拍好,可以单独取出来某一位置元素的数值。

②获取列表指定范围的一组元素

(3)修改列表元素值

(4)添加列表元素

①把一个元素添加到列表的最后

②在列表指定位置前插入新的元素

(5)删除列表元素

(6)查找列表元素

(7)合并列表

(8)重复列表

(9)列表常见问题

①索引越界

②负值索引

③当获取列表指定范围的一组元素时,不存在列表索引越界的问题

④获取列表指定范围时可以同时使用正数和负数索引

⑤列表元素也可以是列表


一、Python 初识

1、Python 的优势

Python 易于使用,是一门完整的编程语言;与 Shell 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。第二,Python 提供了比 C 更多的错误检查,并且作为一门高级语言,它内置支持高级的数据结构类型,例如:灵活的数组和字典。因其更多的通用数据类型,Python比 Awk 甚至 Perl 都适用于更多问题领域,至少大多数事情在 Python 中与其他语言同样简单。

Python 允许将程序分割为不同的模块,以便在其他的 Python 程序中重用。Python 内置提供了大量的标准模块,可以将其用作程序的基础,或者作为学习 Python 编程的示例。这些模块提供了诸如文件 I/0、系统调用、Socket 支持,甚至类似 Tk 的用户图形界面(GUI)工具包接口。

Python 是一门解释型语言,因为无需编译和链接,所以可以在程序开发中节省宝贵的时间。Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。

注:Tkinter(也叫 Tk 接口)是 Tk 图形用户界面工具包标准的 Python 接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。

2、Python 的特性

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

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

3、Python 的应用领域

Python 是一种通用编程语言,具有广泛的应用领域。如下领域:

数据科学和机器学习

Web开发

自动化测试

网络爬虫

游戏开发

数据分析

数据可视化

二、Linux 环境中安装 Python

1、下载 Python3.11.6

以3.11.6版本的python为例,可在Python 的官方网站下载,网址为 http://www.python.org

2、安装依赖包

复制代码
[root@localhost ~]# dnf -y install gcc zlib zlib-devel libffi libffi-devel
    #安装源码编译需要的编译环境
[root@localhost ~]# dnf -y inatall readline-devel
    #解决后期出现的方向键、删除键乱码问题、这里提前避免
[root@localhost ~]# dnf -y install openssl-devel

3、解压 Python 压缩包

复制代码
[root@localhost ~]# tar xvf Python-3.11.6.tar.xz

4、安装 Python

复制代码
[root@localhost ~]# cd Python-3.11.6
[root@localhost 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、编译及安装

复制代码
[root@localhost Python-3.11.6]# make && make install

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

6、建立软链接

复制代码
[root@localhost Python-3.11.6]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost Python-3.11.6]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

7、测试 Python3 运行

复制代码
[root@localhost Python-3.11.6]# python3
Python 3.11.6 (main, Dec 18 2024, 22:06:12) [GCC 12.3.1 (openEuler 12.3.1-62.oe2403sp1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello world')
hello world
>>> exit()
[root@localhost Python-3.11.6]# 

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

8、设置国内 pip 更新源

复制代码
[root@localhost Python-3.11.6]# cat <<EOF>> /root/.config/pip/pip.conf
> [global]
> index-url = http://mirrors.aliyun.com/pypi/simple/
> 
> [install]
> trusted-host=mirrors.aliyun.com
> EOF

注:使用以下命令也可以

复制代码
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

注:安装结束后可以做一个快照。

三、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)选择开始菜单文件夹

(4)选择附加任务

(5)开始安装

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

3、安装 vscode 插件

(1)简体中文

可以先安装一个简体中文的插件

(2)安装 python 插件

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

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

4、设置国内更新源

复制代码
pip config set gloobal.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 对于表示标识符的命名有如下规定:

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

例如:a, abc ,_id,等都是可以的。但是例如: a(以开头的是 PHP 的变量语法),~abc,123a 都是不可以的。这一点一定要注意。

可能有人会问,中文可以作为标识符吗?答案是可以的。

2、Python 保留字

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

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

python 复制代码
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3、注释

(1)单行注释

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

python 复制代码
# 单行注释

(2)多行注释

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

python 复制代码
# 第一行注释
# 第二行注释
# 第三行注释

4、语句与缩进

(1)语句

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

python 复制代码
>>> a=123
>>> b=456
>>> print("hello world")

(2)代码块

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

比如:

python 复制代码
a=10
if a>5:
    print("a大于5")
else:
    print("a小于a")

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

(3)多行语句

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

python 复制代码
>>> print("ni hao\
... wo de ming zi \
... jiao zhang san")

执行结果:

python 复制代码
ni haowo de ming zi jiao zhang san

5、pass 语句

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

  • 当你不知道后面的代码怎么写的时候
  • 当你不需要写代码细节的时候
  • 当语法必须,又没有实际内容可写的时候
  • 其它的一些你觉得需要的场景
python 复制代码
a=10
if a>5:
    print("a大于5")
else:
    pass

五、Python 常用的数据类型

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

1、数字

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

(1)整型和浮点型

整数使用整型表示,有小数点使用浮点型表示。

例1:为变量赋予整型和浮点型的数值

python 复制代码
>>> x=123
>>> print(x)
123
>>> x=1.98
>>> print(x)
1.98

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

(2)布尔型

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

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

python 复制代码
>>> f=True    #注意大小写
>>> print(f)
True
>>> if(f):
...     print(1)     #注意...后有个空格
...
1

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

行成功。

使用比较运算符返回的结果是布尔值。

例3:获取比较运算符的运算结果

python 复制代码
>>> 3>4
False    #假
>>> 4.15>2.1
True    #真

(3)Python 运算符

Python 中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/(加、减、乘、除)和小括号组成,运算顺序也是先乘除后加减、小括号优先。

例 4:四则运算

python 复制代码
>>> 3>4
False
>>> 4.15>2.1
True
>>> x,y=10,2
>>> print(x+y,x*y,x/y,x-y)
12 20 5.0 8
>>> print(5+8*3)
29
>>> print((5+8)*3)
39
>>> print(5+8*3/4)
11.0

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

求模运算取余数,求幂运算是计算累乘的结果。

例5:求模和求幂运算

python 复制代码
>>> print(x%y)
0
>>> print(x%44)
10
>>> print(x%4)
2
>>> print(x**y)
100
>>> print(y**x)
1024

2、字符串

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

(1)字符串使用

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

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

python 复制代码
>>> name='zhangsan'
>>> address="lisi"
>>> content='''wangwu'''
>>> print(name)
zhangsan
>>> print(address)
lisi
>>> print(content)
wangwu

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

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

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

①单引号、双引号、三引号都是成对出现的

如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。

如下代码就会报错:

python 复制代码
>>> name="zhangsan'
  File "<python-input-37>", line 1
    name="zhangsan'
         ^
SyntaxError: unterminated string literal (detected at line 1)
>>> name="zhangsan'''
  File "<python-input-38>", line 1
    name="zhangsan'''
         ^
SyntaxError: unterminated string literal (detected at line 1)
②如果字符串种出现单独出现单引号或双引号,可以使用另一种引号定义。

例7:使用引号定义字符串的值

python 复制代码
>>> title1="let'go!"    #双引号定义
>>> print(title1)
let'go!
>>>
>>> title2='let"go!'    #单引号定义
>>> print(title2)
let"go!
>>>
>>> title3='''let'go! let"go!'''    #三引号定义
>>> print(title3)
let'go! let"go!

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

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

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

例8:使用转义字符为字符串赋值

python 复制代码
>>> title='let\'go!'    #转义字符单引号
>>> print(title)
let'go!
>>>
>>> title="let\"go!"    #转义字符双引号
>>> print(title)
let"go!

注:Python 的常用转义字符

|--------------|-------|
| 转义字符 | 作用 |
| \(在行尾时) | 续行符 |
| \\ | 反斜杆符号 |
| \` | 单引号 |
| \" | 双引号 |
| \n | 换行 |
| \v | 纵向制表符 |
| \t | 横向制表符 |
| \r | 回车 |

(3)字符串的其他用法

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

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

python 复制代码
>>> print(3*'a')
aaa

3、列表

**列表(list)**是 Python 中非常重要的数据类型,通常作为函数的返回类型。

由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。

(1)列表的定义

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

列表名=[元素1,元素2,...]

(2)列表的取值

①列表中的数据是有序的,按第定义是的顺序拍好,可以单独取出来某一位置元素的数值。

语法:

列表名[索引位置]

例9:使用列表保存元素的数值,并输出

python 复制代码
>>> num=[1,2,3]
>>> num=[1,2,3,4,5]
>>> print(num)
[1, 2, 3, 4, 5]
>>> print(num[0])
1
>>> print(num[1])
2
>>> print(num[2])
3
>>> print(num[3])
4
>>> print(num[4])
5

在上述代码定义的列表 num 中,存储有五个字符串,其顺序是1、2、3、4、5,取值时用列表名 num 加上中括号,数字表示索引位置。

注:列表中元素的是由 0 开始,以 1 为单位依次递增。

②获取列表指定范围的一组元素

语法:

列表名 [起始位置:终止位置]

可以输出起始位置到终止位置前的元素,不包括终止位置。

例10:输出列表中指定位置的元素

python 复制代码
>>> num=[1,2,3,4,5]
>>> print(num[0:1])
[1]
>>> print(num[0:2])
[1, 2]
>>> print(num[0:3])
[1, 2, 3]
>>> print(num[1:2])
[2]
>>> print(num[1:3])
[2, 3]
>>> print(num[2:5])
[3, 4, 5]

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

(3)修改列表元素值

语法:

列表名[索引位置]=值

例11:修改列表中指定位置的元素值

python 复制代码
>>> num=[1,2,3,4,5]
>>> num[0]=111
>>> print(num)
[111, 2, 3, 4, 5]

定义列表 num 时,索引位置 0 的元素是"1",修改它的值为"111"后,索引位置 0 元素的值变为"111"。

(4)添加列表元素

①把一个元素添加到列表的最后

语法:

列表名.append(元素值)

例12:将元素添加到列表的最后位置

python 复制代码
>>> num=[1,2,3,4,5]
>>> print(num)
[1, 2, 3, 4, 5]
>>> num.append(666)    #末尾添加新元素
>>> print(num)
[1, 2, 3, 4, 5, 666]

上例的代码执行语句 num.append(666)之后,字符串"666"被添加到列表的末尾。

②在列表指定位置前插入新的元素

语法:

列表名.inser(索引位置,元素值)

例13:将元素添加到列表中指定的位置

python 复制代码
>>> num=[1,2,3,4,5]
>>> num.insert(1,444)
>>> print(num)
[1, 444, 2, 3, 4, 5]
>>> num.insert(4,777)
>>> print(num)
[1, 444, 2, 3, 777, 4, 5]

在上例中,语句 num.insert(1,444)的作用是在列表 num 的索引位置 1之前插入字符串'004'。初始时,num 有 5个元素,索引位置 1的当前元素是'2',执行以上代码后,字符串 '444'插入到"2"的前面。

(5)删除列表元素

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

del 列表名[索引位置]

例14:删除列表中第2 个元素

python 复制代码
>>> num=[1,2,3,4,5]
>>> del num[1]
>>> print(num)
[1, 3, 4, 5]>>> num=[1,2,3,4,5]
>>> del num[1]
>>> print(num)
[1, 3, 4, 5]

上例中,执行语句 del num[1],使用 del 删除索引为 1 的元素'2'。然后输出列表 num 中所有元素时,列表中已经不存在'2'元素。

(6)查找列表元素

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

元素值 in 列表名

返回布尔类型 True 或 False。如果査找到,返回 True;否则,返回 False。

例15:使用关键字in查找列表中是否存在指定的数值

python 复制代码
>>> num=[1,2,3,4,5]
>>> 1 in num
True
>>> 666 in num
False

在上例的代码中,因为字符串'1'在列表中存在,返回 True。而由于字符串'666'在列表中不存在,则返回 False。

(7)合并列表

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

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

python 复制代码
>>> num1=[1,2,3,4,5]
>>> num2=[6,7,8,9,10]
>>> num3=num1+num2
>>> print(num3)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> num3=num2+num1
>>> print(num3)
[6, 7, 8, 9, 10, 1, 2, 3, 4, 5]

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

(8)重复列表

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

例17:使用*重复输出列表的元素值

python 复制代码
>>> num1=[111,222]
>>> num=num1*5
>>> print(num)
[111, 222, 111, 222, 111, 222, 111, 222, 111, 222]

(9)列表常见问题

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

例17:索引越界

①索引越界
python 复制代码
>>> num1=[1,2,3]
>>> print(num1[5])
Traceback (most recent call last):
  File "<python-input-104>", line 1, in <module>
    print(num1[5])
          ~~~~^^^
IndexError: list index out of range
②负值索引

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

示例代码如下:

python 复制代码
>>> num1=[1,2,3,4,5]
>>>
>>> print(num1[-1])
5
>>> print(num1[-2])
4
>>> print(num1[-3])
3
③当获取列表指定范围的一组元素时,不存在列表索引越界的问题
python 复制代码
>>> num=[1,2,3]
>>> num1=num[1:5]
>>> print(num1)
[2, 3]

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

④获取列表指定范围时可以同时使用正数和负数索引
python 复制代码
>>> num=[1,2,3]
>>> print(num[0:-1])
[1, 2]

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

⑤列表元素也可以是列表
python 复制代码
>>> num=[[1,2,3],[11,22,33],[111,222,333]]
>>>
>>> print(num[0])
[1, 2, 3]
>>> print(num[0][0])
1
>>> print(num[1][2])
33
>>> print(num[2][1])
222

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

4、元组

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

(1)元组的创建

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

元组名=(元素1,元素2,...)

与列表最大的不同是:元组是写保护的,元组一旦创建就不能做任何的修改。下面定义一个元组,尝试对它修改。如下:

python 复制代码
>>> num=(111,222,333)
>>> del num[0]    #删除元素
Traceback (most recent call last):
  File "<python-input-1>", line 1, in <module>
    del num[0]
        ~~~^^^
TypeError: 'tuple' object doesn't support item deletion

定义元组 num 后,尝试对索引位置 0的元素值进行修改,程序直接报错。

元组与列表的区别如表下::

|-----|---------------|-----|
| | 列表 | 元组 |
| 元素 | 方括号 | 圆括号 |
| 可变性 | 可变 | 不可变 |
| 操作 | 添加、、修改、、删除、搜索 | 搜索 |

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

5、字典

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

(1)字典的创建

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

语法如下:

字典名={键1:值1,键2:值2,...}

python 复制代码
>>> mobile={'aaa':'111','bbb':'222','ccc':'333'}
>>> print(mobile)
{'aaa': '111', 'bbb': '222', 'ccc': '333'}
>>> print(type(mobile))
<class 'dict'>

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

相关推荐
诺亚凹凸曼22 分钟前
C++ linux打包运行方案(cmake)
linux·开发语言·c++
卧式纯绿40 分钟前
卷积神经网络基础(四)
人工智能·python·深度学习·神经网络·机器学习·cnn
向哆哆1 小时前
Java 性能优化:如何利用 APM 工具提升系统性能?
java·python·性能优化
cdg==吃蛋糕1 小时前
solr自动建议接口简单使用
后端·python·flask
魔道不误砍柴功1 小时前
《理解 Java 泛型中的通配符:extends 与 super 的使用场景》
java·windows·python
坚持就完事了1 小时前
python链表
开发语言·python·链表
西西弗Sisyphus1 小时前
OpenCV 自适应背景更新 cv2.accumulateWeighted
python·opencv
硬匠的博客2 小时前
C++面向对象
开发语言·c++·单片机
芒果量化2 小时前
量化交易 - RSRS(阻力支撑相对强度)策略研究 - 源码
python·机器学习·金融