当前位置: 首页 > news >正文

【Python】语法入门

文章目录

  • Python 基础语法:打印和变量
    • 打印和变量的基本语法
      • 打印
      • 变量
    • 变量操作
    • 变量的命名规则
    • 打印和变量的应用场景
      • 示例:基本计算器
  • Python 基础语法:列表推导式
    • 列表推导式的基本语法
    • 基本示例
    • 带条件的列表推导式
    • 列表推导式的应用场景
  • Python 基础语法:数据类型
    • 数据类型的基本介绍
      • 整数和浮点数
      • 字符串
      • 列表
      • 元组
      • 字典
      • 集合
    • 数据类型的应用场景
  • Python 基础语法:条件语句
    • 条件语句的基本语法
      • if 语句
      • if-else 语句
      • if-elif-else 语句
    • 基本示例
    • 条件语句的应用场景
  • Python 基础语法:循环
    • 循环的基本语法
      • for 循环
      • while 循环
    • 基本示例
      • for 循环示例
      • while 循环示例
    • 循环的应用场景
  • Python 基础语法:函数
    • 函数的基本语法
    • 基本示例
    • 带多个参数的函数
    • 默认参数
    • 函数的应用场景
  • Python 基础语法:类和对象
    • 类和对象的基本语法
      • 定义类
      • 创建对象
    • 基本示例
    • 访问对象的属性和方法
    • 类和对象的应用场景
  • Python 基础语法:列表推导式
    • 列表推导式的基本语法
    • 基本示例
    • 带条件的列表推导式
    • 列表推导式的应用场景
  • Python 基础语法:生成器
    • 生成器的基本语法
    • 基本示例
    • 生成器的应用场景
  • Python 基础语法:文件操作
    • 文件操作的基本语法
      • 打开文件
      • 读写文件
    • 基本示例
      • 读取文件
      • 写入文件
      • 逐行读取文件
    • 文件操作的应用场景
  • Python 基础语法:错误和异常处理
    • 错误和异常处理的基本语法
      • try-except 语句
      • try-except-finally 语句
    • 基本示例
      • 捕获异常
      • 捕获多个异常
      • finally 子句
    • 异常处理的应用场景
  • Python 基础语法:迭代器
    • 迭代器的基本语法
      • 创建迭代器
      • 使用迭代器
    • 基本示例
      • 简单的迭代器示例
      • 自定义迭代器
    • 迭代器的应用场景
  • Python 基础语法:Lambda 表达式
    • Lambda 表达式的基本语法
    • 基本示例
    • 在内置函数中使用 Lambda 表达式
      • 排序
      • 映射
      • 过滤
    • Lambda 表达式的应用场景
  • Python 基础语法:模块和包
    • 模块的基本语法
      • 导入模块
      • 导入特定函数或变量
      • 给模块或函数取别名
    • 创建自定义模块
      • 例如创建一个名为 `my_module.py` 的文件:
      • 在另一个文件中使用自定义模块:
    • 包的基本语法
      • 创建一个包结构:
      • `module1.py`:
      • `module2.py`:
      • 使用包中的模块:
    • 模块和包的应用场景
  • Python 基础语法:主要标准库
    • `datetime` 模块
      • 基本示例
    • `math` 模块
      • 基本示例
    • `random` 模块
      • 基本示例
    • `os` 模块
      • 基本示例
    • `sys` 模块
      • 基本示例
    • 标准库的应用场景

目录如下:


打印和变量
数据类型
条件语句
循环
函数
类和对象
列表推导式
生成器
文件操作
错误和异常处理
迭代器
Lambda 表达式
模块和包
主要标准库


Python 基础语法:打印和变量

在 Python 中,print 函数用于输出信息,变量用于存储数据。这是编程中的基本操作,适用于所有需要输出结果或存储临时数据的场景。

打印和变量的基本语法

打印

使用 print 函数可以输出文本或变量的值:

print("Hello, World!")

输出:

Hello, World!

变量

变量用于存储数据,可以是各种数据类型,如整数、浮点数、字符串等:

# 整数
a = 10# 浮点数
b = 20.5# 字符串
name = "Blossom"

你可以使用 print 函数输出变量的值:

print(a)  # 输出: 10
print(b)  # 输出: 20.5
print(name)  # 输出: Blossom

变量操作

你可以对变量进行各种操作,如赋值、运算等:

# 赋值
c = a + b# 输出运算结果
print(c)  # 输出: 30.5

变量的命名规则

变量名必须以字母或下划线开头,后续字符可以是字母、数字或下划线。变量名区分大小写:

age = 25
Age = 30print(age)  # 输出: 25
print(Age)  # 输出: 30

打印和变量的应用场景

打印和变量是编程的基本操作,适用于以下场景:

  1. 调试代码:使用 print 输出变量值,帮助调试和理解代码执行过程。
  2. 与用户交互:在命令行程序中,print 函数用于显示提示和结果。
  3. 数据存储和处理:变量用于存储临时数据和中间计算结果。

示例:基本计算器

以下是一个简单的计算器示例,展示如何使用变量存储用户输入并输出计算结果:

# 获取用户输入
num1 = float(input("Enter first number: "))
num2 = float(input("Enter second number: "))# 进行加法运算
result = num1 + num2# 输出结果
print(f"The result of adding {num1} and {num2} is {result}")

在这个示例中,用户输入的两个数字被存储在变量 num1num2 中,然后计算结果存储在变量 result 中并输出。


Python 基础语法:列表推导式

列表推导式是 Python 中一种简洁且优雅的创建列表的方式。通过列表推导式,你可以在一行代码中生成新的列表,并且这种方式通常比使用传统的 for 循环更加高效。

列表推导式的基本语法

列表推导式的基本语法如下:

[expression for item in iterable if condition]
  • expression 是你想要对每个元素执行的操作。
  • item 是从 iterable 中迭代出来的元素。
  • condition 是一个可选的过滤条件,只有满足条件的元素才会被包含在新列表中。

基本示例

让我们从一个简单的例子开始,创建一个包含 0 到 9 的平方数的列表:

squares = [x ** 2 for x in range(10)]
print(squares)

输出:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

在这个例子中,x ** 2 是表达式,x 是从 range(10) 迭代出来的元素。

带条件的列表推导式

你可以在列表推导式中加入条件,只包含满足条件的元素。例如,创建一个仅包含偶数平方数的列表:

even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)

输出:

[0, 4, 16, 36, 64]

在这个例子中,只有当 x 是偶数时,x ** 2 才会被包含在新列表中。

列表推导式的应用场景

列表推导式在许多场景中都非常有用,以下是一些常见的应用:

  1. 数据处理和转换:可以用来对列表中的每个元素进行转换或计算。

    temperatures_celsius = [0, 10, 20, 30]
    temperatures_fahrenheit = [((9/5) * temp + 32) for temp in temperatures_celsius]
    print(temperatures_fahrenheit)  # [32.0, 50.0, 68.0, 86.0]
    
  2. 过滤数据:可以用来从列表中筛选出符合条件的元素。

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    even_numbers = [num for num in numbers if num % 2 == 0]
    print(even_numbers)  # [2, 4, 6, 8, 10]
    
  3. 嵌套列表的扁平化:可以用来将嵌套的列表扁平化为一维列表。

    nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    flat_list = [num for sublist in nested_list for num in sublist]
    print(flat_list)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

列表推导式是一个强大且灵活的工具,掌握它将极大提升你的 Python 编程效率。



Python 基础语法:数据类型

