Python基础数据类型详解:数字、字符串与列表

Ada
Ada
发布时间:2026-10-14| 3人浏览过
原创

本文详细介绍Python中三大核心基础数据类型:数字、字符串和列表。内容涵盖int与float的计算规则、除法与取余操作,字符串的多种定义方式、转义字符及切片机制,以及列表的创建、索引、可变性操作与嵌套方法。通过具体代码示例,帮助开发者掌握Python数据处理的基础技能。

简介

Python广泛应用于科学计算领域,而科学计算的核心基础在于数字、字符串和列表这三种数据类型。本文将深入解析这三种数据类型的实际应用场景与操作细节。

数字

在科学计算中,数字是最基础且重要的数据类型。在Python中,最常见的数字类型包括整数(int)和浮点数(float)。

首先通过几个基本的数字运算示例来了解其表现:


In [8]: 1+1
Out[8]: 2

In [9]: 3*2 + 10
Out[9]: 16

In [10]: (65 + 23) / 4
Out[10]: 22.0

从上述示例可以看出,不包含小数部分的数值属于int类型,而包含小数部分的数值则属于float类型。

除法运算(/)始终返回浮点数类型。若需执行向下取整除法以获取整数结果(忽略小数部分),可使用 // 运算符;若需计算余数,则使用 % 运算符。


In [11]: 54 / 4
Out[11]: 13.5

In [12]: 54 // 4
Out[12]: 13

In [13]: 54 % 4
Out[13]: 2

** 运算符用于表示乘方运算:


In [14]: 4 ** 3
Out[14]: 64

我们可以将数字运算的结果赋值给特定变量,并在后续计算中直接使用该变量。


In [15]: a = 12

In [16]: b = 14

In [17]: a * b
Out[17]: 168

在交互式Python环境中,下划线 _ 代表上一次运算的输出结果:


In [17]: a * b
Out[17]: 168

In [18]: 100 + _
Out[18]: 268

除了int和float,Python还支持其他高级数字类型,例如Decimal(高精度小数)和Fraction(分数),甚至支持复数运算。

字符串

Python中字符串有三种表示形式,分别可以使用单引号、双引号或三引号来定义。


In [19]: site1 = 'www.flydean.com'

In [20]: site2= "www.flydean.com"

In [21]: site3= """www.flydean.com"""

三引号主要用于处理跨行字符串,字符串中的回车换行符会自动包含在字符串内容中。如果希望忽略行尾的换行符,可在行尾添加反斜杠 \ 进行转义。示例如下:


print("""\
Usage: thingy [OPTIONS]
  -h      Display this usage message
  -H hostname    Hostname to connect to
""")

若需要进行字符转义,可以使用反斜杠 \。


In [22]: site4 = "www.\"flydean\".com"

In [23]: site4
Out[23]: 'www."flydean".com'

如果希望前置反斜杠的字符不被解释为特殊转义字符,可以使用原始字符串(Raw String)方式,即在引号前添加字母 r。


In [24]: print(r"www.\"flydean\".com")
www.\"flydean\".com

字符串可以通过 + 运算符进行连接,也可以使用 * 运算符进行复制操作:


In [25]: "www" + "flydean.com"
Out[25]: 'wwwflydean.com'

In [26]: "www.flydean.com" * 3
Out[26]: 'www.flydean.comwww.flydean.comwww.flydean.com'

相邻的两个或多个字符串字面值(即用引号包裹的字符序列)会自动连接在一起。


In [27]: "www" "flydean.com"
Out[27]: 'wwwflydean.com'

需要注意的是,上述自动连接操作仅对字符串字面值有效,若涉及变量则会导致语法错误。

字符串被视为由字符组成的序列,因此可以通过 string[index] 的形式访问特定位置的字符。


In [28]: site5 = "www.flydean.com"

In [29]: site5[3]
Out[29]: '.'

当索引值为负数时,计数方向将从字符串末尾开始向头部进行:


In [30]: site5[-3]
Out[30]: 'c'

由于 -0 与 0 等效,因此负数索引从 -1 开始计算。

