【深度学习】 Python 和 NumPy 系列教程(二):Python基本数据类型:3、字符串(索引、切片、运算、格式化)

2024-07-29 21:14:19 浏览数 (1)

一、前言

Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、字典、集合、元组)、函数、类
  • Numpy:数组、数组索引、数据类型、数组数学、广播
  • Matplotlib:绘图,子图,图像
  • IPython:创建笔记本,典型工作流程

二、实验环境

Python 3.7

运行下述命令检查Python版本

代码语言:javascript复制
 python --version 

三、Python基本数据类型

Python的基本数据类型包括:

  1. 整数(int):表示整数值,例如1、2、-3等。
  2. 浮点数(float):表示带有小数点的数值,例如3.14、2.5等。
  3. 布尔值(bool):表示真(True)或假(False)的逻辑值。
  4. 字符串(str):表示文本数据,使用引号(单引号或双引号)括起来,例如"Hello"、'Python'等。
  5. 列表(list):表示一组有序的元素,可以包含不同类型的数据,用方括号括起来,例如[1, 2, 3]、['apple', 'banana', 'orange']等。
  6. 元组(tuple):类似于列表,但是不可修改,用圆括号括起来,例如(1, 2, 3)、('apple', 'banana', 'orange')等。
  7. 集合(set):表示一组唯一的元素,用大括号括起来,例如{1, 2, 3}、{'apple', 'banana', 'orange'}等。
  8. 字典(dict):表示键值对的映射关系,用大括号括起来,例如{'name': 'John', 'age': 25}等。

3. 字符串(Strings)

字符串(Strings)是Python中的另一个基本数据类型,用于表示文本数据。字符串由一系列字符组成,并且可以使用单引号或双引号括起来。例如:"Hello World"是一个字符串。 字符串可以进行多种操作,例如连接(通过加号运算符)、切片(通过索引和切片操作符)、长度计算(通过len()函数)等。还可以使用各种字符串方法来处理和转换字符串。 字符串在Python中是不可变的,这意味着一旦创建了一个字符串对象,就不能修改它的值。但是可以通过字符串的方法和操作来创建新的字符串对象。 字符串在Python中是非常常用的数据类型,用于处理文本数据、表示文件路径、存储用户输入等。它们提供了丰富的功能和操作,使得处理文本数据变得方便而高效。

1. 初始化

字符串可以使用单引号或双引号括起来进行初始化。

代码语言:javascript复制
str1 = 'Hello World'
str2 = "Python is awesome"
2. 索引

可以使用索引操作符(方括号)来访问字符串中的单个字符。字符串的索引从0开始,最左边的字符索引为0,依次递增。例如,可以使用以下方式获取字符串中的字符:

代码语言:javascript复制
str1 = 'Hello World'
print(str1[0])  # 输出:H
print(str1[6])  # 输出:W
3. 切片
  • 模式:<字符串>[begin: end: step]
    • ­左闭右开:以step为步长,取begin到end-1处的全部元素
    • ­step的正负性代表了方向:当step为负时,需要反向输出
    • ­缺省值:begin=0;end=len(<字符串>);step=1

可以使用切片操作符(冒号)来获取字符串的子串。切片操作可以指定起始索引和结束索引,其中起始索引包含在切片中,而结束索引不包含在切片中。例如,可以使用以下方式获取字符串的子串:

代码语言:javascript复制
str1 = 'Hello World'
print(str1[0:5])      # 输出:Hello
print(str1[6:])       # 输出:World
print(str1[0:10:2])   # 输出:HloWr
4. 运算

a. 拼接运算

可以使用加号运算符( )将两个字符串进行拼接。

代码语言:javascript复制
str1 = 'Hello'
str2 = 'World'
result = str1   ' '   str2
print(result)  # 输出:Hello World

b. 复制运算

可以使用乘号运算符(*)将一个字符串复制多次。

代码语言:javascript复制
str1 = 'Hello'
result = str1 * 3
print(result)  # 输出:HelloHelloHello

c. 子串判断

可以使用innot in运算符来判断一个字符串是否是另一个字符串的子串。例如:

代码语言:javascript复制
str1 = 'Hello World'
print('Hello' in str1)  # 输出:True,'Hello'是'Hello World'的子串
print('abc' not in str1)  # 输出:True,'abc'不是'Hello World'的子串

d. 取长度

可以使用len()函数获取一个字符串的长度,即字符串中字符的个数。例如:

代码语言:javascript复制
str1 = 'Hello World'
length = len(str1)
print(length)  # 输出:11
5. 格式化

可以使用字符串的format()方法将变量的值插入到字符串中。可以使用占位符(花括号)来指定插入变量的位置。例如:

代码语言:javascript复制
name = 'Alice'
age = 25
message = 'My name is {} and I am {} years old.'.format(name, age)
print(message)  # 输出:My name is Alice and I am 25 years old.

字符串的格式化可以使用槽格式控制来实现。槽是占位符,用于指定在格式化字符串中的变量值应该插入的位置。在槽中可以使用索引、关键字参数和属性访问等方式来控制格式化的方式。

以下是几种常见的槽格式控制方法:

a. 使用位置参数

可以使用索引来指定要插入的变量的位置。

代码语言:javascript复制
name = 'Alice'
age = 25
message = 'My name is {0} and I am {1} years old.'.format(name, age)
print(message)  # 输出:My name is Alice and I am 25 years old.

b. 使用关键字参数

可以使用变量名作为关键字参数来指定要插入的变量。

代码语言:javascript复制
name = 'Alice'
age = 25
message = 'My name is {name} and I am {age} years old.'.format(name=name, age=age)
print(message)  # 输出:My name is Alice and I am 25 years old.

c. 使用属性访问

如果要格式化的变量是对象的属性,可以使用点号(.)来访问属性。例如:

代码语言:javascript复制
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person('Alice', 25)
message = 'My name is {p.name} and I am {p.age} years old.'.format(p=person)
print(message)  # 输出:My name is Alice and I am 25 years old.

f-string方法

此外,还可以使用更高级的格式化方法,如f-string。f-string是Python 3.6及更高版本引入的一种字符串格式化方法,使用起来更加简洁和方便。

代码语言:javascript复制
name = 'Alice'
age = 25
message = f'My name is {name} and I am {age} years old.'
print(message)  # 输出:My name is Alice and I am 25 years old.

0 人点赞