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

Python基础知识点--总结

1. 注释

注释用于提高代码的可读性,在代码中添加说明文字,使代码更容易理解。

  • 单行注释:使用 # 符号开头,注释内容在符号之后的行内。
  • 多行注释:使用三引号('''""")包裹注释内容,可跨多行。

# 这是一个单行注释
"""
这是一个多行注释
可以跨越多行
"""

2. 变量

变量是存储数据的容器,可以通过赋值操作将数据存储在变量中。

  • 命名规则
    • 变量名由字母、数字和下划线组成,不能以数字开头。
    • 变量名对大小写敏感。
    • 使用有意义的变量名有助于代码的可读性。

age = 25
name = "Alice"

3. 输出

输出是将数据展示给用户或其他程序的过程,Python使用 print() 函数来输出内容。

print("Hello, World!")
print("Age:", age)

4. 输入

输入是从用户或其他程序获取数据的过程,Python使用 input() 函数来获取用户输入的数据。

name = input("Enter your name: ")
print("Hello, " + name)

5. 转换数据类型

Python支持多种数据类型,可以通过类型转换函数将一种数据类型转换为另一种。

  • 常见的类型转换函数:
    • int():将数据转换为整数类型
    • float():将数据转换为浮点数类型
    • str():将数据转换为字符串类型

age = int(input("Enter your age: "))
height = float(input("Enter your height: "))

6. 运算符

运算符用于对变量或值执行操作。

  • 算术运算符+, -, *, /, //, %, **
  • 比较运算符==, !=, >, <, >=, <=
  • 逻辑运算符and, or, not
  • 赋值运算符=, +=, -=, *=, /=, %=
  • 位运算符&, |, ^, ~, <<, >>
result = 3 + 5
is_equal = (3 == 5)

7. 条件语句

条件语句根据条件是否为真来决定执行的代码块,使用 ifelifelse 关键字。

age = 18
if age >= 18:
    print("You are an adult.")
else:
    print("You are a minor.")

8. 循环

循环用于重复执行一段代码。

  • for 循环:用于遍历序列(如列表、字符串)中的每个元素。
  • while 循环:在条件为真时重复执行代码块。

# for循环
for i in range(5):
    print(i)

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

9. 字符串

字符串是字符的序列,使用单引号或双引号定义。

  • 常用操作:
    • 连接字符串:+
    • 重复字符串:*
    • 访问字符:[]
    • 切片:[:]
greeting = "Hello"
name = "Alice"
full_greeting = greeting + " " + name
print(full_greeting)

10. 列表

列表是一个有序的可变集合,使用方括号定义,可以包含不同类型的元素。

  • 常用操作:
    • 添加元素:append()
    • 删除元素:remove(), pop()
    • 访问元素:[]
    • 切片:[:]

fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
print(fruits[1])  # 输出: banana

11. 元组

元组是一个有序的不可变集合,使用圆括号定义。

  • 常用操作:
    • 访问元素:[]
    • 解包:将元组中的元素赋值给变量
point = (10, 20)
x, y = point
print(x, y)  # 输出: 10 20

12. 字典

字典是一个无序的键值对集合,使用大括号定义,键和值通过冒号 : 分隔。

  • 常用操作:
    • 添加或更新键值对:dict[key] = value
    • 删除键值对:del dict[key]
    • 访问值:dict[key]
person = {"name": "Alice", "age": 25}
person["age"] = 26
print(person["name"])  # 输出: Alice

13. 集合

集合是一个无序的不重复元素集合,使用大括号定义。

  • 常用操作:
    • 添加元素:add()
    • 删除元素:remove(), discard()
    • 集合运算:交集、并集、差集
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
print(fruits)

14. 公共操作

公共操作包括序列和集合类型的常见操作。

  • 长度len() 返回序列或集合的元素个数。
  • 最大值/最小值max()min() 返回序列中的最大和最小值。
  • 排序sorted() 返回排序后的序列。
  • 枚举enumerate() 返回枚举对象,通常在 for 循环中使用。
numbers = [3, 1, 4, 1, 5]
print(len(numbers))  # 输出: 5
print(max(numbers))  # 输出: 5
print(sorted(numbers))  # 输出: [1, 1, 3, 4, 5]

15. 推导式

推导式是一种简洁的创建序列或集合的方式。

  • 列表推导式:用于创建列表。
  • 字典推导式:用于创建字典。
  • 集合推导式:用于创建集合。
# 列表推导式
squares = [x**2 for x in range(5)]
print(squares)  # 输出: [0, 1, 4, 9, 16]

16. 函数一

函数是执行特定任务的代码块,使用 def 关键字定义。

  • 定义函数:通过 def 关键字定义函数。
  • 参数和返回值:函数可以接收参数并返回值。
def greet(name):return "Hello, " + nameprint(greet("Alice"))

17. 函数二

函数的高级特性包括默认参数、关键字参数和可变长度参数。

  • 默认参数:为参数提供默认值。
  • 关键字参数:通过参数名传递参数。
  • 可变长度参数:使用 *args**kwargs 接受任意数量的位置参数和关键字参数。
def greet(name, greeting="Hello"):return greeting + ", " + nameprint(greet("Alice"))
print(greet("Alice", "Hi"))

18. 函数三

函数的进阶特性包括匿名函数和闭包。

  • 匿名函数:使用 lambda 关键字定义匿名函数。
  • 闭包:内部函数可以访问外部函数的变量。
# 匿名函数
square = lambda x: x**2
print(square(4))  # 输出: 16# 闭包
def outer_func(msg):def inner_func():print(msg)return inner_funchello_func = outer_func("Hello")
hello_func()  # 输出: Hello

19. 文件操作

Python提供了多种方式来处理文件操作,如读取和写入文件。

  • 打开文件open() 函数用于打开文件。
  • 读取文件read() 读取整个文件,readline() 读取一行,readlines() 读取所有行。
  • 写入文件write() 将数据写入文件。
  • 关闭文件close() 关闭文件。
with open("example.txt", "w") as file:file.write("Hello, World!")with open("example.txt", "r") as file:content = file.read()print(content)

20. 面向对象基础

面向对象编程(OOP)是将数据和操作封装在对象中的编程方式。

  • 类和对象:类是对象的蓝图,使用 class 关键字定义,实例化类创建对象。
  • 属性和方法:类的属性和方法定义了对象的状态和行为。
  • __init__ 方法:构造方法,用于初始化对象。
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):print("Woof!")dog = Dog("Rex", 5)
dog.bark()  # 输出: Woof!

21. 面向对象-继承

继承是通过现有类创建新类的机制,新类可以继承父类的属性和方法。

  • 子类:继承自父类,可以重写父类的方法或添加新方法。
  • 多继承:一个类可以继承多个父类。
class Animal:def eat(self):print("Eating...")class Dog(Animal):def bark(self):print("Woof!")dog = Dog()
dog.eat()  # 输出: Eating...
dog.bark()  # 输出: Woof!

22. 面向对象-其他

面向对象编程中还包括封装、抽象和多态性等概念。

  • 封装:将数据和方法封装在类中,控制对内部细节的访问。
  • 抽象:通过接口和抽象类来定义行为,而不实现具体功能。
  • 多态性:不同类的对象可以通过相同的接口调用不同的实现。
class Shape:def draw(self):raise NotImplementedError("Subclass must implement abstract method")class Circle(Shape):def draw(self):print("Drawing a circle")shape = Circle()
shape.draw()  # 输出: Drawing a circle

23. 异常

异常处理用于捕获和处理运行时错误,以防止程序崩溃。

  • 捕获异常:使用 tryexcept 块捕获异常。
  • finally:无论是否发生异常,finally 块的代码总是会执行。
  • 自定义异常:可以创建自定义异常类,继承自 Exception
try:result = 10 / 0
except ZeroDivisionError:print("Cannot divide by zero")
finally:print("Execution complete")

24. 模块和包

模块和包用于组织和管理代码,模块是一个Python文件,包是包含模块的目录。

  • 导入模块:使用 import 导入模块。
  • 自定义模块:将Python代码保存在 .py 文件中,可以作为模块导入。
  • 标准库:Python提供了丰富的标准库,可以直接导入使用。
import math
print(math.sqrt(16))  # 输出: 4.0

25. 包

包是包含多个模块的目录,通过层次化组织代码,包中必须包含 __init__.py 文件。

  • 创建包:将模块放入目录中,并添加 __init__.py 文件。
  • 导入包:使用 import 导入包中的模块或子包。
# 目录结构
# mypackage/
# ├── __init__.py
# ├── module1.py
# └── module2.pyfrom mypackage import module1

这些知识点构成了Python编程的基础,掌握这些内容将为更高级的编程打下坚实的基础。

相关文章:

Python基础知识点--总结

1. 注释 注释用于提高代码的可读性&#xff0c;在代码中添加说明文字&#xff0c;使代码更容易理解。 单行注释&#xff1a;使用 # 符号开头&#xff0c;注释内容在符号之后的行内。多行注释&#xff1a;使用三引号&#xff08; 或 """&#xff09;包裹注释内…...

高效记录与笔记整理的策略:工具选择、结构设计与复习方法

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

Request重复读的问题

换了新工作都有时间写文章&#xff0c;每天也是加班到很晚&#xff0c;也不是工作内容多&#xff0c;主要是还是效率低&#xff0c;要考虑多干的很心累。 一、关于request重复读的问题&#xff0c;从源码的角度来分析 为什么他不能重复读 跳转 再看源码前可能需要一些基础的…...

Linux学习第60天:Linux驱动开发的一些总结

今天是Linux驱动开发的最后一个章节&#xff0c;题目中标明是60天完成的&#xff0c;其实在实际学习及笔记的整理中不止是60天。中间有过断更&#xff0c;有时断更的时间还是挺长的。这是在整个Linux驱动开发学习中最不满意的地方。 题目为Linux学习&#xff0c;其实这个题目有…...

OPP || 继承和抽象类 || 访问控制

OPP面向对象程序设计 数据抽象&#xff1a;类的接口声明和定义实现分离继承&#xff1a;类构成的&#xff08;树型&#xff09;层次关系动态绑定&#xff1a;忽略相似类型区别&#xff0c;用统一的方式使用 基类派生类&#xff1a; 继承&#xff1a;类名 冒号 访问说明符 …...

蓝牙音视频远程控制协议(AVRCP) command跟response介绍

零.声明 本专栏文章我们会以连载的方式持续更新&#xff0c;本专栏计划更新内容如下&#xff1a; 第一篇:蓝牙综合介绍 &#xff0c;主要介绍蓝牙的一些概念&#xff0c;产生背景&#xff0c;发展轨迹&#xff0c;市面蓝牙介绍&#xff0c;以及蓝牙开发板介绍。 第二篇:Trans…...

MySQL的InnoDB存储引擎中的Buffer Pool机制

目录 Buffer Pool 简介 定义 为什么需要Buffer Pool 图解重点知识 Buffer Pool 的组成 数据页&#xff08;Data Pages&#xff09; 索引页&#xff08;Index Pages&#xff09; 插入缓冲页&#xff08;Insert Buffer Pages&#xff09; undo页&#xff08;Undo Pages&a…...

5. MongoDB 文档插入、更新、删除、查询

1. 插入文档 文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。 BSON是一种类似JSON的二进制形式的存储格式&#xff0c;是Binary JSON的简称。常用的插入文档方法包括&#xff1a; db.collection.insertOne()&#xff1a;插入单个文档db.collection.inse…...

⌈ 传知代码 ⌋ DETR[端到端目标检测]

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...

Oracle之触发器

简介 触发器在数据库里以独立的对象存储&#xff0c;他与存储过程不同的是&#xff0c;存储过程通过其他程序来启动运行或直接启动运行而触发器是由一个事件来启动运行&#xff0c;即触发器是当某个事件发生时自动式运行。并企&#xff0c;触发器不能接收参数。所以运行触发器…...

从零搭建微前端架构:解耦大型项目的终极方案

随着前端应用的复杂度不断提升,单体前端应用(Monolithic Frontend)的维护和扩展难度也日益增加。微前端(Micro-Frontend)作为一种新兴架构理念,旨在将大型前端项目拆分为多个独立、可独立部署的微应用,从而提升项目的可维护性和灵活性。这篇文章将带你从零开始搭建一个微…...

24/8/17算法笔记 MPC算法

MPC算法&#xff0c;在行动前推演一下 MPC&#xff08;Model Predictive Control&#xff0c;模型预测控制&#xff09;是一种先进的控制策略&#xff0c;它利用未来预测模型来优化当前的控制动作。MPC的核心思想是&#xff0c;在每一个控制步骤中&#xff0c;都基于当前系统状…...

GROUP_CONCAT 用法详解(Mysql)

GROUP_CONCAT GROUP_CONCAT 是 MySQL 中的一个聚合函数&#xff0c;用于将分组后的多行数据连接成一个单一的字符串。 通常用于将某个列的多个值合并到一个字符串中&#xff0c;以便更方便地显示或处理数据。 GROUP_CONCAT([DISTINCT] column_name[ORDER BY column_name [ASC…...

Golang httputil 包深度解析:HTTP请求与响应的操控艺术

标题&#xff1a;Golang httputil 包深度解析&#xff1a;HTTP请求与响应的操控艺术 引言 在Go语言的丰富标准库中&#xff0c;net/http/httputil包是一个强大的工具集&#xff0c;它提供了操作HTTP请求和响应的高级功能。从创建自定义的HTTP代理到调试HTTP流量&#xff0c;h…...

SQLALchemy 分页

SQLALchemy 分页 1. 使用SQLAlchemy的`slice`和`offset`/`limit`SQLAlchemy 1.4及更新版本SQLAlchemy 1.3及更早版本使用第三方库注意事项在Web开发中,分页是处理大量数据时一个非常重要的功能。SQLAlchemy是一个流行的Python SQL工具包和对象关系映射(ORM)库,它允许开发者…...

快速上手体验MyPerf4J监控springboot应用(docker版快速开始-本地版)

使用MyPerf4J监控springboot应用 快速启动influxdb时序数据库日志收集器telegrafgrafana可视化界面安装最终效果 项目地址 项目简介: 一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具。 价值 快速定位性能瓶颈快速定位故障原因 快速启动 监控本地应用 idea配…...

C语言 之 strlen、strcpy、strcat、strcmp字符串函数的使用和模拟实现

文章目录 strlen的使用和模拟实现函数的原型strlen模拟实现&#xff1a;方法1方法2方法3 strcpy的使用和模拟实现函数的原型strcpy的模拟实现&#xff1a; strcat的使用和模拟实现函数的原型strcat的模拟实现&#xff1a; strcmp的使用和模拟实现函数的原型strcmp的模拟实现 本…...

CAPL使用结构体的方式组装一条DoIP车辆识别请求报文(payload type 0x0002)

DoIP车辆识别请求(payload type 0x0002)报文的格式为: /******************************************************** +--------+--------+--------+--------+ |version | inVer | type | +--------+--------+--------+--------+ | length …...

数据接入教学

数据接入教学 1、开通外部网络策略2、检查本地防火墙策略3、测试网络连通性4、工具抓包命令5、本地测试发送与监听 1、开通外部网络策略 保证外部网络联通、保证内部防火墙开通策略&#xff08;可以关闭进行测试&#xff09; 2、检查本地防火墙策略 关闭进行测试 停止firewa…...

炒作将引发人工智能寒冬

我们似乎经常看到人工智能的进步被吹捧为机器真正变得智能的一大飞跃。我将在这里挑选其中的一个例子&#xff0c;并确切解释为什么这种态度会为人工智能的未来埋下隐患。 这很酷&#xff0c;这是一个非常困难且非常具体的问题&#xff0c;这个团队花了3 年时间才解决。他们一定…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

C# WPF 左右布局实现学习笔记(1)

开发流程视频&#xff1a; https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码&#xff1a; GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用&#xff08;.NET Framework) 2.…...

简单聊下阿里云DNS劫持事件

阿里云域名被DNS劫持事件 事件总结 根据ICANN规则&#xff0c;域名注册商&#xff08;Verisign&#xff09;认定aliyuncs.com域名下的部分网站被用于非法活动&#xff08;如传播恶意软件&#xff09;&#xff1b;顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…...