除了索引访问,字符串还支持切片操作。索引用于获取单个字符,而切片用于获取子字符串:


In [31]: site5[1:5]
Out[31]: 'ww.f'

需注意,切片结果包含起始索引对应的字符,但不包含结束索引对应的字符。因此,s[:i] + s[i:] 的结果始终等于原字符串 s。


In [33]: site5[:4]+site5[4:]
Out[33]: 'www.flydean.com'

切片的索引具有默认值,若省略起始索引,默认值为 0。

若使用的索引值超出字符串长度范围,将会引发越界错误。


In [34]: site5[100]
---------------------------------------------------------------------------
IndexError        Traceback (most recent call last)
<ipython-input-34-fc1f475f725b> in <module>()
----> 1 site5[100]

IndexError: string index out of range

然而,切片操作中的越界索引会被自动处理,不会报错:


In [36]: site5[:100]
Out[36]: 'www.flydean.com'

由于字符串是不可变对象,我们无法通过索引赋值的方式直接修改字符串内容:


In [37]: site[2] = "A"
---------------------------------------------------------------------------
TypeError         Traceback (most recent call last)
<ipython-input-37-9147d44bd80c> in <module>()
----> 1 site[2] = "A"

TypeError: 'str' object does not support item assignment

函数 len 用于统计字符串的长度:


In [38]: len(site5)
Out[38]: 15

字符串对象str

字符串的本质是字符串对象 str。

以下是 str 对象支持的基本方法列表:


In [39]: site5.
   capitalize() encode()  format()  isalpha()  islower()  istitle()  lower()  replace()  rpartition() splitlines() title()
   casefold()  endswith()  format_map() isdecimal() isnumeric() isupper()  lstrip()  rfind()  rsplit()  startswith() translate()
   center()  expandtabs() index()  isdigit()  isprintable() join()   maketrans() rindex()  rstrip()  strip()  upper()
   count()  find()   isalnum()  isidentifier() isspace()  ljust()  partition() rjust()  split()  swapcase()  zfill()

感兴趣的用户可以进一步研究这些方法的详细用法。

列表

列表是使用方括号表示的数据集合。列表中的数据元素可以是多种不同的数据类型,但在实际应用中,通常在一个列表中使用相同的数据类型。


In [40]: ages = [ 10, 14, 18, 20 ,25]

In [41]: ages
Out[41]: [10, 14, 18, 20, 25]

与字符串类似,列表也支持索引和切片操作。事实上,所有序列(sequence)类型的数据都支持这两种操作。


In [42]: ages[3]
Out[42]: 20

In [43]: ages[:2]
Out[43]: [10, 14]

In [44]: ages[:]
Out[44]: [10, 14, 18, 20, 25]

需要注意的是,列表切片会返回一个新的列表。但该新列表仅为浅拷贝,即新列表中的元素引用的是原列表中元素的地址。

列表还支持拼接操作:


In [45]: ages + [9, 11]
Out[45]: [10, 14, 18, 20, 25, 9, 11]

与字符串的不可变性不同,列表是可变的,这意味着我们可以通过索引直接修改列表中的元素值:


In [46]: ages[0] = 100

In [47]: ages
Out[47]: [100, 14, 18, 20, 25]

列表的底层类型为 list,以下是 list 对象支持的方法:


In [51]: ages.
    append() count() insert() reverse()
    clear() extend() pop()  sort()
    copy() index() remove()

我们可以使用 append 方法向列表末尾添加元素,或使用 count 方法统计列表中特定元素的出现次数等。

前文提到列表切片返回的是原列表的引用,因此我们可以通过给切片赋值的方式来修改原始列表的内容:


>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # now remove them
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # clear the list by replacing all the elements with an empty list
>>> letters[:] = []
>>> letters
[]

列表还支持嵌套操作,从而构建多层级的列表结构:


>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

总结

至此,关于Python基础数据类型中数字、字符串与列表的介绍已完成。如需了解更多相关内容,请搜索本站过往文章或继续浏览后续教程,感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。