基础语法

变量和数据类型

  • Python 中有多种数据类型,如整数(int)、浮点数(float)、字符串(str)、布尔值(bool)等。
  • 变量的命名规则:由字母、数字和下划线组成,不能以数字开头。
  • 示例:
1
2
3
4
age = 25
name = "Alice"
is_student = True
pi = 3.14

点击并拖拽以移动

运算符

  • 算术运算符:+、-、*、/、%、**、//。
  • 比较运算符:==、!=、>、<、>=、<=。
  • 逻辑运算符:and、or、not。
  • 赋值运算符:=、+=、-=、*=、/= 等。
  • 示例:
1
2
3
4
5
6
7
8
a = 10
b = 3
print(a + b)
print(a > b)
print(not a > b)
c = 5
c += 2
print(c)

点击并拖拽以移动

控制流语句

在 Python 中,主要有三种基本程序结构:顺序结构、选择结构和循环结构。

一、顺序结构

顺序结构是最简单的程序结构,按照代码的先后顺序依次执行。

例如:

1
2
3
4
a = 10
b = 20
c = a + b
print(c)

点击并拖拽以移动

二、选择结构

选择结构根据条件判断来决定执行哪些代码。

在 Python 中主要使用if语句、if...else语句和if...elif...else语句。

1. if语句:

1
2
3
num = 5
if num > 0:
print("数字是正数")

点击并拖拽以移动

2. if...else语句:

1
2
3
4
5
num = -5
if num > 0:
print("数字是正数")
else:
print("数字是负数或零")

点击并拖拽以移动

3. if...elif...else语句:

1
2
3
4
5
6
7
num = 0
if num > 0:
print("数字是正数")
elif num < 0:
print("数字是负数")
else:
print("数字是零")

点击并拖拽以移动

三、循环结构

循环结构用于重复执行一段代码。

Python 中有for循环和while循环。

1. for循环:

1
2
for i in range(5):
print(i)

点击并拖拽以移动

2. while循环:

1
2
3
4
count = 0
while count < 5:
print(count)
count += 1

点击并拖拽以移动

数据结构

列表(List)

  • 列表是一种可变序列,可以存储不同类型的元素。
  • 列表的操作:索引、切片、添加元素、删除元素、排序等。
  • 示例:
1
2
3
4
5
6
7
my_list = [1, 2, "three", True]
print(my_list[1])
print(my_list[1:3])
my_list.append(5)
my_list.remove("three")
my_list.sort()
print(my_list)

点击并拖拽以移动

元组(Tuple)

  • 元组是一种不可变序列,可以存储不同类型的元素。
  • 元组的操作:索引、切片等。
  • 示例:
1
2
3
my_tuple = (1, 2, "three", True)
print(my_tuple[1])
print(my_tuple[1:3])

点击并拖拽以移动

字典(Dictionary)

  • 字典是一种无序的键值对集合,键必须是唯一的且不可变的数据类型。
  • 字典的操作:添加键值对、删除键值对、访问值等。
  • 示例:
1
2
3
4
5
my_dict = {"name": "Alice", "age": 25, "is_student": True}
print(my_dict["name"])
my_dict["city"] = "New York"
del my_dict["is_student"]
print(my_dict)

点击并拖拽以移动

集合(Set)

  • 集合是一种无序的、不包含重复元素的集合。
  • 集合的操作:添加元素、删除元素、交集、并集、差集等。
  • 示例:
1
2
3
4
5
6
7
8
my_set = {1, 2, 3, 4}
my_set.add(5)
my_set.remove(2)
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.intersection(set2))
print(set1.union(set2))
print(set1.difference(set2))

点击并拖拽以移动

函数

定义函数

  • 使用def关键字定义函数,函数可以有参数和返回值。
  • 示例:
1
2
3
4
5
def add_numbers(a, b):
return a + b

result = add_numbers(5, 3)
print(result)

点击并拖拽以移动

函数参数

  • 位置参数:按照参数的位置传递。
  • 关键字参数:通过参数名传递。
  • 默认参数:在函数定义时指定参数的默认值。
  • 可变参数:使用*args**kwargs接收任意数量的位置参数和关键字参数。
  • 示例:
1
2
3
4
5
6
def my_function(a, b, c=0, *args, **kwargs):
print(a, b, c)
print(args)
print(kwargs)

my_function(1, 2, 3, 4, 5, x=6, y=7)

点击并拖拽以移动

面向对象的编程

​ 在 Python 中,面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将数据和对数据的操作封装在对象中,通过定义类来创建对象。

一、类和对象

​ 类是对象的模板或蓝图,它定义了对象的属性(数据)和方法(行为)。对象是类的实例化,每个对象都有自己的独立状态和行为。

​ 例如,定义一个名为 “Person” 的类:

1
2
3
4
5
6
7
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

def introduce(self):
return f"Hi, I am {self.name} and I am {self.age} years old."

点击并拖拽以移动

​ 可以通过以下方式创建 “Person” 类的对象:

1
2
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

点击并拖拽以移动

二、属性和方法

1. 属性

  • 类的属性可以分为实例属性和类属性。
  • 实例属性是每个对象独有的,通过在__init__方法中定义并使用self关键字来访问。
  • 类属性是所有对象共享的,可以在类定义中直接定义,通过类名或对象名访问。

例如:

1
2
3
4
5
6
7
8
class Circle:
pi = 3.14 # 类属性

def __init__(self, radius):
self.radius = radius # 实例属性

