Python语言基础学习大纲(由某大模型生成)
自从上次经丙察察游了一次滇藏线,已有3个没写一篇了。今天利用由某大模型生成的上面这张思维导图,配合这个大模型生成的6000多字拼凑出一篇博文聊以交差。
Python语言概述
一、语言特点
1.语法简单明了
Python的语法简洁易懂,使得编写代码变得简单快速。这种简洁的语法不仅易于编写,也易于阅读和维护。
2.高级语言,易于学习
Python是一种高级编程语言,它提供了许多内置函数和库,使得开发人员可以快速构建复杂的程序。由于Python的语法简单易懂,初学者可以快速上手,并能够快速构建出实用的程序。
3.解释型语言,可读性强
Python是一种解释型语言,这意味着开发人员可以直接在命令行中运行代码,而无需事先编译。此外,Python的代码易于阅读和理解,这使得开发人员可以更好地协作和分享代码。
4.可扩展性
Python具有很高的可扩展性,开发人员可以使用C、C++等语言编写扩展模块来增强Python的功能。这使得Python可以应用于许多高性能的领域,如科学计算、大数据处理等。
5.动态类型系统
Python具有动态类型系统,这意味着开发人员不需要事先声明变量的类型。这使得编写代码变得更加简单和快速,同时也提高了代码的可读性和可维护性。
6.优雅的语法和设计哲学
Python的语法和设计哲学注重代码的可读性和简洁性。这种设计哲学使得Python的代码易于阅读和理解,同时也让Python成为了一种优雅的编程语言。
二、应用领域
Python的应用领域非常广泛,包括Web开发、数据科学、人工智能、机器学习、自动化等等。这意味着使用Python可以让你在多个领域中发挥你的技能和经验。Python拥有许多强大的库和框架,如NumPy、Pandas、Django和Flask等。这些库和框架可以帮助开发人员快速构建高质量的程序和应用程序。Python可以在多个平台上运行,包括Windows、Linux和Mac OS等。这使得开发人员可以轻松地在不同的操作系统上开发和部署Python应用程序。
Python基础学习
一、 数据类型
基本数据类型有以下几种:
- 整型(int):整数类型包括正整数和负整数。Python的整型是长整型,能表达的数的范围是无限的。
- 浮点型(Float):浮点类型包括两部分,整数部分和小数部分。
- 字符串型(String):字符串是用双引号“”或者单引号‘’括起来的一个或多个字符,主要用来表示一些描述性的内容,如名字、性别、国籍等。
- 布尔型(Boolean):布尔类型的变量是具有两种逻辑状态的变量,通常情况下是True和False,一般用于关系运算或逻辑运算。
此外,Python还有几种复合数据类型:
- 列表(List):列表是由一系列特定元素顺序排列的元素组成的,其中元素可以是任意的类型,包括列表本身。
- 元组(Tuple):元组即为不可修改的列表。
- 字典(Dictionary):字典是由键(Key)和对应的值(Value)对组成的,用大括号“{}”括起来。
- 集合(Set):集合是由不重复的元素组成的,用大括号“{}”或者用set()函数创建。
二、 运算符
Python的运算符主要分为以下几类:
- 算术运算符:包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)、取余运算符(%)、整除运算符(//)和幂次方运算符(**)。这些运算符用于进行基本的数学运算。
- 比较运算符:包括等于运算符(==)、不等于运算符(!=)、大于运算符(>)、小于运算符(<)、大于等于运算符(>=)和小于等于运算符(<=)。这些运算符用于比较两个值是否相等或存在大小关系。
- 赋值运算符:例如等于赋值运算符(=),用于将等号右侧的值赋给左侧的变量。此外,还有加法赋值运算符(+=)、减法赋值运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符(/=)、取余赋值运算符(%=)、整除赋值运算符(//=)和幂次方赋值运算符(**=)。这些运算符用于将运算结果赋值给变量。
- 逻辑运算符:包括与运算符(and)和或运算符(or)。这些运算符用于进行逻辑运算。
- 所属运算符:例如在运算符in和not in,用于判断某个值是否在一个容器中。
- 二元赋值符:例如加法赋值符(+=),用于将等号右侧的值加到左侧的变量上,相当于a = a + 1。其他还有减法赋值符(-=)、乘法赋值符(*=)、除法赋值符(/=)、取余赋值符(%=)、整除赋值符(//=)和幂次方赋值符(**=)。
这些运算符在Python编程中有着广泛的应用,可以用于进行各种数学计算、比较、赋值和逻辑运算。
Python 运算符优先级从高到低如下:
- **:幂运算。
- ~:按位取反。
- +:正号。
- -:负号。
- *:乘法。
- /:除法。
- %:取模。
- //:整除。
- +:加法。
- -:减法。
- <<:左移。
- >>:右移。
- &:按位与。
- ^:按位异或。
- |:按位或。
- ==:是否相等。
- !=:是否不相等。
- >:大于。
- >=:大于等于。
- <:小于。
- <=:小于等于。
- is:是。
- is not:不是。
- in:是否在。
- not in:不在。
- not:布尔“非”。
- and:布尔“与”。
- or:布尔“或”。
这些运算符的优先级决定了它们在表达式中的执行顺序。
三、表达式
Python中的表达式可以根据需求使用不同的运算符和操作数,以下是一些常见的Python表达式及其介绍:
- 算术表达式:使用算术运算符进行数学计算,例如a+b、a-b、a*b、a/b、a//b等。
- 比较表达式:使用比较运算符进行比较,例如a==b、a!=b、a>b、a<b、a>=b、a<=b等。
- 赋值表达式:使用赋值运算符将右侧的值赋给左侧的变量,例如a=1。
- 逻辑表达式:使用逻辑运算符进行逻辑运算,例如a and b、a or b、not a等。
- 成员测试表达式:使用in或notin运算符测试一个值是否在容器中,例如a in [1, 2, 3]或a not in [1, 2, 3]。
- 身份测试表达式:使用is或is not运算符测试两个变量是否是同一个对象,例如a is b或a is not b。
- 列表推导式:使用for循环和if条件对列表进行过滤和转换,例如[i*2 for i in range(10) if i%2==0]。
- 生成器表达式:与列表推导式类似,但生成器表达式不会立即生成整个列表,而是按需生成元素,例如(i*2 for i in range(10) if i%2==0)。
- 条件表达式:使用if-else语句根据条件选择返回值,例如a if condition else b。
- lambda表达式:使用lambda关键字定义匿名函数,例如lambda x: x*2。
这些表达式根据需求在Python编程中灵活运用,可以完成各种数据计算、比较、赋值和逻辑运算等操作。
四、 推导式和生成器表达式
Python推导式和生成器表达式是Python语言中非常强大且有用的特性,可以用来生成新的数据序列或返回满足特定条件的元素。
推导式:
- 列表推导式:列表推导式是Python中用于简化代码的一种方法,可以从可迭代对象中快速生成满足特定条件的列表。其基本语法为:[expression for item in iterable [if condition]]。其中expression是表达式,item是迭代变量,iterable是可迭代对象,condition是条件表达式。例如,生成一个包含1到10之间所有偶数的列表,可以使用如下列表推导式:[i for i in range(1, 11) if i % 2 == 0]。
- 集合推导式:集合推导式与列表推导式类似,但是它生成的是集合而不是列表。语法为:{expression for item in iterable [if condition]}。例如,生成一个包含1到10之间所有偶数的集合,可以使用如下集合推导式:{i for i in range(1, 11) if i % 2 == 0}。
- 字典推导式:字典推导式用于生成字典,其语法为:{key: value for item in iterable [if condition]}。例如,从一个包含学生姓名和成绩的列表中生成一个字典,其中学生姓名作为键,成绩作为值,可以使用如下字典推导式:{name: score for name, score in student_list}。
生成器表达式:
生成器表达式与列表推导式类似,但是它返回的是一个生成器而不是列表。生成器是一种特殊类型的迭代器,它可以按需生成元素,而不是一次性生成所有元素。生成器表达式使用圆括号而不是方括号,语法与列表推导式相同,例如:(expression for item in iterable [if condition])。与列表推导式一样,生成器表达式也可以嵌套在其他表达式中。例如,从一个包含大量数据的列表中按需生成满足特定条件的元素时,使用生成器表达式可以节省内存空间。
小结:Python的推导式和生成器表达式提供了灵活且强大的方式来生成新的数据序列或返回满足特定条件的元素。通过使用这些特性,可以简化代码、提高效率并更好地控制内存使用。
五、 控制流语句
Python中的控制流语句主要包括条件语句、循环语句和循环控制。
1. 条件语句
if语句
用来检验一个条件,如果条件为真,执行if-块,否则执行else-块(可选)。
例如:x =10 if x >0: print("x is a positive number")。
elif语句
用于if语句中,把两个相关联的if-else语句合并成一个if-elif-else语句,使程序更加简单,且减少缩进。
例如:x =0 if x >0: print("x is a positive number") elif x <0: print("x is a negative number") else: print("x is zero")。
2. 循环语句
for循环
用于遍历序列(如列表、元组、字符串)或其他可迭代对象。
例如:for i in range(5): print(i)。
while循环
只要在一个条件为真的情况下,while语句允许重复执行一块语句。
例如:i =0 while i <5: print(i) i +=1。
3. 循环控制语句
break语句
用于跳出当前最近的一层循环。
例如:for i in range(5): if i ==3: break print(i)。
continue语句
用于跳过当前循环的剩余部分,然后进入下一次循环。
例如:for i in range(5): if i ==3: continue print(i)。
以上是Python中的主要控制流语句,它们使程序具有了选择和重复执行的能力,从而增强了程序的灵活性和效率。
六. 模块
1. 基本概念
Python的模块是一种组织代码的有效方式,它可以将代码逻辑上相关的函数和变量组织在一个文件(模块)中。通过使用模块,可以将程序的开发划分为多个较小的任务,使得开发人员可以专注于自己的领域,同时减少代码冗余和增强代码的可重用性和可维护性。
Python模块是一个包含Python代码的文件,通常以.py结尾。模块可以定义函数、类和变量,也可以包含可执行的代码。通过使用模块,可以将代码组织成逻辑相关的块,并使其可重用和可维护,使用Python模块,需要使用import语句来导入模块。
在Python中,一个.py文件就是一个模块,模块的名字就是文件的名字。例如,有一个名为test.py的文件,其中定义了一个函数add,那么在其他文件中就可以通过import test来引入这个模块,然后通过test.add()来调用这个函数。
模块的分类主要有以下三种:
- 内置模块:Python解释器自带的模块,如math, os等。
- 第三方模块:需要手动安装的模块,可以通过pip install 模块名 来安装。
- 自定义模块:用户自己编写的模块,可以将程序中的公用功能抽取出来放到一个模块中供大家使用。
使用模块的好处主要有以下几点:
- 提高代码的可重用性和可维护性:通过将代码组织成模块,可以使代码更加清晰、易于理解和维护。同时,通过将一些常用功能封装到模块中,可以避免重复编写相同的代码。
- 简化代码:通过将代码分解为多个模块,可以使每个模块的功能更加单一、职责更加明确,从而降低代码的复杂度。
- 方便团队协作:通过将代码划分为多个模块,可以使不同开发人员专注于不同的模块开发,提高开发效率。同时,也方便代码的共享和交流。
- 扩展功能:通过自定义模块,可以将一些通用的功能封装到模块中,方便后续项目直接使用。同时,也可以通过引入第三方模块来扩展程序的功能。
2. 常用模块的使用
Python的os、re和csv模块是常用的模块,它们分别提供了操作系统相关功能、正则表达式处理和CSV文件处理的功能。下面分别介绍这三个模块的使用方法和相关介绍。
os模块
os模块是Python标准库之一,提供了许多与操作系统交互的函数。它可以让我们轻松地访问文件系统、环境变量和进程管理等功能。下面是一些常用的os模块函数:
* os.path.join:将多个路径组合成一个路径。 |
* os.listdir:列出指定目录下的所有文件和子目录。 |
* os.getcwd:获取当前工作目录。 |
* os.chdir:改变当前工作目录。 |
* os.environ:获取环境变量。下面是一个简单的例子: |
下面是一个简单的例子:
import os # 获取当前工作目录
current_dir = os.getcwd()
print("Current directory:", current_dir) # 改变当前工作目录
os.chdir("/path/to/directory")
print("Current directory:", os.getcwd())
re模块
re模块是Python标准库之一,提供了正则表达式相关的功能。它可以让我们使用正则表达式来匹配和处理字符串。下面是一些常用的re模块函数:
* re.match:匹配字符串是否符合正则表达式的规则。 |
* re.search:在字符串中搜索符合正则表达式的子串。 |
* re.findall:查找字符串中所有符合正则表达式的子串。下面是一个简单的例子: |
下面是一个简单的例子:
import re # 匹配字符串是否符合正则表达式的规则
pattern = r"\d+" # 匹配一个或多个数字
string = "abc123def456"
match = re.match(pattern, string)
if match: print("Match found:", match.group()) # 输出:Match found: 123456
else: print("No match found.")
csv模块
csv模块是Python标准库之一,提供了CSV文件相关的处理功能。它可以让我们读取和写入CSV文件,并将数据按照表格形式进行读写。下面是一个简单的例子:
import csv # 读取CSV文件并打印每行数据
with open('data.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(row) # 输出CSV文件的每一行数据
总结
Python的优点包括语法简单明了、高级语言易于学习、解释型语言可读性强、应用领域广泛、强大的库和框架、跨平台兼容性、丰富的文档和社区支持、可扩展性、动态类型系统以及优雅的语法和设计哲学。这些优点使得Python成为了一种流行的编程语言,并让越来越多的开发人员爱上了这种语言。无论你是初学者还是经验丰富的开发人员,Python都将成为你编程旅程中的得力助手。
相关文章:

Python语言基础学习大纲(由某大模型生成)
自从上次经丙察察游了一次滇藏线,已有3个没写一篇了。今天利用由某大模型生成的上面这张思维导图,配合这个大模型生成的6000多字拼凑出一篇博文聊以交差。 Python语言概述 一、语言特点 1.语法简单明了 Python的语法简洁易懂,使得编写代码…...

nodejs+vue+微信小程序+python+PHP天天网站书城管理系统的设计与实现-计算机毕业设计推荐
本项目主要分为前台模块与后台模块2个部分,详细描述如下: (1)前台模块 首页: 首页可以起到导航的作用,用户想要了解网站 ,网站首页为用户可以深入了解网站提供了一个平台,它就向一个“导游”…...

工业机器视觉megauging(向光有光)使用说明书(十二,轻量级的visionpro)
关于最后一个工具的介绍:就是这个“相机图像” 我们可以鼠标双击点进去看一看: 在图像上点击,就可以截取一块图像,是可以放大缩小的,这个放大很low,是我以前研究缩放入门时的版本,本想删除&…...

HarmonyOS学习--了解基本工程目录
1.工程级目录 工程的目录结构如下: 其中详细如下: AppScope中存放应用全局所需要的资源文件。entry是应用的主模块,存放HarmonyOS应用的代码、资源等。oh_modules是工程的依赖包,存放工程依赖的源文件。build-profile.json5是工…...

JRT导出协议实现
之前实现了JRT的打印客户端实现,这次实现JRT的导出Excel的客户端实现,这样这套框架就成为完全体了。还是一样的设计,不面向具体业务编程,我喜欢面向协议编程,导出一样定义了一套协议。 协议约定: 然后就是…...

Unity中动态合批
文章目录 前言一、动态合批的规则1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader,来测试动态合批1、我们选择模型的 Mesh…...

逆水行舟!浅谈24届双非本科秋招
逆水行舟!浅谈24届双非本科的秋招 逆水行舟!浅谈24届双非本科的秋招0、背景 -- 写下本文的初衷1、实习 -- 秋招的预备战役1.1 科大讯飞1.2 三七互娱 2、秋招 -- 一场没有硝烟的战争3、总结 -- 做好自己想做的事情 0、背景 – 写下本文的初衷 如题&#…...

vue3请求代理proxy中pathRewrite失效
问题引入 在vue3配置请求代理proxy的时候pathRewrite失效。 有这样一个例子,作用是为了把所有以/api开头的请求代理到后端的路径和端口上,在vue.config.js配置文件中 设置了代理跨域和默认端口。但是重新运行之后发现端口是改了,但是路径仍然…...
练习题——-【学习补档】日期差值
问题描述 描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。 输入描述: 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出描述: 每组…...
面试问题 --文件描述符和流
文件描述符概述 文件描述符是计算机操作系统中用于标识和访问文件或输入/输出设备的抽象概念。在Unix和类Unix系统中,文件描述符是一个非负整数,用于唯一标识打开的文件或I/O设备。本文将介绍文件描述符的基本概念和在Unix环境中的应用。 基本概念 文…...
离线安装Zabbix的MariaDB报Error: Package: 1:mariadb-server-5.5.68-1.el7.x86 64异常解决方法
离线安装Zabbix,结果在安装MariaDB时候,报出以下异常 Error: Package: 1:mariadb-server-5.5.68-1.el7.x86 64(New) Requires: per(File::Path) Error: Package: perl-IO-Compress-2.061-2.el7.noarch (New) Requires: perl(I0: :Seekable) Error: Pack…...

【go语言开发】go项目打包成Docker镜像,包括Dockerfile命令介绍、goctl工具生成
本文主要介绍如何将go项目打包成镜像,首先介绍Dockerfile常用命令介绍,然后介绍使用工具goctl用于生成Dockerfile,还可以根据需求自定义指令内容,最后讲解如何将go-blog项目打包成镜像,以及如何运行等 文章目录 前言Do…...
Python:可以做什么?
简介 Python是一种高级编程语言,因其简单易学、代码可读性强和拥有丰富的标准库而广受欢迎。Python可以用于许多不同领域,主要包括: 数据分析与数据科学:Python有强大的数据处理和分析库,如Pandas、NumPy和SciPy&…...

Lookup Argument简史
1. 引言 主要参考Ingonyama团队2023年4月文章《A Brief History of Lookup Arguments》。 近年来zk-SNARKs的研究热点有: 让ZKP proof更succinct降低Prover time和Verifier time 但,大多数SNARKs仍受限于,易于转换为多项式的算术运算。通…...

【unity3D】Transform组件(如何访问和获取Transform组件)
💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的Transform组件 Transform组件 基础知识介绍三个成员变量常用属性扩展 Transform的相关查找方法静态方法 基础知识 介绍 在Unit…...
单实例应用程序
2023年12月6日,周三凌晨 什么是单实例应用程序 单实例应用程序可以确保在同一时间只有一个应用程序实例在运行。 通常情况下,当用户尝试再次启动一个已经启动过的应用程序时,操作系统会打开一个新的实例。但有些情况下,我们可能…...

Qlik 成为网络犯罪的焦点
研究人员警告说,Cactus 勒索软件组织正在利用 Qlik Sense 数据可视化、探索和监控解决方案中的关键漏洞来获得对企业网络的初始访问权限。 今年八月下旬,Qlik Sense 开发人员 针对影响 Windows 版本平台的两个关键漏洞发布了补丁 。 其中一个漏洞 CVE-…...
1+X Web 前端开发职业技能等级证书模拟题(中级)理论知识
1X Web 前端开发职业技能等级证书模拟题(中级)理论知识 一、单项选择题 在 Bootstrap 中,可以使用 navbar-header 类的情况是() A 为整个页面添加一个标题 B 为导航栏添加一个标题 C 为导航栏 添加头部 D 为整个页面添…...

2023.12.4 关于 Spring Boot 统一异常处理
目录 引言 统一异常处理 异常全部监测 引言 将异常处理逻辑集中到一个地方,可以避免在每个控制器或业务逻辑中都编写相似的异常处理代码,这降低了代码的冗余,提高了代码的可维护性统一的异常处理使得调试和维护变得更加容易,通…...

企业网络安全守护者:EventLog Analyzer日志审计系统
在当今数字时代,企业网络不仅仅是业务运营的核心,也成为各种潜在威胁的目标。为了保障企业的网络安全,日志审计系统成为了不可或缺的一环。其中,ManageEngine的EventLog Analyzer作为一款强大而全面的日志管理与审计解决方案&…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...