python初学者的知识点笔记

简介: python初学者的知识点笔记

基础语法

  • 注释
    • 单行注释:使用“#”符号,其后整行内容为注释,如# 这是一个单行注释
    • 多行注释:用三个单引号'''或三个双引号"""包裹,例如'''这是一个多行注释,可以跨越多行'''
  • 换行与缩进:1条代码通常为1行,无需结尾标点。根据代码逻辑,同一级代码需保持对齐,不同级别代码通过缩进区分,PEP规定一般使用4个空格表示每级缩进。
  • 变量与赋值:Python是动态类型语言,变量无需预先声明类型,直接赋值即可,如x = 10。变量名由字母、数字或下划线组成,且不能以数字开头,并且大小写敏感。

数据类型

  • 数字类型
    • 整数(int):无小数部分,可表示为二进制(以0b开头)、八进制(以0o开头)和十六进制(以0x开头),如0b10表示二进制的2。
    • 浮点数(float):带有小数部分,存储为IEEE 754双精度格式,如3.14
    • 复数(complex):由实部和虚部组成,虚部以jJ结尾,如3 + 4j
  • 字符串类型(str):用单引号或双引号括起来的字符序列,支持索引和切片操作,可使用“+”运算符拼接,如'hello' + 'world'结果为'helloworld'
  • 布尔类型(bool):只有TrueFalse两个值,用于条件判断,可与逻辑运算符andornot结合使用。
  • 列表(list):有序可变序列,可包含不同类型元素,通过索引访问,支持切片、添加、删除和修改操作,如my_list = [1, 'a', True]
  • 元组(tuple):有序不可变序列,创建后不能修改,如my_tuple = (1, 2, 3)
  • 集合(set):无序不重复元素集合,用于去重和数学集合运算,如my_set = {1, 2, 2, 3},实际存储为{1, 2, 3}
  • 字典(dict):键值对的无序集合,通过键访问值,键必须是不可变类型,如my_dict = {'name': 'Tom', 'age': 18}

控制结构

  • 条件语句if - elif - else结构,条件表达式结果须为布尔值,如:
    x = 10
    if x > 5:
      print('x大于5')
    elif x == 5:
      print('x等于5')
    else:
      print('x小于5')
    
  • 循环语句
    • for循环:用于遍历可迭代对象,如列表、元组等,range()函数常用来生成整数序列,例如for i in range(5)会循环5次,i依次为0到4。
    • while循环:只要条件为真,就会重复执行循环体,需注意在循环体内更新条件变量,避免无限循环,如while x < 10: x += 1
  • 循环控制语句
    • break:用于跳出当层循环。
    • continue:用于退出当前循环,继续下一次循环。

函数

  • 定义函数:使用def关键字,函数体通过缩进表示,如:
    def add(a, b):
      return a + b
    
  • 函数参数
    • 位置参数:按顺序传递,实参顺序与形参须一致。
    • 关键字参数:通过参数名传递,顺序可与形参不一致,如add(b = 3, a = 2)
    • 默认参数:定义函数时可设置默认值,调用时若不传入该参数,则使用默认值,如def power(x, n = 2): return x ** n
    • 可变参数*args表示可变位置参数,会将多余位置参数收集为元组;**kwargs表示可变关键字参数,会将多余关键字参数收集为字典。

模块与包

  • 模块:是包含Python定义和语句的文件,扩展名为.py。使用import关键字导入,如import math;也可使用from...import语句导入特定函数或变量,如from math import sqrt;还可使用as关键字指定别名,如import numpy as np
  • :是组织模块的方式,通过文件夹结构管理相关模块,包文件夹下通常需有__init__.py文件(Python 3.3+后可省略)。

面向对象编程

  • 类的定义:使用class关键字,__init__方法是构造函数,用于初始化对象属性,如:
    class Dog:
      def __init__(self, name, age):
          self.name = name
          self.age = age
      def bark(self):
          print(f'{self.name}汪汪叫')
    
  • 继承:子类可继承父类属性和方法,通过在类定义中指定父类实现,如class Puppy(Dog):super()函数可用于调用父类方法。
  • 多态:不同类的对象对同一消息做出不同响应,通过方法重写和动态绑定实现。

异常处理

使用try - except - finally结构捕获和处理程序运行时的错误,如:

try:
    result = 10 / 0
except ZeroDivisionError:
    print('除数不能为零')
finally:
    print('无论是否有异常,都会执行')

还可使用else子句,在try块未抛出异常时执行。

文件操作

  • 读取文件:使用open()函数打开文件,指定'r'模式,with语句可自动管理文件打开和关闭,如:
    with open('test.txt', 'r') as f:
      content = f.read()
    
    也可按行读取:
    with open('test.txt', 'r') as f:
      for line in f:
          print(line.strip())
    
  • 写入文件:使用open()函数,指定'w'模式(覆盖写入)或'a'模式(追加写入),如with open('test.txt', 'w') as f: f.write('Hello, World!')
目录
相关文章
|
4天前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
100 58
|
20天前
|
人工智能 移动开发 JavaScript
AI + 低代码技术揭秘(十二):开发人员工具和可扩展性
VTJ平台提供开发工具与扩展框架,支持低代码应用的开发与拓展。包含CLI、插件系统及Uni-App集成,结合Vite、TypeScript和Vue优化开发流程。
118 62
|
15天前
|
监控 安全 搜索推荐
进程分析工具,系统进程监控与管理工具推荐
Process Hacker是一款免费开源的Windows系统进程监控与管理工具,支持查看进程信息、终止或暂停进程、设置优先级等操作。它提供详细的系统资源监控、安全检测及高级功能如内存分析和插件扩展,适用于性能优化、安全排查、开发调试及系统管理等多种场景。
147 63
|
2月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
236 77
|
4天前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
124 60
|
4天前
基于Reactor模型的高性能网络库之Channel组件篇
Channel 是事件通道,它绑定某个文件描述符 fd,注册感兴趣的事件(如读/写),并在事件发生时分发给对应的回调函数。
119 60
|
4天前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
102 57
|
4天前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
94 57