def area(self):
return self.pi * self.radius * self.radius

点击并拖拽以移动

2. 方法

  • 方法是与类相关联的函数,用于定义对象的行为。
  • 方法可以分为实例方法、类方法和静态方法。
  • 实例方法第一个参数是self,代表对象本身,可以访问对象的属性和其他方法。
  • 类方法第一个参数是cls,代表类本身,可以访问类属性和其他类方法,使用@classmethod装饰器定义。
  • 静态方法与类和对象无关,不能访问类属性和实例属性,使用@staticmethod装饰器定义。

例如:

1
2
3
4
5
6
7
8
class MathUtils:
@classmethod
def add(cls, a, b):
return a + b

@staticmethod
def multiply(a, b):
return a * b

点击并拖拽以移动

三、封装、继承和多态

封装

  • 封装是将数据和操作数据的方法封装在类中,对外提供访问接口,隐藏内部实现细节。
  • 通过使用私有属性(以双下划线开头,如__private_attr)和私有方法(以双下划线开头,如__private_method)来实现封装。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class BankAccount:
def __init__(self, balance):
self.__balance = balance

def deposit(self, amount):
self.__balance += amount

def withdraw(self, amount):
if amount <= self.__balance:
self.__balance -= amount
else:
print("Insufficient balance.")

def get_balance(self):
return self.__balance

点击并拖拽以移动

继承

  • 继承是一种创建新类的方式,新类可以继承现有类的属性和方法,并且可以添加新的属性和方法。
  • 在 Python 中,使用类名后的括号中指定父类来实现继承。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Animal:
def __init__(self, name):
self.name = name

def speak(self):
pass

class Dog(Animal):
def speak(self):
return "Woof!"

class Cat(Animal):
def speak(self):
return "Meow!"

点击并拖拽以移动

多态

  • 多态是指不同的对象对同一消息有不同的响应方式。
  • 在 Python 中,多态通过方法重写和方法重载来实现。
  • 方法重写是子类重写父类中的方法,以实现不同的行为。
  • 方法重载在 Python 中可以通过使用默认参数或可变参数来实现类似的效果。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Shape:
def area(self):
pass

class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width

def area(self):
return self.length * self.width

class Circle(Shape):
def __init__(self, radius):
self.radius = radius

def area(self):
return 3.14 * self.radius * self.radius

点击并拖拽以移动

Python文件操作

​ 通过面向对象编程,可以提高代码的可维护性、可扩展性和可重用性。在 Python 中可以方便地进行文件操作,主要包括文件的打开、读取、写入和关闭等操作。

一、打开文件

使用open()函数来打开文件,它返回一个文件对象。

语法:file_object = open(file_name, mode)

  • file_name:要打开的文件名,可以是相对路径或绝对路径。

  • mode
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    :打开文件的模式,常见的模式有:

    - `'r'`:只读模式,文件必须存在,否则会抛出错误。
    - `'w'`:写入模式,如果文件存在则会被覆盖,如果文件不存在则会创建一个新文件。
    - `'a'`:追加模式,如果文件存在,新内容会被追加到文件末尾,如果文件不存在则会创建一个新文件。
    - `'x'`:独占创建模式,文件必须不存在,否则会抛出错误。
    - `'b'`:二进制模式,可以与其他模式结合使用,如`'rb'`表示以二进制只读模式打开文件。
    - `'t'`:文本模式(默认),可以与其他模式结合使用,如`'rt'`表示以文本只读模式打开文件。

    例如:

    ```python
    # 以只读模式打开一个文本文件
    file = open('example.txt', 'r')

点击并拖拽以移动

二、读取文件

1.使用read()方法可以读取文件的全部内容。

1
2
content = file.read()
print(content)

点击并拖拽以移动

2.使用readline()方法可以读取文件的一行内容。

1
2
line = file.readline()
print(line)

点击并拖拽以移动

3.使用readlines()方法可以读取文件的所有行,并以列表形式返回。

1
2
3
lines = file.readlines()
for line in lines:
print(line)

点击并拖拽以移动

三、写入文件

\1. 使用write()方法可以向文件写入内容。

1
2
file = open('example.txt', 'w')
file.write('Hello, world!')

点击并拖拽以移动

\2. 使用writelines()方法可以向文件写入一个字符串列表。

1
2
3
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
file = open('example.txt', 'w')
file.writelines(lines)

点击并拖拽以移动

四、关闭文件使用close()方法关闭文件,释放资源。

使用close()方法关闭文件,释放资源。

1
file.close()

点击并拖拽以移动

为了确保文件在使用后被正确关闭,也可以使用with语句,它会在代码块执行完毕后自动关闭文件

1
2
3
with open('example.txt', 'r') as file:
content = file.read()
print(content)

点击并拖拽以移动

五、文件指针操作

文件对象有一个指针,指向当前读取或写入的位置。可以使用seek()方法移动文件指针。

1
2
3
4
5
file = open('example.txt', 'r')
file.seek(10) # 将指针移动到文件的第 10 个字节处
content = file.read()
print(content)
file.close()

点击并拖拽以移动

六、文件属性和方法

文件对象有一些属性和方法可以获取文件的信息和进行其他操作。

  • name属性:返回文件的名称。
  • closed属性:判断文件是否已关闭。
  • flush()方法:刷新文件内部缓冲区,将数据立即写入文件。

例如:

1
2
3
4
5
file = open('example.txt', 'r')
print(file.name)
print(file.closed)
file.close()
print(file.closed)

点击并拖拽以移动