py基础知识点归纳总结

2024-02-29 18:42:26 浏览数 (1)

Py语法是一种高级编程语言,由于其简单易学、功能强大的特性,已经成为了当前最流行的编程语言之一。

变量

变量是存储数据的容器。在Py中,你可以用任何名称来定义一个变量,但是要遵守以下几个规则:

  • 变量名只能由字母、数字和下划线组成。
  • 变量名的第一个字符必须是字母或下划线。
  • 变量名是区分大小写的。

例如,以下代码演示了如何定义和使用变量:

代码语言:javascript复制
# 定义变量x并赋值为10
x = 10

# 打印变量x的值
print(x)

# 定义变量message并赋值为"Hello, World!"
message = "Hello, World!"

# 打印变量message的值
print(message)

输出结果:

代码语言:javascript复制
10
Hello, World!

数据类型

在Py中,常见的数据类型有整数(int)、浮点数(float)、布尔值(bool)、字符串(str)、列表(list)、元组(tuple)、字典(dict)等。以下是这些数据类型的示例:

代码语言:javascript复制
# 整数
x = 10
print(type(x))  # <class 'int'>

# 浮点数
y = 3.14
print(type(y))  # <class 'float'>

# 布尔值
a = True
b = False
print(type(a))  # <class 'bool'>
print(type(b))  # <class 'bool'>

# 字符串
message = "Hello, World!"
print(type(message))  # <class 'str'>

# 列表
my_list = [1, 2, 3, 4, 5]
print(type(my_list))  # <class 'list'>

# 元组
my_tuple = (1, 2, 3, 4, 5)
print(type(my_tuple))  # <class 'tuple'>

# 字典
my_dict = {'name': 'Jack', 'age': 25}
print(type(my_dict))  # <class 'dict'>

输出结果:

代码语言:javascript复制
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'bool'>
<class 'str'>
<class 'list'>
<class 'tuple'>
<class 'dict'>

控制流语句

控制流语句用于控制代码的执行流程。在Py中,常见的控制流语句有if语句、for循环和while循环。

  • if语句

if语句用于根据条件判断执行哪些代码块。以下是一个示例:

代码语言:javascript复制
x = 10

if x > 5:
    print("x is greater than 5")
else:
    print("x is not greater than 5")

输出结果:

代码语言:javascript复制
x is greater than 5
  • for循环

for循环用于迭代一个序列(如列表或元组)中的元素。以下是一个示例:

代码语言:javascript复制
fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
    print(fruit)

输出结果:

代码语言:javascript复制
apple
banana
cherry
  • while循环

while循环用于在条件满足的情况下重复执行代码块。以下是一个示例:

代码语言:javascript复制
i = 1

while i < 6:
    print(i)
    i  = 1

输出结果:

代码语言:javascript复制
1
2
3
4
5

函数

函数用于封装一些可以被重复使用的代码块。在Py中,你可以使用def关键字来定义函数。以下是一个示例:

代码语言:javascript复制
def square(x):
    return x ** 2

print(square(5))

输出结果:

代码语言:javascript复制
25

类和对象

Py是一种面向对象的编程语言,因此它支持类和对象的概念。在Py中,你可以使用class关键字来定义一个类,使用对象来访问这个类的属性和方法。以下是一个示例:

代码语言:javascript复制
class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def start(self):
        print("Starting the car.")

my_car = Car("Toyota", "Camry", 2021)
print(my_car.make)  # Toyota
print(my_car.model)  # Camry
print(my_car.year)  # 2021
my_car.start()  # Starting the car.

输出结果:

代码语言:javascript复制
Toyota
Camry
2021
Starting the car.

异常处理

异常处理用于处理代码运行时可能出现的错误。在Py中,你可以使用try/except语句来捕获并处理异常。以下是一个示例:

代码语言:javascript复制
try:
    x = int(input("Please enter a number: "))
    print(x)
except ValueError:
    print("That was not a valid number.")

在这个示例中,如果用户输入的不是一个数字,则会抛出ValueError异常,程序将会执行except块中的代码。

模块和包

Py中的模块和包用于组织和管理代码。模块就是一个包含函数、类等定义的文件,你可以使用import关键字来引入其他模块中的定义。而包是多个模块的集合,它们通常分别存放在不同的文件夹中。以下是一个示例:

代码语言:javascript复制
# 在my_module.py文件中定义了一个add函数
def add(x, y):
    return x   y

# 在main.py文件中引入my_module.py文件
import my_module

print(my_module.add(5, 10))  # 15

在这个示例中,我们在my_module.py文件中定义了一个add函数,然后在main.py文件中使用import关键字将my_module.py文件引入进来,并调用了其中的add函数。

文件操作

Py中的文件操作用于读取和写入文件。你可以使用open函数来打开一个文件,并使用read和write等方法来进行读写操作。以下是一个示例:

