Python3 基础核心语法指南(初级版)

news/2024/11/1 20:03:34/

Python 是一门广泛使用的编程语言,适合从小项目到大规模应用开发。本文介绍 Python 的基本语法和一些实用的编程技巧,适合初学者与开发人员。为了方便大家理解,有些例子采用两种写法,一种采用的是英文变量名,另一种则采用中文变量名,以便于大家理解

1. 数据类型

Python 支持多种基本数据类型,如整数、浮点数、复数、字符串、列表、元组、集合和字典。

英文代码:

python"># 整数
int_value = 20               # int
# 浮点数
float_value = 5.5            # float
# 复数
complex_value = 4 + 2j       # complex# 字符串
single_line_str = "Python"
multi_line_str = """This is a
multi-line string."""# 列表(可变的有序集合)
sample_list = [2, 4, 6, 'eight', 10.0]# 元组(不可变的有序集合)
sample_tuple = (3, 6, 9, 'twelve', 15.0)# 集合(无序且不重复的元素集合)
sample_set = {1, 3, 5, 7, 9}# 字典(键值对集合)
sample_dict = {'name': 'John', 'age': 24, 'city': 'Beijing'}

中文代码

python"># 整数
整数变量 = 20               # int
# 浮点数
浮点数变量 = 5.5           # float
# 复数
复数变量 = 4 + 2j          # complex# 字符串
单行字符串 = "Python"
多行字符串 = """这是一段
多行文本"""# 列表(可变的有序集合)
列表示例 = [2, 4, 6, '八', 10.0]# 元组(不可变的有序集合)
元组示例 = (3, 6, 9, '十二', 15.0)# 集合(无序且不重复的元素集合)
集合示例 = {1, 3, 5, 7, 9}# 字典(键值对集合)
字典示例 = {'姓名': '张三', '年龄': 24, '城市': '北京'}

2. 控制流语句

条件语句

Python 提供了 if-elif-else 语句来控制条件逻辑:

python">x = 15
if x > 0:print("正数")
elif x == 0:print("零")
else:print("负数")

循环语句

for 循环

遍历一个范围内的数字或一个集合:

python"># 遍历数字 0 到 4
for num in range(5):print(num)

while 循环

在条件为真时重复执行代码块:

python">counter = 0
while counter < 5:print(counter)counter += 1

跳转语句

  • break 终止循环
  • continue 跳过当前迭代
  • pass 占位,不执行任何操作

3. 函数

函数在 Python 中使用 def 定义:

英文代码:

