分支结构和循环结构是构造程序逻辑的基础。本节通过五个经典例子,帮助你巩固和深化对这两种结构的理解。 ## 例子1:100以内的素数 ```python for num in range(2, 100): is_prime = True for i in range(2, int(num ** 0.5) + 1): if num % i == 0:
## 元组 vs 列表 元组和列表一样用于存储多个元素,核心区别在于:**列表可变,元组不可变**。 | 特性 | 列表 | 元组 | |------|------|------| | 可变性 | 可修改 | 不可修改 | | 语法 | `[1, 2, 3]` | `(1, 2, 3)` | | 创建速度 | 慢 | 快(约10倍) | | 适用场景 | 需要频繁增删 | 数据不需要修改 |
## 字符串基础 字符串是由零个或多个字符组成的有序序列,用单引号或双引号创建: ```python s1 = 'hello, world!' s2 = "你好,世界!" s3 = '''hello, wonderful world!''' # 三引号,支持多行 ``` > **注意**:字符串是**不可变类型**,不能通过索引修改字符。 ## 转义字符 | 转义符
## 集合基础 集合(set)是无序且不包含重复元素的容器,跟数学中的集合概念一致: - **无序性**:元素没有固定顺序,不支持索引运算 - **互异性**:元素不重复,自动去重 - **确定性**:元素要么在集合中,要么不在 ## 创建集合 ```python # 基础创建 set1 = {1, 2, 3, 3, 2} # {1, 2, 3},自动去重 set2 =
Python 有多个 GUI 库:Tkinter(内置/跨平台)、PyQt5/PySide6(功能强大)、wxPython(原生外观)。本节介绍 Tkinter。 ## 第一个窗口 ```python import tkinter as tk root = tk.Tk() root.title("我的窗口") root.geometry("400x300") label = tk.Labe
面向对象编程对初学者来说不难理解但很难应用,虽然我们为大家总结过面向对象的三步走方法(定义类、创建对象、给对象发消息),但是说起来容易做起来难。**大量的编程练习**和**阅读优质的代码**可能是这个阶段最能够帮助到大家的两件事情。接下来我们还是通过经典的案例来剖析面向对象编程的知识,同时也通过这些案例把我们之前学过的 Python 知识都串联起来。 ### 例子1:扑克游戏。 > **说明*
## 异常处理 ### 基本语法 ```python try: # 可能引发异常的代码 result = 10 / int(user_input) except ValueError: print("请输入有效数字") except ZeroDivisionError: print("不能除以零") else: # 仅在 try 块无异常时执行
前面我们讲解了 Python 面向对象编程的一些基础知识,本节我们继续讨论面向对象编程相关的内容。 ### 可见性和属性装饰器 在很多面向对象编程语言中,对象的属性通常会被设置为私有(private)或受保护(protected)的成员,简单的说就是不允许直接访问这些属性;对象的方法通常都是公开的(public),因为公开的方法是对象能够接受的消息,也是对象暴露给外界的调用接口,这就是所谓的访
## 继承 继承:子类复用父类的属性和方法,支持多级继承和多重继承。 ```python class Animal: def __init__(self, name): self.name = name def speak(self): raise NotImplementedError("子类必须实现 speak 方法") clas
面向对象编程是一种非常流行的**编程范式**(programming paradigm),所谓编程范式就是**程序设计的方法论**,简单的说就是程序员对程序的认知和理解以及他们编写代码的方式。 在前面的课程中,我们说过“**程序是指令的集合**”,运行程序时,程序中的语句会变成一条或多条指令,然后由CPU(中央处理器)去执行。为了简化程序的设计,我们又讲到了函数,**把相对独立且经常重复使用的代