Python 支持多种数据类型,包括整数、浮点数、字符串、列表、元组、字典和集合。选择合适的数据类型有助于更高效地处理数据。

数据类型的基本介绍

整数和浮点数

整数和浮点数用于表示数值数据:

# 整数
x = 5# 浮点数
y = 2.5print(x)  # 输出: 5
print(y)  # 输出: 2.5

字符串

字符串用于表示文本数据,可以用单引号或双引号定义:

# 字符串
name = "Blossom"print(name)  # 输出: Blossom

字符串还支持多行字符串,使用三重引号定义:

# 多行字符串
multiline_string = """This is
a multi-line
string"""print(multiline_string)

列表

列表是有序的可变序列,用于存储多个元素:

# 列表
my_list = [1, 2, 3, 4]print(my_list)  # 输出: [1, 2, 3, 4]

元组

元组是有序的不可变序列,用于存储多个元素:

# 元组
my_tuple = (1, 2, 3, 4)print(my_tuple)  # 输出: (1, 2, 3, 4)

字典

字典是无序的键值对集合,用于存储具有映射关系的数据:

# 字典
my_dict = {"name": "Blossom", "age": 30}print(my_dict)  # 输出: {'name': 'Blossom', 'age': 30}

集合

集合是无序的不重复元素集合:

# 集合
my_set = {1, 2, 3, 4}print(my_set)  # 输出: {1, 2, 3, 4}

数据类型的应用场景

不同的数据类型适用于不同的场景,以下是一些常见的应用:

  1. 整数和浮点数:用于数学计算和数值处理。

    radius = 5.0
    area = 3.14 * (radius ** 2)
    print(area)  # 输出: 78.5
    
  2. 字符串:用于存储和处理文本数据。

    first_name = "John"
    last_name = "Doe"
    full_name = first_name + " " + last_name
    print(full_name)  # 输出: John Doe
    
  3. 列表:用于存储和操作有序的元素集合。

    fruits = ["apple", "banana", "cherry"]
    fruits.append("orange")
    print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange']
    
  4. 元组:用于存储不可变的元素集合。

    coordinates = (10.0, 20.0)
    print(coordinates)  # 输出: (10.0, 20.0)
    
  5. 字典:用于存储具有映射关系的数据。

    person = {"name": "Alice", "age": 25}
    print(person["name"])  # 输出: Alice
    
  6. 集合:用于存储不重复的元素集合。

    unique_numbers = {1, 2, 3, 4, 4, 5}
    print(unique_numbers)  # 输出: {1, 2, 3, 4, 5}
    

掌握这些数据类型将帮助你更高效地编写 Python 程序,并使你的代码更具可读性和可维护性。



Python 基础语法:条件语句

条件语句用于根据条件执行不同的代码块。这在需要根据条件做出决策的场景中非常有用,例如用户输入验证和业务逻辑处理。

条件语句的基本语法

if 语句

if condition:# 当 condition 为 True 时执行的代码块pass

if-else 语句

if condition:# 当 condition 为 True 时执行的代码块pass
else:# 当 condition 为 False 时执行的代码块pass

if-elif-else 语句

if condition1:# 当 condition1 为 True 时执行的代码块pass
elif condition2:# 当 condition1 为 False 且 condition2 为 True 时执行的代码块pass
else:# 当 condition1 和 condition2 都为 False 时执行的代码块pass

基本示例

让我们从一个简单的例子开始,根据变量的值打印不同的信息:

x = 10
y = 20if x > y:print("x is greater than y")
elif x < y:print("x is less than y")
else:print("x is equal to y")

输出:

x is less than y

在这个例子中,条件语句检查 xy 的值,并根据条件执行不同的代码块。

条件语句的应用场景

条件语句在许多场景中都非常有用,以下是一些常见的应用:

  1. 用户输入验证:检查用户输入的值是否符合预期。

    age = int(input("Enter your age: "))if age < 0:print("Age cannot be negative")
    elif age < 18:print("You are a minor")
    else:print("You are an adult")
    
  2. 业务逻辑处理:根据不同的条件执行不同的业务逻辑。

    score = 85if score >= 90:grade = "A"
    elif score >= 80:grade = "B"
    elif score >= 70:grade = "C"
    elif score >= 60:grade = "D"
    else:grade = "F"print(f"Your grade is {grade}")
    
  3. 流程控制:控制程序的执行流程,决定是否继续执行某些操作。

    is_member = Trueif is_member:print("Access granted")
    else:print("Access denied")
    

掌握条件语句将帮助你编写更智能和更灵活的 Python 程序,使你的代码能够根据不同的情况做出相应的反应。



Python 基础语法:循环

循环用于重复执行一段代码,直到满足特定条件。循环广泛应用于遍历数据结构、重复计算任务和自动化处理。

循环的基本语法

for 循环

for item in iterable:# 对 iterable 中的每个 item 执行的代码块pass

while 循环

while condition:# 当 condition 为 True 时重复执行的代码块pass

基本示例

for 循环示例

让我们从一个简单的例子开始,使用 for 循环遍历一个列表并打印每个元素:

fruits = ["apple", "banana", "cherry"]for fruit in fruits:print(fruit)

输出:

apple
banana
cherry

在这个例子中,for 循环遍历列表 fruits 并打印每个水果。

while 循环示例

以下是一个使用 while 循环打印从 0 到 4 的例子:

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

输出:

0
1
2
3
4

在这个例子中,while 循环在 count 小于 5 时重复执行,打印当前的 count 值并将 count 增加 1。

循环的应用场景

循环在许多场景中都非常有用,以下是一些常见的应用:

  1. 遍历数据结构:循环用于遍历列表、元组、字典等数据结构。

    names = ["Alice", "Bob", "Charlie"]for name in names:print(f"Hello, {name}!")
    
  2. 重复计算任务:循环用于重复执行某个计算任务。

    total = 0for i in range(1, 11):total += iprint(f"The sum of numbers from 1 to 10 is {total}")
    
  3. 自动化处理:循环用于自动化处理多项任务,例如批量处理文件。

    files = ["file1.txt", "file2.txt", "file3.txt"]for file in files:with open(file, "r") as f:content = f.read()print(content)
    

掌握循环将帮助你编写更高效和灵活的 Python 程序,使你的代码能够自动化执行重复性任务。



Python 基础语法:函数

函数用于封装一段代码,可以多次调用,减少代码重复。函数使代码更具可读性和可维护性。

函数的基本语法

def function_name(parameters):# 函数体return result
  • def 关键字用于定义函数。
  • function_name 是函数的名称。
  • parameters 是函数的参数,可以有多个,用逗号分隔。
  • return 关键字用于返回结果。

基本示例

让我们从一个简单的例子开始,定义一个函数并调用它:

def greet(name):return f"Hello, {name}!"print(greet("Blossom"))  # 输出: Hello, Blossom!

在这个例子中,greet 函数接受一个参数 name,返回一个问候字符串。

带多个参数的函数

你可以定义带有多个参数的函数:

def add(a, b):return a + bprint(add(3, 5))  # 输出: 8

在这个例子中,add 函数接受两个参数 ab,返回它们的和。

默认参数

函数参数可以有默认值,如果调用函数时未提供该参数,则使用默认值:

def greet(name, message="Hello"):return f"{message}, {name}!"print(greet("Blossom"))  # 输出: Hello, Blossom!
print(greet("Blossom", "Hi"))  # 输出: Hi, Blossom!

在这个例子中,message 参数有一个默认值 "Hello"

