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作为一款强大而全面的日志管理与审计解决方案&…...

剪映最新版的4.9,主要更新的功能(于2023年12月2日发布)
新增“多轨道音频”功能:用户可以将多个音频轨道叠加在一起,并对每个音频轨道进行单独的编辑。这使得用户可以更灵活地控制视频的音频效果。新增“音频调音”功能:用户可以使用音频调音功能对视频的音频进行调节,包括音量、音调、…...

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Mybatis核心配置详解
第一章 Mybatis核心配置详解【mybatis-config.xml】 1.1 核心配置文件概述 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 1.2 核心配置文件根标签 没有实际语义,主要作用:所有子标签均需要设置在跟标签内部 1.3 核心配置文件…...

maven-profile
指定profile生效的几种方式 maven中profile的使用详解_maven profile_2021不再有雨的博客-CSDN博客 【Maven】【翻译】3、Profiles文件_maven的profiles文件是什么-CSDN博客 查看当前生效的profile mvn help:active-profiles 比如有些是用activeProfiles在pom中指定的&…...

用python找到音乐数据的位置,并实现音乐下载
嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 需求分析: 有什么需求要实现? 这些需求可以用什么技术实现? 找到音乐数据的位置, 分析 不同音乐的链接有何规律?https://lx-sycdn.kuwo.cn/b784688662c82db8…...

MATLAB算法实战应用案例精讲-【图像处理】边缘检测(补充篇)(附MATLAB代码实现)
目录 前言 几个相关概念 知识储备 数字图像处理(Digital Image Processing)...

黑马头条数据管理平台项目总结
今天主要看了该项目的介绍,这个黑马头条数据管理平台项目主要包括登录、用户的权限判断、文章内容列表的筛选和分页、文章的增删查改还有图片和富文本编辑器这几大部分组成,项目配套了素材代码,像资源文件、第三方插件、页面文件夹、工具插件…...

IDEA中,光标移动快捷键(Shift + 滚轮前后滚动:当前文件的横向滚动轴滚动。)
除此之外,其他常用的光标移动快捷键包括: Shift 滚轮前后滚动:当前文件的横向滚动轴滚动。Shiftenter:快速将鼠标移动到下一行。Ctrl ]:移动光标到当前所在代码的花括号结束位置。Ctrl 左方向键:光标跳转…...

对标Gen-2!Meta发布新模型,进军文生视频赛道
随着扩散模型的飞速发展,诞生了Midjourney、DALLE 3、Stable Difusion等一大批出色的文生图模型。但在文生视频领域却进步缓慢,因为文生视频多数采用逐帧生成的方式,这类自回归方法运算效率低下、成本高。 即便使用先生成关键帧,再生成中间帧新方法。如…...

zabbix的自动发现机制、代理功能、SNMP监控
一、自动发现(不安全,有时会失效,建议手动添加主机) 1、定义 zabbix主动与服务端联系,将自己的地址和端口发送给服务端,实现自动添加监控主机 客户端是主动的一方 2、缺点 若自定义网段中主机数量太多…...

spring webflux文件上传与下载
1、文件上传: Controller: PostMapping("/import")public void importImage(RequestPart("file") FilePart filePart) {imageService.importImage(filePart);}Service: public void importImage(FilePart filePart) {Fi…...