python">def greet(name):"""输出问候语"""return f"Hello, {name}!"
print(greet("John"))

中文代码:

python">def 问候(名字):"""输出问候语"""return f"你好,{名字}!"
print(问候("张三"))

支持位置参数、关键字参数、默认参数和可变参数:

python">def add(num1, num2=5):return num1 + num2def mulnumber(*num_list):  # 接受多个参数result = 1for num in num_list:result *= numreturn result

4. 模块与包

模块与包扩展了 Python 的功能,可以导入标准模块或创建自定义模块:

python"># 导入模块
import math
from datetime import datetimeprint(math.sqrt(25))  # 输出 5.0
print(datetime.now())  # 输出当前时间

5. 异常处理

Python 使用 try-except-else-finally 语句来处理异常:

python">try:x = 10 / 0
except ZeroDivisionError:print("除数不能为零!")
else:print("无异常")
finally:print("执行结束")

6. 文件操作

文件读写操作通过 with open 语句更安全:

英文代码:

python"># 写入文件
with open('sample.txt', 'w') as file:file.write("This is a sample file.")# 读取文件
with open('sample.txt', 'r') as file:content = file.read()print(content)

中文代码:

python"># 写入文件
with open('示例.txt', 'w') as 文件:文件.write("这是一个示例文件。")# 读取文件
with open('示例.txt', 'r') as 文件:内容 = 文件.read()print(内容)

7. 类和对象

Python 使用 class 定义类,并支持继承和多态:

英文代码:

python">class Person:"""定义一个基本类"""def __init__(self, name, age):self.name = nameself.age = agedef introduce(self):print(f"Hello, my name is {self.name} and I am {self.age} years old.")# 继承
class Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef study(self):print(f"{self.name} is studying.")student_a = Student("Mike", 18, "2024001")
student_a.introduce()
student_a.study()

中文代码:

python">class 人:"""定义一个基本类"""def __init__(self, 姓名, 年龄):self.姓名 = 姓名self.年龄 = 年龄def 自我介绍(self):print(f"你好,我是{self.姓名},年龄{self.年龄}。")# 继承
class 学生(人):def __init__(self, 姓名, 年龄, 学号):super().__init__(姓名, 年龄)self.学号 = 学号def 学习(self):print(f"{self.姓名}正在学习。")学生A = 学生("李四", 18, "2024001")
学生A.自我介绍()
学生A.学习()

8. 装饰器

装饰器用于增强函数或方法的行为:

英文代码:

python">def print_message(func):def wrapper(*args, **kwargs):print("Before calling function")result = func(*args, **kwargs)print("After calling function")return resultreturn wrapper@print_message
def say_hello(name):print(f"Hello, {name}!")say_hello("Tom")

中文代码:

python">def 打印消息(函数):def 包装器(*args, **kwargs):print("调用前")结果 = 函数(*args, **kwargs)print("调用后")return 结果return 包装器@打印消息
def 打招呼(名字):print(f"你好,{名字}!")打招呼("小明")

9. 文件和目录操作

可以通过 os 和 sys 模块获取系统信息或操作文件系统:

python">import os
import sysprint("当前工作目录:", os.getcwd())
print("命令行参数:", sys.argv)

10. 数据处理与可视化

通过第三方库如 pandas 和 matplotlib,可以进行数据处理与可视化:

英文代码:

python">import pandas as pd
import matplotlib.pyplot as pltdata = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 32, 18]
}
df = pd.DataFrame(data)
print(df)df.plot(kind='bar', x='Name', y='Age', title="Age Comparison")
plt.show()

中文代码:

python">import pandas as pd
import matplotlib.pyplot as plt数据 = {'姓名': ['李四', '王五', '张三'],'年龄': [25, 32, 18]
}
数据框 = pd.DataFrame(数据)
print(数据框)数据框.plot(kind='bar', x='姓名', y='年龄', title="年龄对比")
plt.show()

11. 迭代器和生成器

迭代器

迭代器实现 __iter__() 和 __next__() 方法来生成序列。

python">class CustomIterator:def __init__(self, max_value):self.max_value = max_valueself.current = 0def __iter__(self):return selfdef __next__(self):if self.current < self.max_value:value = self.currentself.current += 1return valueelse:raise StopIterationfor num in CustomIterator(5):print(num)

生成器

使用 yield 关键字定义生成器函数:

python">def custom_generator(max_value):current = 0while current < max_value:yield currentcurrent += 1for num in custom_generator(5):print(num)

12. 上下文管理器

使用 with 语句可以更方便地管理资源。自定义上下文管理器需实现 __enter__() 和 __exit__() 方法:

python">class ResourceHandler:def __enter__(self):print("Resource acquired")return selfdef __exit__(self, exc_type, exc_val, exc_tb):print("Resource released")def do_task(self):print("Performing a task with the resource")with ResourceHandler() as resource:resource.do_task()

还可以使用 contextlib 模块提供的 @contextmanager 装饰器简化上下文管理器的编写:

python">from contextlib import contextmanager@contextmanager
def managed_resource():print("Resource acquired")try:yieldfinally:print("Resource released")with managed_resource():print("Performing a task with the resource")

13. 装饰器的高级用法

带参数的装饰器

使用嵌套函数实现带参数的装饰器。

python">def repeat(times):def decorator(func):def wrapper(*args, **kwargs):for _ in range(times):result = func(*args, **kwargs)return resultreturn wrapperreturn decorator@repeat(3)
def greet(name):print(f"Hello, {name}!")greet("Alice")

类装饰器

类也可以用作装饰器,实现 __call__ 方法即可。

class DebugDecorator:def __init__(self, func):self.func = funcdef __call__(self, *args, **kwargs):print(f"Calling {self.func.__name__} with args: {args}, kwargs: {kwargs}")result = self.func(*args, **kwargs)print(f"{self.func.__name__} returned: {result}")return result@DebugDecorator
def add(a, b):return a + badd(5, 3)

14. 类型注解

Python 通过类型注解提高代码可读性并支持静态类型检查。

python">from typing import List, Dict, Tuple, Optionaldef greet(name: str) -> str:return f"Hello, {name}!"def get_names() -> List[str]:return ["Alice", "Bob", "Charlie"]def get_info() -> Dict[str, int]:return {"Alice": 25, "Bob": 30, "Charlie": 35}def process_data(data: Tuple[int, str, float]) -> None:num, name, score = dataprint(f"Number: {num}, Name: {name}, Score: {score}")def find_person(people: List[Dict[str, str]], name: str) -> Optional[Dict[str, str]]:for person in people:if person['name'] == name:return personreturn None

15. 设计模式

单例模式

确保类只有一个实例,并提供一个全局访问点:

python">class Singleton:_instance = None@staticmethoddef get_instance():if Singleton._instance is None:Singleton._instance = Singleton()return Singleton._instancedef __init__(self):if Singleton._instance is not None:raise Exception("This class is a singleton!")else:Singleton._instance = self# 使用单例
singleton1 = Singleton.get_instance()
singleton2 = Singleton.get_instance()
print(singleton1 is singleton2)  # 输出 True

工厂模式

为对象创建提供接口,而不显露创建逻辑。

python">from abc import ABC, abstractmethodclass Product(ABC):@abstractmethoddef use(self):passclass ConcreteProductA(Product):def use(self):print("Using ConcreteProductA")class ConcreteProductB(Product):def use(self):print("Using ConcreteProductB")class Factory:@staticmethoddef create_product(product_type: str) -> Product:if product_type == "A":return ConcreteProductA()elif product_type == "B":return ConcreteProductB()else:raise ValueError("Invalid product type")# 使用工厂
product_a = Factory.create_product("A")
product_b = Factory.create_product("B")
product_a.use()
product_b.use()

16. 其他实用技巧

枚举

使用 enum 模块定义枚举类型:

python">from enum import Enumclass Color(Enum):RED = 1GREEN = 2BLUE = 3print(Color.RED)        # 输出 Color.RED
print(Color.RED.name)   # 输出 "RED"
print(Color.RED.value)  # 输出 1

数据类

使用 dataclasses 模块简化数据类的定义:

python">from dataclasses import dataclass@dataclass
class Person:name: strage: intcity: strperson = Person(name="Alice", age=30, city="New York")
print(person)  # 输出 "Person(name='Alice', age=30, city='New York')" 

这些高级特性和设计模式有助于编写更高效和结构化的代码。无论是类的单例模式,还是装饰器和上下文管理器,都可以大大提升 Python 应用的可读性和可维护性。Python 的灵活性使其成为初学者和资深开发者的理想选择。

结语

Python 提供了简洁而强大的语法结构和丰富的标准库,加上社区中的第三方库,Python 几乎可以适应任何编程需求。这篇文章涵盖了 Python 的基础语法与实用技巧,适合初学者和有经验的开发人员快速上手或复习。有些复杂的代码中添加了中文变量代码和英文变量代码,可以对照着看,理解起来就会更快。


http://www.ppmy.cn/news/1543676.html

相关文章

三、k8s快速入门之Kubectl 命令基础操作

⭐️创建Pod [rootmaster ~]# kubectl run nginx --imageharbor.tanc.com/library/ngix:latest kubectl run --generatordeployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generatorrun-pod/v1 or kbectl create instead. deplo…

jlink识别不到gd32@

jlink识别不到gd32 SW Device 1、原因可能是jlink硬件HW版本过低&#xff0c;或者PC端jlink工具安装包版本过低&#xff1b; 通过jlink configuration.exe升级HW固件版本&#xff1b; PC端上位机jlink工具版本下载 2、上电默认一些选项导致的低级识别不到 诸如此类的&#xff0…

WPF+MVVM案例实战(九)- 霓虹灯字效果控件封装实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、运行效果2、主菜单与界面实现1、主菜单2、霓虹灯字界面实现3、字体资源获取3、控件封装1.创建自定义控件2、依赖属性实现3、封装控件使用4、运行效果4、源代码获取1、运行效果 2、主菜单与界面实…

《Python游戏编程入门》注-第4章2

《Python游戏编程入门》的“4.2.2 键盘事件”中介绍了通过键盘事件来监听键盘按键的方法。 1 键盘事件 玩家点击键盘中某个按键实际上包含了两个动作&#xff1a;点击按键和释放按键&#xff0c;也就是按键按下和松开。按键按下的对应的事件是KEYDOWN&#xff0c;按键松开对应…

使用 fzf 实现文件快速查找、打开及执行

使用 fzf 实现文件快速查找、打开及执行 本文将介绍如何安装 fzf&#xff0c;配置文件&#xff0c;以便使用 cdf 和 cdd 函数来快速查找、打开、编辑、编译并运行文件或快速进入指定目录。cdf 是一个文件查找和执行工具&#xff0c;cdd 是一个目录查找工具。默认情况下&#x…

JIME智创:抖音创作者的AI绘画与视频生成创作神器

在短视频和社交内容创作的时代&#xff0c;创意和速度成了成功的关键。无论是视频博主、图文创作者还是品牌推广人&#xff0c;他们都面临着如何快速生成高质量图片与视频素材的挑战。JIME智创正是针对这一需求推出的AI创作工具&#xff0c;专为抖音的图文和视频创作者设计&…

go语言中defer用法详解

defer 是 Go 语言中的一个关键字&#xff0c;用于延迟执行某个函数或语句&#xff0c;直到包含它的函数返回时才执行。defer 语句在函数执行结束后&#xff08;无论是正常返回还是由于 panic 返回&#xff09;都将执行。 defer 的基本用法 延迟执行&#xff1a; 当你在一个函数…

计算机网络(Ⅴ)网络核心

电路交换 为源主机分配了独享的线路。有资源浪费是缺点。 优点是保障了性能&#xff0c;但是资源共享的能力较差&#xff08;计算机的通讯不是持续的&#xff0c;具有突发性&#xff0c;不适用于电路交换&#xff09; 频分&#xff08;FDM&#xff09;&#xff1a;交换节点与交…