函数的应用场景

函数在许多场景中都非常有用,以下是一些常见的应用:

  1. 代码重用:函数使代码可以重复使用,避免代码重复。

    def square(x):return x ** 2print(square(2))  # 输出: 4
    print(square(3))  # 输出: 9
    
  2. 提高可读性:函数使代码更具结构性和可读性。

    def is_even(number):return number % 2 == 0print(is_even(4))  # 输出: True
    print(is_even(5))  # 输出: False
    
  3. 分解问题:函数使你可以将复杂的问题分解为多个小问题,每个小问题对应一个函数。

    def calculate_area(radius):return 3.14 * (radius ** 2)def calculate_circumference(radius):return 2 * 3.14 * radiusradius = 5
    print(f"Area: {calculate_area(radius)}")  # 输出: Area: 78.5
    print(f"Circumference: {calculate_circumference(radius)}")  # 输出: Circumference: 31.400000000000002
    

掌握函数将帮助你编写更简洁和高效的 Python 程序,使你的代码更具可维护性。



Python 基础语法:类和对象

类是面向对象编程的核心,用于定义对象的属性和行为。对象是类的实例,类和对象使

程序具有更高的可重用性和可维护性。

类和对象的基本语法

定义类

class ClassName:def __init__(self, parameters):# 初始化属性self.attribute = valuedef method(self):# 方法体pass

创建对象

# 创建类的实例
object_name = ClassName(arguments)

基本示例

让我们从一个简单的例子开始,定义一个类并创建它的对象:

class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):return f"{self.name} says woof!"# 创建对象
my_dog = Dog("Buddy", 3)
print(my_dog.bark())  # 输出: Buddy says woof!

在这个例子中,Dog 类有一个初始化方法 __init__,用于设置 nameage 属性,并有一个方法 bark,返回狗叫的声音。

访问对象的属性和方法

# 访问属性
print(my_dog.name)  # 输出: Buddy
print(my_dog.age)   # 输出: 3# 调用方法
print(my_dog.bark())  # 输出: Buddy says woof!

类和对象的应用场景

类和对象在许多场景中都非常有用,以下是一些常见的应用:

  1. 模拟现实世界实体:类和对象用于模拟现实世界中的实体及其行为。

    class Car:def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yeardef description(self):return f"{self.year} {self.make} {self.model}"my_car = Car("Toyota", "Corolla", 2020)
    print(my_car.description())  # 输出: 2020 Toyota Corolla
    
  2. 封装数据和行为:类和对象用于封装数据和相关的行为,提高代码的可维护性和可扩展性。

    class BankAccount:def __init__(self, owner, balance=0):self.owner = ownerself.balance = balancedef deposit(self, amount):self.balance += amountreturn self.balancedef withdraw(self, amount):if amount <= self.balance:self.balance -= amountreturn self.balanceelse:return "Insufficient funds"account = BankAccount("Alice", 100)
    print(account.deposit(50))  # 输出: 150
    print(account.withdraw(30))  # 输出: 120
    print(account.withdraw(200))  # 输出: Insufficient funds
    
  3. 实现代码重用:类和对象用于实现代码重用,通过继承和多态实现复杂的功能。

    class Animal:def __init__(self, name):self.name = namedef speak(self):raise NotImplementedError("Subclass must implement abstract method")class Dog(Animal):def speak(self):return f"{self.name} says woof!"class Cat(Animal):def speak(self):return f"{self.name} says meow!"my_dog = Dog("Buddy")
    my_cat = Cat("Kitty")
    print(my_dog.speak())  # 输出: Buddy says woof!
    print(my_cat.speak())  # 输出: Kitty says meow!
    

掌握类和对象将帮助你编写更具结构性和可维护性的 Python 程序,使你的代码能够更好地模拟现实世界的问题和解决方案。



Python 基础语法:列表推导式

列表推导式是 Python 中一种简洁且优雅的创建列表的方式。通过列表推导式,你可以在一行代码中生成新的列表,并且这种方式通常比使用传统的 for 循环更加高效。

列表推导式的基本语法

[expression for item in iterable if condition]
  • expression 是你想要对每个元素执行的操作。
  • item 是从 iterable 中迭代出来的元素。
  • condition 是一个可选的过滤条件,只有满足条件的元素才会被包含在新列表中。

基本示例

让我们从一个简单的例子开始,创建一个包含 0 到 9 的平方数的列表:

squares = [x ** 2 for x in range(10)]
print(squares)

输出:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

在这个例子中,x ** 2 是表达式,x 是从 range(10) 迭代出来的元素。

带条件的列表推导式

你可以在列表推导式中加入条件,只包含满足条件的元素。例如,创建一个仅包含偶数平方数的列表:

even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)

输出:

[0, 4, 16, 36, 64]

在这个例子中,只有当 x 是偶数时,x ** 2 才会被包含在新列表中。

列表推导式的应用场景

列表推导式在许多场景中都非常有用,以下是一些常见的应用:

  1. 数据处理和转换:可以用来对列表中的每个元素进行转换或计算。

    temperatures_celsius = [0, 10, 20, 30]
    temperatures_fahrenheit = [((9/5) * temp + 32) for temp in temperatures_celsius]
    print(temperatures_fahrenheit)  # [32.0, 50.0, 68.0, 86.0]
    
  2. 过滤数据:可以用来从列表中筛选出符合条件的元素。

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    even_numbers = [num for num in numbers if num % 2 == 0]
    print(even_numbers)  # [2, 4, 6, 8, 10]
    
  3. 嵌套列表的扁平化:可以用来将嵌套的列表扁平化为一维列表。

    nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    flat_list = [num for sublist in nested_list for num in sublist]
    print(flat_list)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

列表推导式是一个强大且灵活的工具,掌握它将极大提升你的 Python 编程效率。



Python 基础语法:生成器

生成器(Generator)是一种特殊的迭代器,用于逐个产生(或“生成”)值,而不是一次性地生成所有值。生成器在处理大量数据或需要延迟计算时特别有用。

生成器的基本语法

生成器使用 yield 关键字逐个返回值,而不是使用 return 一次性返回。

def generator_function():yield value

基本示例

让我们从一个简单的例子开始,定义一个生成器并使用它:

def count_up_to(max):count = 1while count <= max:yield countcount += 1# 使用生成器
counter = count_up_to(5)
for num in counter:print(num)  # 输出: 1 2 3 4 5

在这个例子中,count_up_to 生成器按需生成从 1 到 max 的数字。每次 yield 返回一个值后,生成器暂停并保留其状态,直到下次调用。

生成器的应用场景

生成器在许多场景中都非常有用,以下是一些常见的应用:

  1. 处理大数据集:生成器按需生成值,避免一次性占用大量内存。

    def read_large_file(file_path):with open(file_path, 'r') as file:for line in file:yield line.strip()# 使用生成器逐行读取大文件
    for line in read_large_file('large_file.txt'):print(line)
    
  2. 延迟计算:生成器在需要时生成值,可以提高

程序的性能。

def fibonacci(n):a, b = 0, 1while n > 0:yield aa, b = b, a + bn -= 1# 使用生成器生成前10个斐波那契数
for num in fibonacci(10):print(num)  # 输出前10个斐波那契数
  1. 生成无限序列:生成器可以用于生成无限序列,直到满足特定条件。

    def infinite_sequence():num = 0while True:yield numnum += 1# 使用生成器生成无限序列
    for num in infinite_sequence():if num > 10:breakprint(num)  # 输出: 0 1 2 3 4 5 6 7 8 9 10
    

