Python基础语法速成:小白到熟练掌握的进阶指南
发布时间: 2024-06-20 08:37:12 阅读量: 75 订阅数: 30
![Python基础语法速成:小白到熟练掌握的进阶指南](https://img-blog.csdnimg.cn/img_convert/58dc8a531f253c3c474e3c6e4b8772f0.jpeg)
# 1. Python基础语法入门
Python是一种解释型、面向对象、高级编程语言。它以其易于学习、语法清晰、功能强大的特点而闻名。Python广泛应用于Web开发、数据分析、机器学习等领域。
本节将介绍Python的基础语法,包括变量、数据类型、运算符、条件语句和循环语句。通过这些基础知识,你可以开始编写简单的Python程序,并为更高级的编程概念奠定基础。
# 2. Python数据类型与变量
Python是一门动态类型语言,这意味着变量不需要在声明时指定类型。变量的类型是在运行时根据其值确定的。Python支持多种数据类型,包括数字、字符串、列表、元组、字典和集合。
### 2.1 数据类型概述
**数字类型**
* 整数(int):表示整数,例如1、-10、0
* 浮点数(float):表示小数,例如3.14、-5.2
* 复数(complex):表示复数,例如1+2j
**字符串类型**
* 字符串(str):表示文本数据,例如"Hello World"、'Python'
* 字节串(bytes):表示二进制数据,例如b'Hello World'
**序列类型**
* 列表(list):表示有序可变序列,例如[1, 2, 3, "Hello"]
* 元组(tuple):表示有序不可变序列,例如(1, 2, 3, "Hello")
**映射类型**
* 字典(dict):表示键值对的集合,例如{"name": "John", "age": 30}
**集合类型**
* 集合(set):表示无序不可重复元素的集合,例如{1, 2, 3, "Hello"}
### 2.2 变量的定义与赋值
变量用于存储数据。要定义一个变量,可以使用赋值运算符(=)。例如:
```python
name = "John"
age = 30
```
变量名必须以字母或下划线开头,并且只能包含字母、数字和下划线。变量名不能是Python关键字。
变量的值可以通过赋值运算符重新分配。例如:
```python
name = "John Doe"
```
变量的类型是根据其值确定的。例如,变量`name`的值是字符串,因此其类型为`str`。
**代码块:**
```python
# 定义变量
name = "John"
age = 30
# 重新赋值
name = "John Doe"
# 打印变量类型
print(type(name))
print(type(age))
```
**代码逻辑分析:**
* 第一行定义变量`name`,并赋值为字符串"John"。
* 第二行定义变量`age`,并赋值为整数30。
* 第三行重新赋值变量`name`,为字符串"John Doe"。
* 第四行和第五行使用`type()`函数打印变量`name`和`age`的类型。
**参数说明:**
* `name`:变量名,用于存储字符串值。
* `age`:变量名,用于存储整数值。
* `type()`:内置函数,用于返回变量的类型。
# 3. Python流程控制
### 3.1 条件语句
条件语句用于根据条件执行不同的代码块。Python 中最常用的条件语句是 `if-elif-else` 语句。其语法如下:
```python
if condition:
# 代码块 1
elif condition:
# 代码块 2
else:
# 代码块 3
```
其中:
* `condition` 为布尔表达式,如果为 `True`,则执行相应的代码块。
* `elif` 语句用于添加多个条件,当所有前面的条件都为 `False` 时,才会执行 `elif` 对应的代码块。
* `else` 语句用于执行当所有条件都为 `False` 时的代码块。
**示例:**
```python
age = int(input("请输入您的年龄:"))
if age < 18:
print("您未成年。")
elif age >= 18 and age < 65:
print("您是成年人。")
else:
print("您已退休。")
```
### 3.2 循环语句
循环语句用于重复执行一段代码。Python 中最常用的循环语句是 `for` 循环和 `while` 循环。
**3.2.1 for 循环**
`for` 循环用于遍历序列(如列表、元组、字符串等)。其语法如下:
```python
for item in sequence:
# 代码块
```
其中:
* `item` 为循环变量,表示序列中的每个元素。
* `sequence` 为要遍历的序列。
**示例:**
```python
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
print(fruit)
```
**3.2.2 while 循环**
`while` 循环用于只要条件为 `True` 就重复执行一段代码。其语法如下:
```python
while condition:
# 代码块
```
其中:
* `condition` 为布尔表达式,如果为 `True`,则执行代码块。
**示例:**
```python
i = 0
while i < 10:
print(i)
i += 1
```
### 3.3 函数与参数传递
函数是将代码块封装成一个单元的代码结构,可以重复使用。函数可以接收参数,并返回一个值。
**3.3.1 函数定义**
函数使用 `def` 关键字定义,其语法如下:
```python
def function_name(parameters):
# 函数体
return value
```
其中:
* `function_name` 为函数名称。
* `parameters` 为函数接收的参数,可以有多个,用逗号分隔。
* `函数体` 为函数要执行的代码块。
* `return value` 为函数返回的值,可以省略。
**示例:**
```python
def sum_numbers(a, b):
return a + b
```
**3.3.2 参数传递**
函数可以接收参数,参数传递有两种方式:
* **按值传递:**将参数的值复制一份传递给函数,函数内部对参数的修改不会影响函数外部的变量。
* **按引用传递:**将参数的引用传递给函数,函数内部对参数的修改会影响函数外部的变量。
Python 中默认采用按值传递。要实现按引用传递,需要使用 `*` 号,如下:
```python
def swap_numbers(a, b):
a, b = b, a
```
**示例:**
```python
a = 1
b = 2
sum_numbers(a, b) # 按值传递,不会改变 a 和 b 的值
swap_numbers(a, b) # 按引用传递,会改变 a 和 b 的值
```
# 4.1 列表与元组
### 4.1.1 列表
**定义:**
列表是一种可变有序集合,可以存储不同类型的数据元素。
**创建:**
```python
my_list = [1, 2.5, "Hello", True]
```
**访问元素:**
使用索引访问列表中的元素,索引从 0 开始。
```python
print(my_list[0]) # 输出:1
```
**修改元素:**
直接赋值修改列表中的元素。
```python
my_list[1] = 3.14
```
**常见操作:**
* `append()`:在列表末尾添加元素。
* `insert()`:在指定索引处插入元素。
* `remove()`:删除指定元素。
* `sort()`:对列表进行排序。
### 4.1.2 元组
**定义:**
元组是一种不可变有序集合,与列表类似,但不能修改元素。
**创建:**
```python
my_tuple = (1, 2.5, "Hello", True)
```
**访问元素:**
与列表相同,使用索引访问元组中的元素。
```python
print(my_tuple[0]) # 输出:1
```
**常见操作:**
* `count()`:计算指定元素在元组中出现的次数。
* `index()`:返回指定元素在元组中的索引。
* `len()`:返回元组的长度。
### 4.1.3 列表与元组的比较
| 特性 | 列表 | 元组 |
|---|---|---|
| 可变性 | 可变 | 不可变 |
| 创建方式 | `[]` | `()` |
| 索引 | 支持 | 支持 |
| 修改 | 支持 | 不支持 |
| 常用操作 | `append()`, `insert()`, `remove()` | `count()`, `index()`, `len()` |
### 4.1.4 列表和元组的应用
**列表:**
* 存储需要修改或排序的数据。
* 作为函数的参数或返回值。
* 实现队列或栈等数据结构。
**元组:**
* 存储不可变的数据,如坐标或键值对。
* 作为字典的键或集合的元素。
* 提高代码的可读性和可维护性。
# 5.1 类与对象
面向对象编程(OOP)是一种编程范式,它将程序组织成对象。对象是数据和行为的集合,它们封装在一起,形成一个独立的实体。
在 Python 中,类是对象的蓝图,它定义了对象的属性和方法。对象是类的实例,它具有类定义的属性和方法。
### 类的定义
要定义一个类,可以使用 `class` 关键字,后跟类名:
```python
class Person:
# 类的属性
name = ""
age = 0
# 类的构造函数
def __init__(self, name, age):
self.name = name
self.age = age
# 类的其他方法
def get_name(self):
return self.name
def get_age(self):
return self.age
```
在上面的示例中,`Person` 类定义了两个属性:`name` 和 `age`,以及一个构造函数 `__init__` 和两个方法 `get_name` 和 `get_age`。
### 对象的创建
要创建类的对象,可以使用 `class` 关键字,后跟类名和参数:
```python
person1 = Person("John", 30)
person2 = Person("Mary", 25)
```
在上面的示例中,`person1` 和 `person2` 是 `Person` 类的两个对象。
### 对象的属性和方法
可以使用点运算符(`.`)访问对象的属性和方法:
```python
print(person1.name) # 输出 "John"
print(person2.get_age()) # 输出 25
```
### 类的继承
继承允许一个类从另一个类继承属性和方法。子类可以覆盖父类的属性和方法,并添加自己的属性和方法。
要定义一个子类,可以使用 `class` 关键字,后跟子类名和父类名:
```python
class Student(Person):
# 子类的属性
grade = 0
# 子类的构造函数
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
# 子类的其他方法
def get_grade(self):
return self.grade
```
在上面的示例中,`Student` 类从 `Person` 类继承了 `name` 和 `age` 属性和 `__init__` 和 `get_name` 方法,并添加了自己的 `grade` 属性和 `get_grade` 方法。
0
0