代码语言:javascript复制
# 打开test.txt文件
file = open("test.txt", "w")

# 向文件中写入一行文本
file.write("Hello, World!")

# 关闭文件
file.close()

# 再次打开test.txt文件
file = open("test.txt", "r")

# 读取文件中的内容并打印到屏幕上
print(file.read())

# 关闭文件
file.close()

在这个示例中,我们首先使用open函数打开了一个名为test.txt的文件,并使用写模式(“w”)向其中写入了一行文本。然后关闭文件并再次打开它,使用读模式(“r”)从文件中读取这行文本并将其打印到屏幕上。

正则表达式

正则表达式用于匹配字符串中的模式。在Py中,你可以使用re模块来进行正则表达式的操作。以下是一个示例:

代码语言:javascript复制
import re

# 在字符串中查找数字
text = "Hello 123 World"
result = re.search(r'd ', text)
print(result.group(0))  # 123

在这个示例中,我们通过re.search函数使用正则表达式查找了字符串text中的第一个数字,并将其打印到屏幕上。

内置函数

Py中内置了许多常用的函数,如print、len、range等。以下是这些内置函数的示例:

代码语言:javascript复制
# print函数用于输出文本到屏幕上
print("Hello, World!")

# len函数用于获取字符串、列表等对象的长度
my_string = "Hello, World!"
print(len(my_string))  # 13

my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # 5

# range函数用于生成一个范围内的整数序列
for i in range(1, 6):
    print(i)

# 输出结果:
# 1
# 2
# 3
# 4
# 5

Lambda函数

Lambda函数是一种匿名函数,它可以在需要时动态地创建和使用,通常用于函数式编程中。它的基本语法为:lambda arguments: expression,其中arguments为参数列表,expression为函数表达式。以下是一个示例:

代码语言:javascript复制
# 定义一个将两个数相加的lambda函数
add = lambda x, y: x   y

# 调用这个lambda函数
result = add(5, 10)
print(result)  # 15

在这个示例中,我们定义了一个将两个数相加的lambda函数,并使用了它来计算5和10的和。

Map函数

Map函数用于对可迭代对象中的每个元素应用某个函数,并返回一个新的可迭代对象。以下是一个示例:

代码语言:javascript复制
# 将列表中的每个元素都平方,并返回一个新的列表
my_list = [1, 2, 3, 4, 5]
squared_list = list(map(lambda x: x**2, my_list))
print(squared_list)  # [1, 4, 9, 16, 25]

在这个示例中,我们使用map函数对my_list中的每个元素应用了lambda函数,将其平方,并返回了一个新的列表。

Filter函数

Filter函数用于对可迭代对象中的每个元素进行过滤,并返回一个符合条件的元素的新的可迭代对象。以下是一个示例:

代码语言:javascript复制
# 从列表中过滤出所有的偶数,并返回一个新的列表
my_list = [1, 2, 3, 4, 5]
filtered_list = list(filter(lambda x: x % 2 == 0, my_list))
print(filtered_list)  # [2, 4]

在这个示例中,我们使用filter函数对my_list中的每个元素进行了过滤,只留下了其中的偶数,并返回了一个新的列表。

Decorator装饰器

Decorator装饰器用于在不修改已有函数代码的情况下增强其功能。它的基本语法为:@decorator,紧跟着要定义的函数,其中decorator是一个装饰器函数。以下是一个示例:

代码语言:javascript复制
# 定义一个装饰器函数,用于计算函数执行时间
import time

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print("Time taken: ", end_time - start_time)
        return result
    return wrapper

# 使用这个装饰器装饰一个函数
@timer
def my_function():
    time.sleep(2)
    print("Function executed.")

# 调用被装饰的函数
my_function()

在这个示例中,我们定义了一个装饰器函数timer,它可以计算被装饰的函数的执行时间。然后我们用@timer语法将my_function函数装饰起来,使它支持计算执行时间的功能。最后我们调用了被装饰的my_function函数并观察结果。

迭代器和生成器

Py中的迭代器和生成器用于处理大数据集合或无限序列等情况。迭代器是一种对象,它支持在遍历时逐个返回元素。而生成器是一种特殊的迭代器,它可以在需要时动态地生成元素。以下是一个示例:

代码语言:javascript复制
# 定义一个简单的迭代器类,用于遍历一个列表
class MyIterator:
    def __init__(self, my_list):
        self.index = 0
        self.my_list = my_list

    def __iter__(self):
        return self

    def __next__(self):
        if self.index < len(self.my_list):
            result = self.my_list[self.index]
            self.index  = 1
            return result
        else:
            raise StopIteration

# 使用这个迭代器来遍历一个列表
my_list = [1, 2, 3, 4, 5]
my_iterator = MyIterator(my_list)
for item in my_iterator:
    print(item)