掌握生成器将帮助你编写更高效和灵活的 Python 程序,特别是在处理大数据集或需要延迟计算的场景中。



Python 基础语法:文件操作

文件操作是编程中常见的任务,Python 提供了一组函数来读写文件。文件操作在数据处理和存储中非常常用。

文件操作的基本语法

打开文件

使用 open 函数打开文件:

file = open("filename.txt", "mode")
  • filename.txt 是文件名。
  • mode 是文件打开模式,如读取('r')、写入('w')、追加('a')等。

读写文件

# 读取文件
with open("example.txt", "r") as file:content = file.read()print(content)# 写入文件
with open("example.txt", "w") as file:file.write("Hello, World!")

基本示例

读取文件

以下是一个读取文件内容并打印的例子:

with open("example.txt", "r") as file:content = file.read()print(content)

写入文件

以下是一个将文本写入文件的例子:

with open("example.txt", "w") as file:file.write("Hello, World!")

逐行读取文件

以下是一个逐行读取文件内容的例子:

with open("example.txt", "r") as file:for line in file:print(line.strip())

文件操作的应用场景

文件操作在许多场景中都非常有用,以下是一些常见的应用:

  1. 日志记录:将程序运行的日志写入文件,便于后续分析和调试。

    def log_message(message):with open("log.txt", "a") as file:file.write(message + "\n")log_message("Program started")
    log_message("An error occurred")
    
  2. 数据存储和读取:将数据存储到文件中,以便后续读取和处理。

    data = ["line 1", "line 2", "line 3"]# 写入数据
    with open("data.txt", "w") as file:for line in data:file.write(line + "\n")# 读取数据
    with open("data.txt", "r") as file:content = file.read()print(content)
    
  3. 配置文件:读取和写入配置文件,动态配置程序参数。

    # 写入配置
    with open("config.txt", "w") as file:file.write("username=admin\n")file.write("password=secret\n")# 读取配置
    config = {}
    with open("config.txt", "r") as file:for line in file:key, value = line.strip().split("=")config[key] = valueprint(config)  # 输出: {'username': 'admin', 'password': 'secret'}
    

掌握文件操作将帮助你处理数据的读写任务,使你的程序能够持久化数据并与外部文件进行交互。



Python 基础语法:错误和异常处理

错误和异常处理用于捕获和处理程序中的错误,确保程序在发生错误时不会崩溃。异常处理使你的代码更具鲁棒性和可靠性。

错误和异常处理的基本语法

try-except 语句

try:# 可能引发异常的代码pass
except SomeException as e:# 处理异常的代码pass

try-except-finally 语句

try:# 可能引发异常的代码pass
except SomeException as e:# 处理异常的代码pass
finally:# 始终执行的代码pass

基本示例

捕获异常

以下是一个捕获除零错误的例子:

try:result = 10 / 0
except ZeroDivisionError:print("You can't divide by zero!")

输出:

You can't divide by zero!

捕获多个异常

你可以捕获多个异常,并对每种异常进行不同的处理:

try:value = int("abc")
except ValueError:print("ValueError: Could not convert string to int")
except TypeError:print("TypeError: Unsupported operation")

输出:

ValueError: Could not convert string to int

finally 子句

finally 子句中的代码始终会执行,无论是否发生异常:

try:file = open("example.txt", "r")content = file.read()
except FileNotFoundError:print("File not found")
finally:file.close()print("File closed")

异常处理的应用场景

异常处理在许多场景中都非常有用,以下是一些常见的应用:

  1. 用户输入验证:捕获和处理用户输入的错误。

    while True:try:age = int(input("Enter your age: "))breakexcept ValueError:print("Invalid input. Please enter a number.")
    print(f"Your age is {age}")
    
  2. 文件操作:捕获和处理文件读写中的错误。

    try:with open("data.txt", "r") as file:content = file.read()print(content)
    except FileNotFoundError:print("File not found")
    
  3. 网络请求:捕获和处理网络请求中的错误。

    import requeststry:response = requests.get("https://api.example.com/data")data = response.json()
    except requests.ConnectionError:print("Failed to connect to the server")
    except requests.Timeout:print("The request timed out")
    except requests.RequestException as e:print(f"An error occurred: {e}")
    

掌握错误和异常处理将帮助你编写更健壮和可靠的 Python 程序,使你的代码能够在发生错误时优雅地处理并继续运行。



Python 基础语法:迭代器

迭代器(Iterator)是一个对象,它包含一个 countable 的元素序列,可以遍历其中的元素。迭代器在处理序列数据时非常有用。

迭代器的基本语法

创建迭代器

使用 iter() 函数可以将一个可迭代对象转换为迭代器:

iterable = [1, 2, 3, 4]
iterator = iter(iterable)

使用迭代器

使用 next() 函数可以获取迭代器的下一个元素:

print(next(iterator))  # 输出: 1
print(next(iterator))  # 输出: 2
print(next(iterator))  # 输出: 3
print(next(iterator))  # 输出: 4

当迭代器没有更多元素时,next() 函数会引发 StopIteration 异常。

基本示例

简单的迭代器示例

以下是一个使用迭代器遍历列表的例子:

my_list = [1, 2, 3, 4]
my_iterator = iter(my_list)for item in my_iterator:print(item)

输出:

1
2
3
4

自定义迭代器

你可以通过实现 __iter__()__next__() 方法来自定义迭代器:

class MyIterator:def __init__(self, start, end):self.current =startself.end = enddef __iter__(self):return selfdef __next__(self):if self.current >= self.end:raise StopIterationelse:self.current += 1return self.current - 1# 使用自定义迭代器
for num in MyIterator(1, 5):print(num)

输出:

1
2
3
4

迭代器的应用场景

迭代器在许多场景中都非常有用,以下是一些常见的应用:

  1. 遍历大型数据集:迭代器按需生成元素,避免一次性加载所有数据。

    def read_large_file(file_path):with open(file_path, 'r') as file:for line in file:yield line.strip()# 使用生成器逐行读取大文件
    for line in read_large_file('large_file.txt'):print(line)
    
  2. 自定义序列生成:通过自定义迭代器,可以生成复杂的序列。

    class FibonacciIterator:def __init__(self, max):self.max = maxself.a, self.b = 0, 1def __iter__(self):return selfdef __next__(self):if self.a > self.max:raise StopIterationcurrent = self.aself.a, self.b = self.b, self.a + self.breturn current# 使用自定义迭代器生成斐波那契数列
    for num in FibonacciIterator(100):print(num)
    
  3. 延迟计算:迭代器在需要时生成值,提高程序的性能和内存利用率。

    def infinite_sequence():num = 0while True:yield numnum += 1# 使用生成器生成无限序列
    for num in infinite_sequence():if num > 10:breakprint(num)  # 输出: 0 1 2 3 4 5 6 7 8 9 10
    

掌握迭代器将帮助你编写更高效和灵活的 Python 程序,使你的代码能够优雅地处理大型数据集和复杂的序列生成。



Python 基础语法:Lambda 表达式

Lambda 表达式是一种简洁的定义小型匿名函数的方法。Lambda 表达式通常用于需要一个简单函数的场景,如排序或过滤数据。

Lambda 表达式的基本语法

lambda parameters: expression
  • parameters 是函数的参数,可以有多个,用逗号分隔。
  • expression 是函数的返回值,通常是一个简单的计算或操作。

基本示例

