【Python基础语法速成指南】:10步掌握Python编程核心
发布时间: 2024-06-17 17:59:13 阅读量: 83 订阅数: 29
十分钟让你看懂Python
3星 · 编辑精心推荐
![【Python基础语法速成指南】:10步掌握Python编程核心](https://img-blog.csdnimg.cn/278dcefbe09147e190f38dd1b1456d15.png)
# 1. Python基础语法**
Python是一种解释型、面向对象的编程语言,以其简洁、易读和强大的功能而闻名。本章将介绍Python的基础语法,包括变量定义、数据类型、控制流和函数。
**变量定义**
Python中的变量用于存储数据。变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。变量赋值使用等号(=),例如:
```python
my_name = "John Doe"
```
**数据类型**
Python支持多种数据类型,包括数字、字符串、列表、元组和字典。数字类型包括整数(int)和浮点数(float)。字符串类型用于存储文本数据。列表和元组是序列类型,用于存储有序的数据集合。字典是映射类型,用于存储键值对。
# 2. Python数据类型和变量
### 2.1 Python数据类型
Python是一种动态类型语言,这意味着变量在运行时被赋予类型,而不是在编译时。Python支持多种数据类型,包括:
- **数值类型:**
- 整数(int):表示整数,如 10、-5
- 浮点数(float):表示小数,如 3.14、-2.71
- 复数(complex):表示复数,如 1+2j、3-4j
- **序列类型:**
- 列表(list):有序的可变序列,可存储不同类型的数据,如 [1, 2, 3, 'a', 'b']
- 元组(tuple):有序的不可变序列,可存储不同类型的数据,如 (1, 2, 3, 'a', 'b')
- 字符串(str):不可变的字符序列,如 'hello', "world"
- **映射类型:**
- 字典(dict):无序的可变映射,键值对形式存储数据,如 {'name': 'John', 'age': 30}
- 集合(set):无序的可变集合,存储唯一元素,如 {1, 2, 3, 'a', 'b'}
### 2.1.1 数值类型
数值类型用于表示数字,包括整数、浮点数和复数。整数表示为没有小数点的数字,如 10、-5。浮点数表示为带有小数点的数字,如 3.14、-2.71。复数表示为带有虚部(j)的数字,如 1+2j、3-4j。
```python
# 整数
x = 10
print(type(x)) # <class 'int'>
# 浮点数
y = 3.14
print(type(y)) # <class 'float'>
# 复数
z = 1+2j
print(type(z)) # <class 'complex'>
```
### 2.1.2 序列类型
序列类型用于存储有序的数据。列表是一个可变序列,可以添加、删除和修改元素。元组是一个不可变序列,一旦创建就不能修改。字符串也是一个不可变序列,表示字符序列。
```python
# 列表
my_list = [1, 2, 3, 'a', 'b']
print(type(my_list)) # <class 'list'>
# 元组
my_tuple = (1, 2, 3, 'a', 'b')
print(type(my_tuple)) # <class 'tuple'>
# 字符串
my_string = 'hello'
print(type(my_string)) # <class 'str'>
```
### 2.1.3 映射类型
映射类型用于存储键值对。字典是一个可变映射,可以添加、删除和修改键值对。集合是一个无序的可变集合,存储唯一元素。
```python
# 字典
my_dict = {'name': 'John', 'age': 30}
print(type(my_dict)) # <class 'dict'>
# 集合
my_set = {1, 2, 3, 'a', 'b'}
print(type(my_set)) # <class 'set'>
```
### 2.2 Python变量
变量用于存储数据,并在程序中引用。变量在 Python 中是动态类型的,这意味着它们可以存储不同类型的数据。
### 2.2.1 变量定义和赋值
变量通过赋值运算符(=)定义和赋值。变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。
```python
# 定义变量
name = 'John'
age = 30
# 赋值
name = 'Mary'
age = 35
```
### 2.2.2 变量作用域和生命周期
变量的作用域是指变量可以被访问的代码块范围。Python 中有两种作用域:
- **局部作用域:**变量在函数或块中定义,只能在该函数或块内访问。
- **全局作用域:**变量在模块级别定义,可以在模块中的任何地方访问。
变量的生命周期是指变量存在的时间。变量在被创建时被分配内存,并在不再被引用时被释放。
# 3. Python流程控制
### 3.1 条件语句
条件语句用于根据条件判断执行不同的代码块。Python 中有三种基本条件语句:`if`、`elif` 和 `else`。
#### 3.1.1 if 语句
`if` 语句用于执行一个代码块,如果条件为真。语法如下:
```python
if condition:
# 代码块
```
例如:
```python
age = 18
if age >= 18:
print("你已成年")
```
#### 3.1.2 elif 语句
`elif` 语句用于执行一个代码块,如果前一个 `if` 语句的条件为假,而当前 `elif` 语句的条件为真。语法如下:
```python
if condition1:
# 代码块 1
elif condition2:
# 代码块 2
```
例如:
```python
age = 15
if age >= 18:
print("你已成年")
elif age >= 13:
print("你已进入青春期")
```
#### 3.1.3 else 语句
`else` 语句用于执行一个代码块,如果所有前置的 `if` 和 `elif` 语句的条件都为假。语法如下:
```python
if condition1:
# 代码块 1
elif condition2:
# 代码块 2
else:
# 代码块 3
```
例如:
```python
age = 10
if age >= 18:
print("你已成年")
elif age >= 13:
print("你已进入青春期")
else:
print("你还是个孩子")
```
### 3.2 循环语句
循环语句用于重复执行一段代码块,直到满足某些条件。Python 中有两种基本循环语句:`for` 和 `while`。
#### 3.2.1 for 循环
`for` 循环用于遍历一个序列(例如列表、元组或字符串),并对序列中的每个元素执行代码块。语法如下:
```python
for element in sequence:
# 代码块
```
例如:
```python
numbers = [1, 2, 3, 4, 5]
for number in numbers:
print(number)
```
#### 3.2.2 while 循环
`while` 循环用于重复执行代码块,直到条件为假。语法如下:
```python
while condition:
# 代码块
```
例如:
```python
count = 0
while count < 5:
print("当前计数:", count)
count += 1
```
#### 3.2.3 break 和 continue 语句
`break` 语句用于立即退出循环,而 `continue` 语句用于跳过当前循环迭代,并继续执行下一迭代。语法如下:
```python
break
continue
```
例如:
```python
numbers = [1, 2, 3, 4, 5]
for number in numbers:
if number == 3:
break
print(number)
```
# 4. Python函数和模块
### 4.1 Python函数
#### 4.1.1 函数定义和调用
在Python中,函数是可重用的代码块,用于执行特定任务。要定义一个函数,请使用以下语法:
```python
def function_name(parameters):
"""函数文档字符串"""
# 函数体
```
其中:
* `function_name` 是函数的名称。
* `parameters` 是函数的参数列表,可以是可选的。
* `"""函数文档字符串"""` 是可选的文档字符串,用于描述函数的功能。
* `函数体` 是函数的代码块,包含要执行的任务。
要调用函数,只需使用其名称并传递任何必需的参数:
```python
function_name(arguments)
```
#### 4.1.2 参数传递
函数可以接受参数,这些参数在函数定义中指定。当调用函数时,参数值传递给函数。
Python支持两种参数传递方式:
* **位置参数:**按顺序传递给函数。
* **关键字参数:**使用参数名称传递给函数。
例如:
```python
def sum_numbers(a, b):
return a + b
result = sum_numbers(10, 20) # 位置参数
result = sum_numbers(b=20, a=10) # 关键字参数
```
#### 4.1.3 返回值
函数可以返回一个值,使用 `return` 语句。如果没有明确指定返回值,函数将返回 `None`。
例如:
```python
def max_number(a, b):
if a > b:
return a
else:
return b
max_value = max_number(10, 20)
```
### 4.2 Python模块
#### 4.2.1 模块导入
模块是包含相关函数、类和变量的可重用代码文件。在Python中,可以使用 `import` 语句导入模块:
```python
import module_name
```
导入后,可以使用模块中的内容,方法是使用点符号访问它们:
```python
module_name.function_name()
module_name.variable_name
```
#### 4.2.2 模块使用
模块可以包含各种元素,包括:
* **函数:**可重用的代码块。
* **类:**用于创建对象的蓝图。
* **变量:**存储值。
例如,以下模块包含一个函数和一个变量:
```python
# module.py
def greet(name):
print(f"Hello, {name}!")
message = "Welcome to Python!"
```
要使用此模块,可以将其导入并使用其内容:
```python
import module
module.greet("John")
print(module.message)
```
输出:
```
Hello, John!
Welcome to Python!
```
# 5. Python文件操作
### 5.1 文件读写
#### 5.1.1 文件打开和关闭
Python中使用`open()`函数打开文件,其语法格式如下:
```python
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
```
其中,`file`为要打开的文件路径,`mode`为打开模式,常见模式有:
* `r`:以只读模式打开文件
* `w`:以只写模式打开文件,如果文件不存在则创建,如果文件已存在则覆盖
* `a`:以追加模式打开文件,如果文件不存在则创建,如果文件已存在则在文件末尾追加
* `r+`:以读写模式打开文件,文件必须已存在
* `w+`:以读写模式打开文件,如果文件不存在则创建,如果文件已存在则覆盖
* `a+`:以读写模式打开文件,如果文件不存在则创建,如果文件已存在则在文件末尾追加
打开文件后,需要使用`close()`方法关闭文件,以释放系统资源。
#### 5.1.2 文件读取和写入
打开文件后,可以使用`read()`和`write()`方法对文件进行读写操作。
**文件读取**
* `read()`方法:读取整个文件的内容,返回一个字符串。
* `readline()`方法:读取文件中的下一行,返回一个字符串。
* `readlines()`方法:读取文件中的所有行,返回一个列表,每个元素为一行内容。
**文件写入**
* `write()`方法:将字符串写入文件,返回写入的字节数。
* `writelines()`方法:将列表中的每一行写入文件,返回写入的字节数。
### 5.2 文件属性和权限
#### 5.2.1 文件属性获取和设置
Python中可以使用`os.stat()`函数获取文件的属性,其语法格式如下:
```python
os.stat(path)
```
其中,`path`为文件路径。
`os.stat()`函数返回一个`stat`对象,其中包含文件的各种属性,如文件大小、创建时间、修改时间等。
可以使用`os.path.getsize()`函数获取文件的大小,其语法格式如下:
```python
os.path.getsize(path)
```
其中,`path`为文件路径。
可以使用`os.path.getmtime()`函数获取文件的修改时间,其语法格式如下:
```python
os.path.getmtime(path)
```
其中,`path`为文件路径。
#### 5.2.2 文件权限控制
Python中可以使用`os.chmod()`函数设置文件的权限,其语法格式如下:
```python
os.chmod(path, mode)
```
其中,`path`为文件路径,`mode`为权限模式,可以是八进制或字符串形式。
八进制权限模式由三位数字组成,每一位代表一类用户(所有者、组、其他)的权限,每一位的数字表示该类用户的权限,具体含义如下:
* 0:无权限
* 1:执行权限
* 2:写权限
* 4:读权限
例如,权限模式`0755`表示所有者具有读、写、执行权限,组用户具有读、执行权限,其他用户具有执行权限。
字符串权限模式由一系列字符组成,每个字符代表一种权限,具体含义如下:
* `r`:读权限
* `w`:写权限
* `x`:执行权限
* `+`:添加权限
* `-`:删除权限
例如,权限模式`rwxr-x--`表示所有者具有读、写、执行权限,组用户具有读、执行权限,其他用户只有执行权限。
# 6. Python实践应用
### 6.1 Python网络编程
#### 6.1.1 Socket编程基础
Socket编程是Python中进行网络编程的基础,它允许程序通过网络与其他计算机进行通信。Python提供了`socket`模块来实现Socket编程。
创建Socket对象时,需要指定Socket类型和协议类型。常见的Socket类型有`SOCK_STREAM`(TCP连接)和`SOCK_DGRAM`(UDP连接),协议类型有`AF_INET`(IPv4)和`AF_INET6`(IPv6)。
```python
import socket
# 创建一个TCP Socket对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
```
#### 6.1.2 HTTP请求发送和接收
HTTP(超文本传输协议)是Web上使用的主要协议。Python提供了`requests`库来简化HTTP请求的发送和接收。
发送HTTP请求时,需要指定请求方法(如`GET`或`POST)、请求URL和请求头。
```python
import requests
# 发送一个GET请求
response = requests.get("https://www.example.com")
# 获取响应状态码
status_code = response.status_code
# 获取响应内容
content = response.content
```
### 6.2 Python数据分析
#### 6.2.1 NumPy库简介
NumPy(Numerical Python)是一个用于科学计算的Python库。它提供了强大的数组和矩阵操作功能。
NumPy数组是一个同质数据集合,可以执行各种数学运算。
```python
import numpy as np
# 创建一个NumPy数组
array = np.array([1, 2, 3, 4, 5])
# 对数组进行求和运算
sum = np.sum(array)
```
#### 6.2.2 Pandas库简介
Pandas是一个用于数据操作和分析的Python库。它提供了数据框(DataFrame)结构,可以存储和处理表格数据。
数据框是一种二位表结构,其中行表示记录,列表示字段。
```python
import pandas as pd
# 创建一个Pandas数据框
df = pd.DataFrame({
"name": ["John", "Jane", "Jack"],
"age": [20, 25, 30]
})
# 获取数据框的行数和列数
print(df.shape)
# 获取数据框的特定列
print(df["name"])
```
0
0