Python入门:基础数据结构与函数
发布时间: 2024-02-15 07:31:29 阅读量: 37 订阅数: 21
# 1. Python简介与安装
## 1.1 Python的历史与特点
Python是一种高级编程语言,由Guido van Rossum于1989年圣诞节期间创造。Python的设计具有简洁、易读易写的特点,非常适合新手学习编程。它被广泛用于Web开发、科学计算、人工智能等领域。Python的主要特点包括:
- 易读易写:使用简洁而清晰的语法,使得代码易读易懂。
- 高级语言:提供了许多高级的数据结构和内置函数,能够快速实现复杂的功能。
- 可移植性:Python可以在几乎所有的操作系统中运行,包括Windows、Linux、MacOS等。
Python的历史可以追溯到上世纪80年代末和90年代初,在此期间,Guido von Rossum就开始着手开发Python。Python语言的设计和开发强调代码的可读性和简洁的语法,常常被形象地称为“优美的语言”。
## 1.2 安装Python环境
要在计算机中使用Python,首先需要安装Python的解释器。目前有两个版本的Python:Python 2和Python 3。由于Python 2于2020年停止更新,新手应该选择Python 3。
安装Python的常用方法是从官方网站 [python.org](https://www.python.org) 下载安装程序,根据操作系统的不同选择对应的安装包进行安装。安装完成后,可以在命令行中输入`python`来验证安装是否成功。
# 2. 基本数据类型与变量
#### 2.1 数字类型
数字类型是Python中最基本的数据类型之一,用于表示数值。Python中常见的数字类型有整数(int),浮点数(float)和复数(complex)。
##### 2.1.1 整数类型
在Python中,整数类型用于表示没有小数部分的数值。可以进行加(+)、减(-)、乘(\*)、除(/)等基本的数学运算。
```python
# 整数类型的示例代码
num1 = 10
num2 = 5
sum = num1 + num2 # 加法运算
difference = num1 - num2 # 减法运算
product = num1 * num2 # 乘法运算
quotient = num1 / num2 # 除法运算
print("和:", sum)
print("差:", difference)
print("积:", product)
print("商:", quotient)
```
运行结果:
```
和: 15
差: 5
积: 50
商: 2.0
```
##### 2.1.2 浮点数类型
浮点数类型用于表示带有小数部分的数值。同样可以进行加、减、乘、除等运算。
```python
# 浮点数类型的示例代码
num1 = 3.14
num2 = 2.718
sum = num1 + num2
difference = num1 - num2
product = num1 * num2
quotient = num1 / num2
print("和:", sum)
print("差:", difference)
print("积:", product)
print("商:", quotient)
```
运行结果:
```
和: 5.858
差: 0.4220000000000002
积: 8.53352
商: 1.157893530880167
```
##### 2.1.3 复数类型
复数类型用于表示具有实部和虚部的数值。
```python
# 复数类型的示例代码
num1 = 1 + 2j
num2 = 3 + 4j
sum = num1 + num2
difference = num1 - num2
product = num1 * num2
quotient = num1 / num2
print("和:", sum)
print("差:", difference)
print("积:", product)
print("商:", quotient)
```
运行结果:
```
和: (4+6j)
差: (-2-2j)
积: (-5+10j)
商: (0.44+0.08j)
```
#### 2.2 字符串类型
字符串类型用于表示一串字符。在Python中,字符串需要使用单引号或双引号进行包裹。
```python
# 字符串类型的示例代码
str1 = 'Hello'
str2 = "World"
concatenated_str = str1 + " " + str2
print(concatenated_str)
repeated_str = str1 * 3
print(repeated_str)
```
运行结果:
```
Hello World
HelloHelloHello
```
#### 2.3 列表类型
列表类型用于存储一组有序的元素。可以通过索引访问和修改列表中的元素,也可以通过一些特定的方法对列表进行操作。
```python
# 列表类型的示例代码
fruits = ['apple', 'banana', 'orange']
# 访问列表元素
print(fruits[0]) # 输出 'apple'
# 修改列表元素
fruits[1] = 'grape'
print(fruits) # 输出 ['apple', 'grape', 'orange']
# 添加元素到列表末尾
fruits.append('pear')
print(fruits) # 输出 ['apple', 'grape', 'orange', 'pear']
# 删除列表中的元素
del fruits[2]
print(fruits) # 输出 ['apple', 'grape', 'pear']
```
运行结果:
```
apple
['apple', 'grape', 'orange']
['apple', 'grape', 'orange', 'pear']
['apple', 'grape', 'pear']
```
#### 2.4 元组类型
元组类型与列表类型类似,用于存储一组有序的元素。与列表不同的是,元组的元素不能被修改。
```python
# 元组类型的示例代码
fruits = ('apple', 'banana', 'orange')
# 访问元组元素
print(fruits[0]) # 输出 'apple'
# 尝试修改元组元素(会报错)
fruits[1] = 'grape'
```
运行结果:
```
apple
TypeError: 'tuple' object does not support item assignment
```
#### 2.5 集合类型
集合类型用于存储一组互不相同的元素。可以对集合进行交、并、差等操作。
```python
# 集合类型的示例代码
fruits = {'apple', 'banana', 'orange'}
# 添加元素到集合
fruits.add('pear')
print(fruits) # 输出 {'apple', 'banana', 'orange', 'pear'}
# 从集合中移除元素
fruits.remove('banana')
print(fruits) # 输出 {'apple', 'orange'}
# 集合的交、并、差操作
fruits1 = {'apple', 'banana', 'orange'}
fruits2 = {'banana', 'pear'}
intersection = fruits1.intersection(fruits2) # 交集
union = fruits1.union(fruits2) # 并集
difference = fruits1.difference(fruits2) # 差集
print("交集:", intersection)
print("并集:", union)
print("差集:", difference)
```
运行结果:
```
{'apple', 'banana', 'orange', 'pear'}
{'apple', 'orange'}
交集: {'banana'}
并集: {'pear', 'banana', 'apple', 'orange'}
差集: {'orange', 'apple'}
```
#### 2.6 字典类型
字典类型用于存储键值对的数据。通过键来访问字典中的值。
```python
# 字典类型的示例代码
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 访问字典中的值
print(person['name']) # 输出 'Alice'
# 修改字典中的值
person['age'] = 30
print(person) # 输出 {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 添加键值对到字典
person['gender'] = 'female'
print(person) # 输出 {'name': 'Alice', 'age': 30, 'city': 'New York', 'gender': 'female'}
# 删除字典中的键值对
del person['city']
print(person) # 输出 {'name': 'Alice', 'age': 30, 'gender': 'female'}
```
运行结果:
```
Alice
{'name': 'Alice', 'age': 30, 'city': 'New York'}
{'name': 'Alice', 'age': 30, 'city': 'New York', 'gender': 'female'}
{'name': 'Alice', 'age': 30, 'gender': 'female'}
```
#### 2.7 变量的定义与使用
变量用于临时存储数据,并可以通过变量名来访问和修改数据。在Python中,变量不需要预先声明,可以直接赋值使用。
```python
# 变量的定义与使用示例代码
name = 'Alice'
age = 25
print("姓名:", name)
print("年龄:", age)
# 修改变量的值
name = 'Bob'
age = 30
print("姓名:", name)
print("年龄:", age)
```
运行结果:
```
姓名: Alice
年龄: 25
姓名: Bob
年龄: 30
```
在本章节中,我们介绍了Python中基本的数据类型,包括数字类型、字符串类型、列表类型、元组类型、集合类型和字典类型。我们还讲解了如何定义和使用变量。在下一章节中,我们将学习Python中的条件语句。
# 3. 条件与循环
条件与循环是编程中非常重要的概念,它们可以帮助我们实现程序中的逻辑判断和重复执行。本章将介绍条件语句、循环语句和循环控制语句的基本用法和实际场景应用。
#### 3.1 条件语句
条件语句用于根据不同的条件执行不同的代码块,最常见的形式是 if...elif...else 结构。
```python
# 示例:使用条件语句判断成绩等级
score = 85
if score >= 90:
print("成绩优秀")
elif score >= 80:
print("成绩良好")
elif score >= 60:
print("成绩及格")
else:
print("不及格")
```
代码说明:
- 首先定义了一个变量 score,表示学生成绩。
- 然后使用 if...elif...else 结构判断了不同的成绩段,并输出相应的结果。
#### 3.2 循环语句
循环语句用于重复执行特定的代码块,Python中常见的循环有 for 循环和 while 循环。
##### 3.2.1 for 循环
for 循环可以遍历一个序列(如列表、元组、字符串)中的每个元素,并在每次迭代时执行相应的代码。
```python
# 示例:使用 for 循环遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
```
代码说明:
- 首先定义了一个名为 fruits 的列表。
- 然后使用 for 循环遍历了该列表中的每个元素,并分别输出了每个水果的名称。
##### 3.2.2 while 循环
while 循环在条件为真的情况下重复执行特定的代码块,直到条件变为假为止。
```python
# 示例:使用 while 循环计算1到100的整数和
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print("1到100的整数和为:", sum)
```
代码说明:
- 首先定义了两个变量 sum 和 i,分别用于累加和控制循环次数。
- 然后使用 while 循环计算了1到100的整数和,并输出了结果。
#### 3.3 循环控制语句
循环控制语句用于在循环中控制程序的执行流程,其中包括 break、continue 和 pass 三种常见的控制语句。
##### 3.3.1 break 语句
break 语句用于跳出当前所在的最近循环,终止循环的继续执行。
```python
# 示例:使用 break 语句寻找列表中的特定元素
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
print("找到了香蕉!")
break
```
代码说明:
- 遍历列表 fruits 中的元素,当找到香蕉时使用 break 语句跳出循环。
##### 3.3.2 continue 语句
continue 语句用于跳过当前循环中的剩余代码,直接进入下一次循环的条件判断。
```python
# 示例:使用 continue 语句打印除了某个元素之外的其他元素
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
continue
print(fruit)
```
代码说明:
- 遍历列表 fruits 中的元素,当遇到香蕉时使用 continue 语句跳过该次循环,直接打印其他水果。
##### 3.3.3 pass 语句
pass 语句表示一个空的语句块,通常用作占位符,保持程序结构的完整性。
```python
# 示例:使用 pass 语句作为占位符
for i in range(5):
if i == 2:
pass # 这里暂时不做任何操作,保持程序结构完整
else:
print(i)
```
代码说明:
- 遍历了 0 到 4 的整数,并对每个整数进行条件判断。当 i 等于 2 时,使用 pass 语句作为占位符保持程序结构完整。
以上就是条件与循环章节的详细内容。条件语句、循环语句和循环控制语句是编程中非常常用和重要的部分,掌握好它们的用法对于编写高效的程序至关重要。
# 4. 函数的定义与使用
本章将介绍函数的定义与使用,包括函数的基本概念、函数的定义与调用以及函数的参数与返回值。函数是一种将代码逻辑封装起来,可重复使用的代码块,可以提高程序的可读性和可维护性。
##### 4.1 函数的基本概念
函数通常由函数名、参数和返回值组成。函数名用于调用函数,参数是函数用于接收外部数据的变量,返回值是函数执行后的结果。函数可以接收多个参数,也可以没有返回值。通过使用函数,我们可以将程序分解成多个更小的、可复用的部分。
##### 4.2 函数的定义与调用
函数的定义使用`def`关键字,后跟函数名、参数列表和冒号。函数体由缩进的代码块组成。调用函数时,只需使用函数名和对应的参数即可。
下面是一个简单的示例,演示了如何定义一个函数并调用它:
```python
def greet(name):
print("Hello, " + name + "!")
greet("Alice")
greet("Bob")
```
**代码说明:**
- `def greet(name):`定义了一个名为`greet`的函数,它接受一个参数`name`。
- `print("Hello, " + name + "!")`是函数的实际代码,打印出包含参数`name`的问候语。
- `greet("Alice")`和`greet("Bob")`是对函数的两次调用,分别传递了不同的参数。
执行以上代码,将输出以下结果:
```
Hello, Alice!
Hello, Bob!
```
##### 4.3 函数的参数与返回值
函数可以接收多个参数,参数之间使用逗号分隔。调用函数时,按照参数列表的顺序提供参数。函数可以有返回值,使用`return`语句表示返回结果。
下面是一个示例,演示了一个带有多个参数和返回值的函数:
```python
def calculate_sum(a, b):
total = a + b
return total
result = calculate_sum(3, 5)
print("Sum:", result)
```
**代码说明:**
- `def calculate_sum(a, b):`定义了一个名为`calculate_sum`的函数,它接受两个参数`a`和`b`。
- `total = a + b`将两个参数相加,结果保存在变量`total`中。
- `return total`使用`return`语句将结果返回给函数调用者。
- `result = calculate_sum(3, 5)`调用函数,并将返回值赋值给变量`result`。
- `print("Sum:", result)`输出结果。
执行以上代码,将输出以下结果:
```
Sum: 8
```
本章介绍了函数的基本概念、定义与调用以及参数与返回值的使用。函数是编程中非常重要的概念,合理地使用函数可以提高程序的效率和可维护性。在后续章节中,我们将继续学习函数的高级用法和相关概念。
# 5. 模块与包
### 5.1 模块的概念与使用
Python中的模块是一组包含函数、类等定义的代码的文件。通过将相关的代码放在一个模块中,可以提高代码的可维护性和复用性。在使用模块之前,需要通过`import`语句将模块导入到当前的代码环境中。
下面是一个使用模块的示例:
```python
import math
radius = 5
area = math.pi * radius ** 2
print("圆的面积为:", area)
```
在上述代码中,我们使用了`math`模块,该模块包含了许多数学相关的函数和常量。通过导入该模块,我们可以直接使用其提供的函数和常量。在这个例子中,我们计算了一个半径为5的圆的面积,并将结果打印出来。
### 5.2 标准库与第三方库的导入
Python中有许多已经内置的模块,这些模块通常被称为标准库。通过导入标准库中的模块,我们可以使用这些模块提供的功能。
另外,还有许多由其他开发者编写的扩展模块,称为第三方库。这些库可以通过安装包管理工具如pip来获取,并且可以在程序中导入并使用。
下面是一个使用标准库和第三方库的示例:
```python
import random
from datetime import datetime
from bs4 import BeautifulSoup
# 使用random模块生成一个随机数
number = random.randint(1, 10)
print("生成的随机数是:", number)
# 使用datetime模块获取当前时间
current_time = datetime.now()
print("当前时间是:", current_time)
# 使用BeautifulSoup模块解析HTML文档
html_doc = "<html><body><h1>标题</h1></body></html>"
soup = BeautifulSoup(html_doc, 'html.parser')
title = soup.h1.string
print("HTML文档的标题是:", title)
```
在上述代码中,我们分别导入了`random`、`datetime`和`BeautifulSoup`模块,并使用了它们提供的功能。`random`模块用来生成随机数,`datetime`模块用来获取当前时间,`BeautifulSoup`模块用来解析HTML文档。
### 5.3 自定义模块与包的使用
除了使用标准库和第三方库,我们还可以自定义模块来组织和管理代码。一个模块可以包含多个函数、类等定义,并且可以被其他模块导入和使用。
在Python中,将多个相关的模块组织在一起形成一个包。包是一种特殊的模块,它可以包含多个子模块和子包,并且可以有一个特殊的`__init__.py`文件。
下面是一个使用自定义模块和包的示例:
```python
# mymodule.py
def add(a, b):
return a + b
def multiply(a, b):
return a * b
```
```python
# main.py
import mymodule
sum_result = mymodule.add(2, 3)
print("两数之和:", sum_result)
product_result = mymodule.multiply(2, 3)
print("两数之积:", product_result)
```
在上述代码中,我们定义了一个名为`mymodule`的模块,其中包含了`add`和`multiply`两个函数。然后在`main.py`中,我们导入了`mymodule`模块,并使用了其中的函数。
总结:模块和包是Python中组织和管理代码的重要机制。通过导入标准库、第三方库和自定义模块,我们可以方便地使用各种功能。良好的模块划分和包管理可以提高代码的可读性和可维护性。
# 6. 文件的读写操作
在本章中,我们将讨论Python中文件的读写操作。我们会学习如何打开和关闭文件、读取和写入文件内容,以及文件操作的高级技巧和异常处理。
#### 6.1 打开与关闭文件
在Python中,可以使用`open()`函数来打开一个文件。`open()`函数接受文件名和打开模式作为参数,打开模式包括:
- "r": 读取模式
- "w": 写入模式
- "a": 追加模式
- "b": 二进制模式
- "t": 文本模式(默认)
```python
# 以读取模式打开文件
file = open("example.txt", "r")
# 以写入模式打开文件
file = open("example.txt", "w")
# 在使用完文件后,要记得关闭文件
file.close()
```
#### 6.2 读取文件内容
一旦文件被打开,便可以使用`read()`、`readline()`或`readlines()`方法来读取文件内容。
```python
# 使用read()方法读取整个文件内容
file = open("example.txt", "r")
content = file.read()
print(content)
file.close()
# 使用readline()方法逐行读取文件内容
file = open("example.txt", "r")
line = file.readline()
while line:
print(line)
line = file.readline()
file.close()
# 使用readlines()方法按行读取文件内容到列表中
file = open("example.txt", "r")
lines = file.readlines()
for line in lines:
print(line)
file.close()
```
#### 6.3 写入文件内容
除了读取文件内容,还可以使用`write()`方法向文件中写入内容。
```python
# 使用write()方法向文件中写入内容
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()
```
#### 6.4 文件的异常处理
在文件操作中,可能会出现各种异常情况,因此需要进行异常处理,以确保程序的稳定性。
```python
# 使用try-except-finally进行文件操作的异常处理
try:
file = open("example.txt", "r")
content = file.read()
print(content)
except FileNotFoundError:
print("File not found")
finally:
file.close()
```
#### 6.5 文件操作的高级技巧
Python还提供了一些高级的文件操作技巧,比如使用`with`语句管理文件的上下文,自动调用`close()`方法,避免忘记关闭文件。
```python
# 使用with语句管理文件的上下文
with open("example.txt", "r") as file:
content = file.read()
print(content)
```
0
0