让我们从一个简单的例子开始,定义一个 Lambda 表达式并调用它:

add = lambda x, y: x + y
print(add(3, 5))  # 输出: 8

在这个例子中,lambda x, y: x + y 定义了一个接受两个参数并返回它们和的匿名函数。

在内置函数中使用 Lambda 表达式

Lambda 表达式常用于内置函数中,如 sortedmapfilter

排序

使用 sorted 函数和 Lambda 表达式对列表进行排序:

my_list = [(1, 2), (3, 4), (5, 0)]
sorted_list = sorted(my_list, key=lambda x: x[1])
print(sorted_list)  # 输出: [(5, 0), (1, 2), (3, 4)]

映射

使用 map 函数和 Lambda 表达式对列表中的每个元素进行操作:

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 输出: [1, 4, 9, 16, 25]

过滤

使用 filter 函数和 Lambda 表达式过滤列表中的元素:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 输出: [2, 4, 6, 8, 10]

Lambda 表达式的应用场景

Lambda 表达式在许多场景中都非常有用,以下是一些常见的应用:

  1. 简化代码:Lambda 表达式用于定义简单的匿名函数,简化代码结构。

    multiply = lambda x, y: x * y
    print(multiply(2, 3))  # 输出: 6
    
  2. 排序和过滤:Lambda 表达式常用于排序和过滤数据,使代码更简洁。

    students = [{"name": "Alice", "score": 85},{"name": "Bob", "score": 92},{"name": "Charlie", "score": 78}
    ]# 按分数排序
    sorted_students = sorted(students, key=lambda student: student["score"])
    print(sorted_students)
    
  3. 回调函数:Lambda 表达式常用于回调函数中,使代码更紧凑。

    def apply_function(func, value):return func(value)result = apply_function(lambda x: x ** 2, 5)
    print(result)  # 输出: 25
    

掌握 Lambda 表达式将帮助你编写更简洁和高效的 Python 代码,使你的代码更具可读性和可维护性。



Python 基础语法:模块和包

模块和包是组织和管理代码的基本单元。模块是包含 Python 代码的文件,包是包含多个模块的文件夹。通过模块和包,你可以将代码分割成更小、更易管理的部分,提高代码的重用性和可维护性。

模块的基本语法

导入模块

使用 import 关键字可以导入模块:

import mathprint(math.sqrt(16))  # 输出: 4.0

导入特定函数或变量

使用 from ... import ... 语法可以从模块中导入特定的函数或变量:

from math import piprint(pi)  # 输出: 3.141592653589793

给模块或函数取别名

使用 as 关键字可以给模块或函数取一个别名:

import numpy as nparray = np.array([1, 2, 3])
print(array)  # 输出: [1 2 3]

创建自定义模块

你可以将常用的函数和变量放在一个 Python 文件中,作为自定义模块:

例如创建一个名为 my_module.py 的文件:

# my_module.py
def greet(name):return f"Hello, {name}!"PI = 3.14159

在另一个文件中使用自定义模块:

import my_moduleprint(my_module.greet("Blossom"))  # 输出: Hello, Blossom!
print(my_module.PI)  # 输出: 3.14159

包的基本语法

包是包含多个模块的文件夹,每个包通常包含一个 __init__.py 文件,用于初始化包。你可以将相关的模块放在一个包中,以便更好地组织代码。

创建一个包结构:

my_package/__init__.pymodule1.pymodule2.py

module1.py

# module1.py
def func1():return "Function 1 from module 1"

module2.py

# module2.py
def func2():return "Function 2 from module 2"

使用包中的模块:

from my_package import module1, module2print(module1.func1())  # 输出: Function 1 from module 1
print(module2.func2())  # 输出: Function 2 from module 2

模块和包的应用场景

模块和包在许多场景中都非常有用,以下是一些常见的应用:

  1. 组织代码:模块和包用于将代码分割成更小、更易管理的部分,提高代码的可读性和可维护性。

    # 例如,将数学相关的函数放在一个模块中
    # math_utils.py
    def add(a, b):return a +

b

def subtract(a, b):
return a - b