# 定义一个简单的生成器函数,用于生成一个斐波那契数列
def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a   b

# 使用这个生成器来生成一个斐波那契数列
fib = fibonacci()
for i in range(10):
    print(next(fib))

在这个示例中,我们定义了一个简单的迭代器类MyIterator,它可以遍历一个列表。然后我们使用这个迭代器来遍历my_list列表,并打印其中的元素。

另外,我们还定义了一个简单的生成器函数fibonacci,它可以生成一个无限序列的斐波那契数列。然后我们使用这个生成器来生成一个长度为10的斐波那契数列。

多线程和多进程

Py中的多线程和多进程用于在同一时间内运行多个任务,以提高程序的性能。多线程是在同一进程内同时运行多个线程,而多进程则是启动多个进程并在它们之间分配任务。以下是一个示例:

代码语言:javascript复制
# 使用多线程处理一些任务
import threading

def task1():
    print("Task 1 executed.")

def task2():
    print("Task 2 executed.")

# 同时运行两个线程
thread1 = threading.Thread(target=task1)
thread2 = threading.Thread(target=task2)
thread1.start()
thread2.start()


# 使用多进程处理一些任务
import multiprocessing

def task3():
    print("Task 3 executed.")

def task4():
    print("Task 4 executed.")

# 同时启动两个进程
process1 = multiprocessing.Process(target=task3)
process2 = multiprocessing.Process(target=task4)
process1.start()
process2.start()

在这个示例中,我们使用多线程和多进程来同时处理一些任务。对于多线程,我们使用threading模块创建了两个线程,并在它们之间分配了任务。而对于多进程,我们使用multiprocessing模块启动了两个进程,并在它们之间分配了任务。

注意,在Py中使用多线程和多进程时需要注意线程安全和进程间通信等问题,避免产生死锁、竞态条件等问题。

异常处理

Py中的异常处理机制用于处理程序在运行时出现的错误或异常情况,以避免程序崩溃或产生不可预料的结果。异常处理使用try-except结构来捕获异常并执行相关的处理逻辑。以下是一个示例:

代码语言:javascript复制
# 使用异常处理机制处理程序中的错误
try:
    x = 1 / 0
except ZeroDivisionError:
    print("Cannot divide by zero.")

# 使用多个except块来处理不同类型的异常
try:
    my_list = [1, 2, 3]
    print(my_list[3])
except IndexError:
    print("Index out of range.")
except ValueError:
    print("Invalid value.")
except:
    print("Some other error occurred.")

在这个示例中,我们使用try-except结构来捕获程序中的错误。第一个try语句中我们尝试除以0,这会引发一个ZeroDivisionError异常,于是我们用except语句捕获这个异常,并打印一条错误消息。

而第二个try语句中我们尝试访问列表my_list中的第4个元素,这会引发一个IndexError异常,于是我们用一个except块来捕获这个异常并打印一条错误消息。另外,我们还添加了一个ValueError和一个通用的except块,分别用于处理其它类型的异常。

with语句

Py中的with语句用于管理一些资源(例如文件)的打开与关闭,以避免因忘记关闭资源而造成的泄漏或错误。with语句中使用的对象必须具有__enter__()和__exit__()方法。以下是一个示例:

代码语言:javascript复制
# 使用with语句自动管理文件资源
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

在这个示例中,我们使用with语句来自动管理文件资源。当程序离开with代码块时,文件会自动关闭,无需手动调用close()方法。

Python标准库和第三方库

Py中包含了大量的标准库,这些库提供了丰富的功能和工具,可以帮助我们更轻松地编写代码。另外,还有许多第三方库可以扩展Py的功能,例如NumPy、Pandas和Django等。以下是一个示例:

代码语言:javascript复制
# 使用标准库中的random模块和datetime模块
import random
import datetime

# 生成一个长度为10的随机数列表
my_list = [random.randint(1, 100) for _ in range(10)]
print(my_list)

# 获取当前时间并格式化输出
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))

在这个示例中,我们使用了标准库中的random模块和datetime模块。其中,random模块用于生成随机数,而datetime模块用于获取当前时间并进行格式化输出。

Py的应用领域

Py可以应用于多种领域,例如Web开发、数据科学、人工智能、自然语言处理、游戏开发等。以下是一些示例:

  • Web开发:使用Django或Flask等框架进行Web应用程序的开发。
  • 数据科学:使用NumPy、Pandas和Matplotlib等库进行数据分析和可视化。
  • 人工智能:使用TensorFlow和PyTorch等库进行机器学习和深度学习等任务。
  • 自然语言处理:使用NLTK和SpaCy等库进行文本分析和处理。
  • 游戏开发:使用Pygame等工具进行2D游戏的开发。

总之,Py是一种功能强大、易于学习和使用的编程语言,可以用于多种领域的应用开发。

0 人点赞