一、前言
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的基本数据类型包括:
- 整数(int):表示整数值,例如1、2、-3等。
- 浮点数(float):表示带有小数点的数值,例如3.14、2.5等。
- 布尔值(bool):表示真(True)或假(False)的逻辑值。
- 字符串(str):表示文本数据,使用引号(单引号或双引号)括起来,例如"Hello"、'Python'等。
- 列表(list):表示一组有序的元素,可以包含不同类型的数据,用方括号括起来,例如[1, 2, 3]、['apple', 'banana', 'orange']等。
- 元组(tuple):类似于列表,但是不可修改,用圆括号括起来,例如(1, 2, 3)、('apple', 'banana', 'orange')等。
- 集合(set):表示一组唯一的元素,用大括号括起来,例如{1, 2, 3}、{'apple', 'banana', 'orange'}等。
- 字典(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. 子串判断
可以使用in
和not in
运算符来判断一个字符串是否是另一个字符串的子串。例如:
str1 = 'Hello World'
print('Hello' in str1) # 输出:True,'Hello'是'Hello World'的子串
print('abc' not in str1) # 输出:True,'abc'不是'Hello World'的子串
d. 取长度
可以使用len()
函数获取一个字符串的长度,即字符串中字符的个数。例如:
str1 = 'Hello World'
length = len(str1)
print(length) # 输出:11
5. 格式化
可以使用字符串的format()
方法将变量的值插入到字符串中。可以使用占位符(花括号)来指定插入变量的位置。例如:
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.