2. **代码重用**:通过模块和包,你可以在多个项目中重用相同的代码。```python
# 例如,在项目 A 中使用自定义模块
import math_utilsresult = math_utils.add(5, 3)
print(result)  # 输出: 8
  1. 第三方库:Python 的模块和包系统使你可以轻松地使用和分享第三方库。

    # 例如,使用 requests 库进行 HTTP 请求
    import requestsresponse = requests.get("https://api.example.com/data")
    data = response.json()
    print(data)
    

掌握模块和包将帮助你编写更有组织和更易维护的 Python 代码,使你的代码更具可重用性和扩展性。



Python 基础语法:主要标准库

Python 提供了大量的标准库,以下是一些常用的标准库,了解和掌握这些标准库将帮助你更高效地完成各种编程任务。

datetime 模块

datetime 模块用于处理日期和时间。

基本示例

import datetimenow = datetime.datetime.now()
print(now)  # 当前日期和时间# 格式化日期
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # 格式化后的日期

math 模块

math 模块提供数学函数和常量。

基本示例

import mathprint(math.sqrt(16))  # 输出: 4.0
print(math.pi)  # 输出: 3.141592653589793

random 模块

random 模块用于生成随机数和随机选择。

基本示例

import randomprint(random.randint(1, 10))  # 生成 1 到 10 之间的随机整数
print(random.choice(["apple", "banana", "cherry"]))  # 随机选择一个元素

os 模块

os 模块用于与操作系统进行交互,处理文件和目录。

基本示例

import os# 获取当前工作目录
cwd = os.getcwd()
print(cwd)# 列出目录中的文件和子目录
files = os.listdir(cwd)
print(files)

sys 模块

sys 模块提供与 Python 解释器相关的函数和变量。

基本示例

import sys# 打印命令行参数
print(sys.argv)# 打印 Python 版本
print(sys.version)

标准库的应用场景

标准库在许多场景中都非常有用,以下是一些常见的应用:

  1. 日期和时间处理:使用 datetime 模块处理日期和时间。

    import datetimenow = datetime.datetime.now()
    print(f"Current date and time: {now}")
    
  2. 数学计算:使用 math 模块进行数学计算。

    import mathradius = 5
    area = math.pi * (radius ** 2)
    print(f"Area of circle: {area}")
    
  3. 生成随机数:使用 random 模块生成随机数。

    import randomrandom_number = random.randint(1, 100)
    print(f"Random number: {random_number}")
    
  4. 文件和目录操作:使用 os 模块进行文件和目录操作。

    import oscurrent_directory = os.getcwd()
    print(f"Current directory: {current_directory}")
    
  5. 与解释器交互:使用 sys 模块与 Python 解释器进行交互。

    import sysprint(f"Python version: {sys.version}")
    

掌握标准库将帮助你更高效地完成各种编程任务,使你的代码更具功能性和可靠性。


相关文章:

【Python】语法入门

文章目录 Python 基础语法&#xff1a;打印和变量打印和变量的基本语法打印变量 变量操作变量的命名规则打印和变量的应用场景示例&#xff1a;基本计算器 Python 基础语法&#xff1a;列表推导式列表推导式的基本语法基本示例带条件的列表推导式列表推导式的应用场景 Python 基…...

匠心独运:红酒与手工艺的很好结合

在岁月的长河中&#xff0c;红酒与手工艺都以其不同的魅力和技艺&#xff0c;书写着各自的故事。当这两者相遇&#xff0c;仿佛是一场跨越时空的对话&#xff0c;不仅展现了匠心独运的技艺之美&#xff0c;更在无声中诉说着对品质与生活的热爱。今天&#xff0c;就让我们一起探…...

第20章 Mac+VSCode配置C++环境

1. 下载VSCode VSCode下载地址在mac终端里输入xcode- select --install命令&#xff0c;根据提示安装xcode工具。 2. 安装插件&#xff08;4个&#xff09; 打开VScode&#xff0c;点击应用右侧菜单栏 C/C&#xff08;必装&#xff09; Code Runner&#xff08;必装&#xf…...

FactoryBean 原理简介

FactoryBean 首先是一个工厂类&#xff0c;它可以生产指定的Bean&#xff0c;特殊之处在于它可以向Spring容器中注册两个Bean&#xff0c;一个是它本身&#xff0c;一个是FactoryBean.getObject()方法返回值所代表的Bean。通过实现 FactoryBean 接口&#xff0c;你可以控制某个…...

Redis中hash类型的操作命令(命令的语法、返回值、时间复杂度、注意事项、操作演示)

文章目录 字符串和哈希类型相比hset 命令hget 命令hexistshdelhkeyshvalshgetallhmgethlenhsetnxhincrbyhincrbyfloat 字符串和哈希类型相比 假设有以下一种场景&#xff1a;现在要在 Redis 中存储一个用户的基本信息(id1、namezhangsan、age17)&#xff0c;下图表示使用字符串…...

UE5基本操作(二)

文章目录 前言相机的移动速度修改默认地图使用初学者内容包文件夹结构 总结 前言 在我们的上一篇文章中&#xff0c;我们已经介绍了一些Unreal Engine 5&#xff08;UE5&#xff09;的基本操作。UE5是一款强大的游戏开发引擎&#xff0c;它提供了许多工具和功能&#xff0c;使…...

React Navigation 和 Expo Router

React Navigation 是 React Native 社区最常用的导航库&#xff0c;其具有高度可定制性且性能良好的特性。它提供了一系列导航器&#xff08;如堆栈导航器、标签导航器、抽屉导航器等&#xff09;&#xff0c;可以满足绝大多数的页面导航需求。 Expo Router 是 Expo 官方最新发…...

如何使用python网络爬虫批量获取公共资源数据教程?

原文链接&#xff1a;如何使用python网络爬虫批量获取公共资源数据教程&#xff1f;https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608240&idx4&snef281f66727afabfaae2066c6e92f792&chksmfa826657cdf5ef41571115328a09b9d34367d8b11415d5a5781dc4c…...

常见位运算总结

1.基础位运算 左移 &#xff08;<<&#xff09;: 最左侧位不要了, 最右侧补 0 右移&#xff08;>>&#xff09;: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1) 按位取反&#xff08;~&#xff09;&#xff1a;如果该位为 0 则转为 1, 如果该位为 1 则转为…...

自动化任务工具 -- zTasker v1.94 绿色版

软件简介 zTasker 是一款功能强大的自动化任务管理软件&#xff0c;以其简洁易用、一键式操作而著称。软件体积小巧&#xff0c;启动迅速&#xff0c;提供了超过100种任务类型和30多种定时/条件执行方法&#xff0c;能够满足用户在自动化方面的多样化需求。 zTasker 支持定时任…...

mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>

文章目录 引言I 使用xml 原生转义的方式进行转义II 使用 <![CDATA[ 内容 ]]>引言 应用场景:查询时间范围 背景:在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 <![CDATA[]]> 比 转义符 来的繁琐 <![CDATA[]]> 表示xml解析器忽略…...

UE5的基本操作

涵盖了从建模、快捷键使用、界面操作到性能分析等多个方面&#xff0c;以下是一些关键点和技巧&#xff1a;12 建模操作&#xff1a; 使用Shift5切换到建模模式&#xff0c;可以通过Shapes创建基本图元如立方体、球体等。 利用Create面板中的工具&#xff0c;如polyext自由创…...

C++ 实现学生成绩管理系统

C 实现学生成绩管理系统 思路&#xff1a; 定义 Student 类&#xff0c;包含学生的基本信息和成绩。实现添加学生、删除学生、修改成绩、显示所有学生成绩和查找学生的功能。使用向量&#xff08;vector&#xff09;存储学生信息。 #include <iostream> #include <…...

Elasticsearch 第四期:搜索和过滤

序 2024年4月&#xff0c;小组计算建设标签平台&#xff0c;使用ES等工具建了一个demo&#xff0c;由于领导变动关系&#xff0c;项目基本夭折。其实这两年也陆陆续续接触和使用过ES&#xff0c;两年前也看过ES的官网&#xff0c;当时刚毕业半年多&#xff0c;由于历史局限性导…...

力扣1124.表现良好的最长时间段

力扣1124.表现良好的最长时间段 哈希表存最小的下标 当s[i] > 0 那么他到头可以构成一个合法时间段否则 找到之前的 s[i] - 1 的下标&#xff1a; 因为连续的前缀和一定只相差1若想算更小的s[i] - 2,s[i] - 3…一定会先算到s[i] - 1那么这些更小数必然在 s[i]−1 首次出现的…...

算法训练营day67

题目1&#xff1a; #include <iostream> #include <vector> #include <string> #include <unordered_set> #include <unordered_map> #include <queue>using namespace std;int main() {string beginStr, endStr;int n;cin >> n;ci…...

人工智能--图像语义分割

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a;专业知识 ​ 文章目录 &#x1f349;引言 &#x1f349;介绍 &#x1f348;工作原理 &#x1f34d;数据准备 &#x1f34d;特征提取 &#x1f34d;像素分…...

fl studio20和21用哪一个好?FL-Chan from FL Studio欣赏

最近接到很多小伙伴的私信&#xff0c;都在问我平时会使用哪些音乐软件&#xff0c;能不能给一些参考。其实每个人的使用习惯不一样&#xff0c;需求也不一样。以DAW为例&#xff0c;有些人就是喜欢FL Studio&#xff0c;有些人吹爆Studio One&#xff0c;还有些人习惯使用Cuba…...

OpenCV直方图计算函数calcHist的使用

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 功能描述 图像的直方图是一种统计表示方法&#xff0c;用于展示图像中不同像素强度&#xff08;通常是灰度值或色彩强度&#xff09;出现的频率分布。具体来说…...

09 docker 安装tomcat 详解

目录 一、安装tomcat 1. tomcat镜像的获取 2. docker创建容器实列 3. 访问测试 404错误 4. 解决方案 5. 使用免修改版容器镜像 5.1. 运行实列的创建 5.2. 出现问题及解决&#xff1a; 6. 验证 OK 一、安装tomcat 1. tomcat镜像的获取 docker search tomcat #docker …...

44.实现管理HOOK点的链表对象

上一个内容&#xff1a;43.实现HOOK接管寄存器数据 以 43.实现HOOK接管寄存器数据 它的代码为基础进行修改 首先创建一个类 这里创建的名为HOOKPOINT.h HOOKPOINT.cpp文件里面的内容 #include "pch.h" #include "HOOKPOINT.h"HOOKPOINT::HOOKPOINT() {…...

Unity小知识

1.当我们把摄像机的内容渲染到RenderTexture上而不是屏幕上时,那么相机的Aspect默认会设置成和RenderTexture的分辨率一样.不过最终如果把RenderTexture作为贴图贴到模型上去的时候还是会被UV拉伸和缩小的。 2.要想自定义UnityPackage的内容&#xff0c;只要找到UnityProject/L…...

【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术

标题&#xff1a;【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术 Jupyter Notebook是一个流行的开源Web应用程序&#xff0c;允许用户创建和共享包含实时代码、方程、可视化和解释性文本的文档。而Git是一个广泛使用的分布式版本控制系统&#xff0c;用于跟…...

Python开发者必看:内存优化的实战技巧

更多Python学习内容&#xff1a;ipengtao.com Python是一种高级编程语言&#xff0c;以其易读性和强大的功能而广受欢迎。然而&#xff0c;由于其动态类型和自动内存管理&#xff0c;Python在处理大量数据或高性能计算时&#xff0c;内存使用效率可能不如一些低级语言。本文将介…...

Golang | Leetcode Golang题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; func shortestPalindrome(s string) string {n : len(s)fail : make([]int, n)for i : 0; i < n; i {fail[i] -1}for i : 1; i < n; i {j : fail[i - 1]for j ! -1 && s[j 1] ! s[i] {j fail[j]}if s[j 1] s[i] {fail[i…...

【ajax实战08】分页功能

本文章目标&#xff1a;点击上/下一页按钮&#xff0c;实现对应页面的变化 实现基本步骤&#xff1a; 一&#xff1a;保存并设置文章总条数 设置一个全局变量&#xff0c;将服务器返回的数据返回给全局变量 二&#xff1a;点击下一页&#xff0c;做临界值判断&#xff0c;并…...

基于Hadoop平台的电信客服数据的处理与分析②项目分析与设计---需求分析-项目场景引入

任务描述 需求分析是软件生命周期中一个非常重要的过程&#xff0c;它决定着整个软件项目的质量&#xff0c;也是整个软件开发的成败所在。本环节任务是完成软件需求规格说明书。 知识点 &#xff1a;软件需求规格说明书的编写 重 点 &#xff1a;软件需求规格说明书内容的…...

debug-mmlab

mmyolo bug1: MMYOLO for yolov5 instance segmentation on balloon dataset getting this error "ValueError: Key img_path is not in available keys. solution: pip install albumentations1.3.1 reference...

年轻人为什么那么爱喝奶茶?

作者 | 艾泊宇 为什么年轻人那么爱喝奶茶&#xff1f;答案很简单&#xff1a;对他们来说&#xff0c;奶茶之于年轻人&#xff0c;正如白酒之于中年人。 奶茶不仅仅是一种饮料&#xff0c;它已经演化成一种文化现象&#xff0c;代表着温暖和爱的象征&#xff0c;甚至在某种程度上…...

手写数组去重

方法1-判断相邻元素 function _deleteRepeat(arr){if(!Array.isArray(arr)){throw new Error(参数必须是数组)}let res[];// 使用slice创建arr的副本&#xff0c;并排序let sortArrarr.slice().sort((a,b)>a-b);for(let i0;i<sortArr.length;i){if(isortArr.length-1||s…...

Firewalld 防火墙

1. 概述 在 RHEL7 系统中&#xff0c;firewalld 防火墙取代了传统的 iptables 防火墙。iptables 的防火墙策略是通过内核层面的 netfilter 网络过滤器来处理的&#xff0c;而 firewalld 则是通过内核层面的 nftables 包过滤框架来处理。firewalld 提供了更为丰富的功能和动态更…...

Hive查询优化 - 面试工作不走弯路

引言&#xff1a;Hive作为一种基于Hadoop的数据仓库工具&#xff0c;广泛应用于大数据分析。然而&#xff0c;由于其依赖于MapReduce框架&#xff0c;查询的性能可能会受到影响。为了确保Hive查询能够高效运行&#xff0c;掌握查询优化技巧至关重要。在日常工作中&#xff0c;高…...

【VUE3】uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)

vite 中使用 /deep/ 进行样式穿透报错 原因&#xff1a;vite 中不支持&#xff0c;换成 ::v-deep 或:deep即可...

容器部署rabbitmq集群迁移

1、场景&#xff1a; 因业务需要&#xff0c;要求把rabbitmq-A集群上的数据迁移到rabbitmq-B集群上&#xff0c;rabbitmq的数据包括元数据&#xff08;RabbitMQ用户、vhost、队列、交换和绑定&#xff09;和消息数据&#xff0c;而消息数据存储在单独的消息存储库中。 2、迁移要…...

DP:背包问题----0/1背包问题

文章目录 &#x1f497;背包问题&#x1f49b;背包问题的变体&#x1f9e1;0/1 背包问题的数学定义&#x1f49a;解决背包问题的方法&#x1f499;例子 &#x1f497;解决背包问题的一般步骤&#xff1f;&#x1f497;例题&#x1f497;总结 ❤️❤️❤️❤️❤️博客主页&…...

React antd umi 监听当前页面离开,在菜单栏提示操作

需求是我这里有个页面&#xff0c;离开当前页面之后&#xff0c;需要在菜单栏显示个提示&#xff0c;也就是Tour const [unblock, setUnblock] useState<() > void>(() > () > {});const [next, setNext] useState();useEffect(() > {const unblockHandler…...

在 Windows PowerShell 中模拟 Unix/Linux 的 touch 命令

在 Unix 或 Linux 系统中&#xff0c;touch 命令被广泛用于创建新文件或更新现有文件的时间戳。不过&#xff0c;在 Windows 系统中&#xff0c;尤其是在 PowerShell 环境下&#xff0c;并没有内置的 touch 命令。这篇博客将指导你如何在 Windows PowerShell 中模拟 touch 命令…...

鸿蒙NEXT

[中国&#xff0c;东莞&#xff0c;2024年6月24日] 华为开发者大会&#xff08;HDC&#xff09;正式开幕&#xff0c;带来全新的 HarmonyOS NEXT、盘古大模型5.0等最创新成果&#xff0c;持续为消费者和开发者带来创新体验。 HarmonyOS NEXT 鸿蒙生态 星河璀璨 鸿蒙生态设备数…...

VUE3-Elementplus-form表单-笔记

1. 结构相关 el-row表示一行&#xff0c;一行分成24份 el-col表示列 (1) :span"12" 代表在一行中&#xff0c;占12份 (50%) (2) :span"6" 表示在一行中&#xff0c;占6份 (25%) (3) :offset"3" 代表在一行中&#xff0c;左侧margin份数 el…...

Analyze an ORA-12801分析并行 parallel 12801 实际原因

"ORA-06512: at "PKG_P_DATA", line 19639 ORA-06512: at "PKG_P_DATA", line 19595 ORA-06512: at "PKG_P_DATA", line 14471-JOB 调用 -ORA-12801: error signaled in parallel query server P009, instance rac2:dwh2 (2) Error: ORA-12…...

高级运维工程师讲述银河麒麟V10SP1服务器加固收回权限/tmp命令引起生产mysql数据库事故实战

高级运维工程师讲述银河麒麟V10SP1服务器加固收回权限/tmp命令引起生产MySql数据库事故实战 一、前言 作为运维工程师经常会对生产服务器进行安全漏洞加固&#xff0c;一般服务厂商、或者甲方信息安全中心提供一些安全的shell脚本&#xff0c;一般这种shell脚本都是收回权限&…...

昇思25天学习打卡营第09天|sea_fish

打开第九天&#xff0c;本次学习的内容为保存与加载&#xff0c;记录学习的过程。本次的内容少而且简单。 在训练网络模型的过程中&#xff0c;实际上我们希望保存中间和最后的结果&#xff0c;用于微调&#xff08;fine-tune&#xff09;和后续的模型推理与部署&#xff0c;因…...

flutter开发实战-Charles抓包设置,dio网络代理

flutter开发实战-Charles抓包设置 在开发过程中抓包&#xff0c;可以看到请求参数等数据&#xff0c;方便分析问题。flutter上使用Charles抓包设置。dio需要设置网络代理。 一、dio设置网络代理 在调试模式下需要抓包调试&#xff0c;所以需要使用代理&#xff0c;并且仅用H…...

Elasticsearch:Runtime fields - 运行时字段(二)

这是继上一篇文章 “Elasticsearch&#xff1a;Runtime fields - 运行时字段&#xff08;一&#xff09;” 的续篇。 在查询时覆盖字段值 如果你创建的运行时字段与映射中已存在的字段同名&#xff0c;则运行时字段会隐藏映射字段。在查询时&#xff0c;Elasticsearch 会评估运…...

Python正则表达式的入门用法(上)

Python正则表达式是使用re模块来进行操作的。re模块提供了一组函数&#xff0c;用于进行字符串的匹配和查找操作。 下面是Python中使用正则表达式的一些常用函数&#xff1a; re.search(pattern, string)&#xff1a;在字符串中查找并返回第一个匹配的对象。 re.match(patte…...

Audio Processing Graphs 管理 Audio Units

Audio Processing Graphs 管理 Audio Units Audio Processing Graphs 管理 Audio UnitsAudio Processing Graph 拥有精确的 I/O UnitAudio Processing Graph 提供线程安全通过 graph "pull" 音频流 Audio Processing Graphs 管理 Audio Units audio processing grap…...

欧盟,又出了新规-通用充电器新规通用充電器的 RED 修正案如何办理?

欧盟&#xff0c;又出了新规-通用充电器新规通用充電器的 RED 修正案如何办理&#xff1f; 欧盟新规委员会发布《通用充电器指令》指南通用充電器的 RED 修正案办理流程&#xff1a; 2024年5月7日&#xff0c;欧盟委员会发布《通用充电器指令》指南&#xff0c;修订了《无线…...

thinkphp6/8 验证码

html和后台验证代码按官方来操作 ThinkPHP官方手册 注意&#xff1a; 如果验证一直失败&#xff0c;看看Session是否开启&#xff0c; 打印dump(session_status());结果2为正确的&#xff0c; PHP_SESSION_DISABLED: Session功能被禁用&#xff08;返回值为0&#xff09;。…...

Ubuntu 22.04 LTS 上安装 MySQL8.0.23(在线安装)

目录 在线安装MySQL 步骤1&#xff1a;更新软件包列表 步骤2&#xff1a;安装MySQL服务器 步骤3&#xff1a;启动MySQL服务 步骤4&#xff1a;检查MySQL状态 步骤5&#xff1a;修改密码、权限 在线安装MySQL 步骤1&#xff1a;更新软件包列表 在进行任何软件安装之前&a…...

如何选择优质模型?SD3性能究竟如何?

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答12 厚德提问大佬答第十二期 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德…...

新型开发语言的试用感受-仓颉语言发布之际

经常听一些媒体介绍一些新型的开发语言&#xff0c;所以最近心血来潮&#xff0c;安装了几种感受了一些。 先看名气&#xff0c;如ziglang&#xff0c;网址为&#xff1a;Home ⚡Zig Programming Language 号称是可以取代C语言的一门新语言&#xff0c;其实我主要是受下面这篇…...

GPT-5或重塑我们的工作与生活

引言 在人工智能发展的浪潮中&#xff0c;每一次技术的革新都如同潮水般涌来&#xff0c;带来前所未有的机遇与挑战。当新一代大语言模型GPT-5即将登场的消息传来&#xff0c;我们不禁要问&#xff1a;它将如何重塑我们的工作和日常生活&#xff1f;又将开启哪些崭新的应用场景…...

C# 命名规范

开头bool类型的变量常用缩写 变量命名规范camelCase: 私有字段&#xff0c;局部变量&#xff0c;入参PascalCase: 命名空间、类名&#xff0c;方法名snake_ case、 kebab_case: 不使用 一般方法名称遵守PascalCase命名规范例外情况: 异步方法异步方法例外情况 合理选择单词选择…...

16-JS封装:extend方法

目录 一、封装需求 二、实现1&#xff1a;jQuery.extend 三、实现2&#xff1a;通过原型jQuery.fn.extend 四、优化 一、封装需求 封装需求&#xff1a; $.extend&#xff1a; var obj{ name:"xxx",age:18} var obj3{ gender:"女"} var obj2{}; 将obj、…...

Kotlin中的关键字

Kotlin 中的关键字可分为几个大类&#xff1a; 声明/定义关键字&#xff1a; class&#xff1a;用于定义类interface&#xff1a;用于定义接口object&#xff1a;用于声明对象&#xff0c;Kotlin中实现单例模式的关键字fun&#xff1a;用于声明函数var&#xff1a;用于声明可变…...

机器学习---线性回归

1、线性回归 例如&#xff1a;对于一个房子的价格&#xff0c;其影响因素有很多&#xff0c;例如房子的面积、房子的卧室数量、房子的卫生间数量等等都会影响房子的价格。这些影响因子不妨用 x i x_{i} xi​表示&#xff0c;那么房价 y y y可以用如下公式表示&#xff1a; y …...

GfK中国联合上海市眼镜行业协会举办高层论坛:探索眼镜市场机遇共筑视觉健

中国与上海市眼镜行业协会联合主办的 “视界之窗:瞰见全球及中国眼镜市场未来”高层论坛5月16日在上海成功举行。本次论坛汇聚了上海市眼病防治中心视光中心、上海健康医学院医学技术学院等三十余家专业机构和协会专家,以及上海三联有限公司、上海依视路光学有限公司、卡尔蔡司…...

采用Java+ SpringBoot+ IntelliJ+idea开发的ADR药物不良反应监测系统源码

采用Java SpringBoot IntelliJidea开发的ADR药物不良反应监测系统源码 ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统具有广泛的应用场景&#xff0c;以下是一些主要的应用场景&#xff1a…...

网络应用层之(1)DHCPv6协议

网络应用层之(1)DHCPv6协议 Author: Once Day Date: 2024年5月26日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-C…...

docker mqqt 安装

安装 cd /data/mqqt/ 目录准备 mkdir /data/mqqt/mosquitto/config/ #vim Dockerfile # 使用官方Eclipse Mosquitto镜像作为基础镜像 FROM eclipse-mosquitto:latest # 复制配置文件到容器内 COPY mosquitto.conf /data/mqqt/mosquitto/config/mosquitto.conf# 暴露默认的M…...

前端学习--React部分

文章目录 前端学习--React部分前言1.React简介1.1React的特点1.2引入文件1.3JSX&#x1f349;JSX简介与使用&#x1f349;JSX语法规则 1.4模块与组件&#x1f349;模块&#x1f349;组件 1.5安装开发者工具 2.React面向组件编程2.1创建组件&#x1f349;函数式组件&#x1f349…...

Python flask怎么连接MySQL?

在Python中连接MySQL并使用模型创建新的表&#xff0c;通常我们会使用ORM&#xff08;对象关系映射&#xff09;库&#xff0c;比如SQLAlchemy或者Django ORM&#xff0c;它们允许我们定义Python类来映射到数据库中的表&#xff0c;并通过这些类进行数据库操作。下面是一个使用…...