Study Pyhton
PyCharm
PyCharm是一个写python代码的软件,用PyCharm写代码比较方便。
| PyCharm快捷键 | |
| ctrl + alt + s | 打开软件设置 |
| ctrl+ d | 复制当前行代码 |
| shift + alt + 上\下 | 将当前行代码上移或下移 |
| crtl + shift + f10 | 运行当前代码文件 |
| shift+f6 | 重命名文件 |
| ctrl+ a | 全选 |
| ctrl +c\v\x | 复制、粘贴、剪切 |
| ctrl+ f | 搜索 |
Python基础语法
常用的数据类型
常用的值类型
Python中常用的数据值类型有下列一些
| 类型 | 描述 | 说明 |
| 数字( Number) | 整数( int) | 数( int),如:10、-10 |
| 浮点数(float) | 浮点数(float) ,如:13.14、-13.14 | |
| 复数(complex) | 复数(complex),如:4+3j,以j结尾表示复数 | |
| 布尔(bool) | 布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假。True本质上是一个数字记作1,False记作0 | |
| 字符串( String) | 描述文本的一种数据类型 | 字符串( string)由任意数量的字符组成 |
| 列表( List) | 有序的可变序列 | Python中使用最频繁的数据类型,可有序记录一堆数据 |
| 元组(Tuple) | 有序的不可变序列 | 可有序记录一堆不可变的Python数据集合 |
| 集合( Set) | 无序不重复集合 | 可无序记录一堆不重复的Python数据集合 |
| 字典( Dictionary) | 无序Key-Value集合 | 可无序记录一堆Key-value型的Python数据集合 |
有一种特殊数据类型为NoneType,其数据只有一个:None。None的意思是空,即为什么都没有。
变量
在程序运行时,能储存计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的。
变量的定义格式:变量名称 = 变量的值
每一个变量都有自己的名称,称之为:变量名,也就是变量本身。
等号表示赋值,将等号右侧的值赋予左侧的变量。
每一个变量都有自己存储的值(内容),称之为:变量值。
type()
我们可以通过type()来得到数据的类型
语法:type(被查看类型的数据)
print(type("文字")) // <cLass' str' >
print(type(666)) // <class 'int'>
print(type(11.345)) // <cLass 'float'>
数据类型转换
不同的数据类型间的转换
| 函数 | 说明 |
| int(x) | 将x转换为一个整数 |
| float(x) | 将x转换一个浮点数 |
| str(x) | 将对象x转换为字符串 |
想要将字符串转换成数字,必须要求字符串内的内容都是数字。浮点数转整数会丢失精度,小数部分丢失。任何类型都可以转换成字符串。
*注释
注释有单行注释与多行注释两种
单行注释:以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用。#号和注释内容一般建议以一个空格隔开
多行注释:以一对三个双引号引起来("""注释内容""")来解释说明一段代码的作用使用方法
基础符号
标识符
标识符是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
Python中,标识符命名的规则主要有3类:1.内容限定:标识符命名中,只允许出现英文、中文、数字、下划线(_)。其余任何内容都不被允许。(支持中文但不推荐,不可以以数字开头) 2.大小写敏感 3.不可使用关键字
一些关键字:False 、True、None、and、as、assert、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield。(不用刻意记)
标识符命名规范:见名知意、下划线命名法、英文字母全小写。
运算符
| 运算符 | 描述 | |
| 算术(数学)运算符 | + | 加 |
| - | 减 | |
| * | 乘 | |
| / | 除 | |
| // | 取整数 | |
| % | 取余 | |
| ** | 指数 | |
| 赋值运算符 | = | 赋值 |
| 复合赋值运算符 | += | 加法赋值运算符 |
| -= | 减法赋值运算符 | |
| *= | 乘法赋值运算符 | |
| /= | 除法赋值运算符 | |
| %= | 取模赋值运算符 | |
| **= | 幂赋值运算符 | |
| //= | 取整除赋值运算符 |
字符串、用户输入
字符串
字符串有三种定义方式:单引号定义法、双引号定义法、三引号定义法。三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串。不使用变量接收它,就可以作为多行注释使用。
字符串的引号嵌套
单引号定义法,可以内含双引号。双引号定义法,可以内含单引号。双引号定义法,可以内含单引号。可以使用转移字符(\)来将引号解除效用,变成普通字符串。
字符串拼接
如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成。字符串无法和非字符串类型进行拼接。
用户输入
使用input()语句可以从键盘获取输入
使用一个变量接收(存储)input语句获取的键盘输入数据即可
input()语句可以在要求使用者输入内容前输出提示内容,提示内容需要输入到后边的()中
通过input()输入的数据都为字符串数据类型
格式化
字符串格式化
| 格式符号 | 转化 |
| %s | 将内容转换成字符串,放入占位位置 |
| %d | 将内容转换成整数,放入占位位置 |
| %f | 将内容转换成浮点型,放入占位位置 |
name = "GLATY"
out = "python小白%s" %name
其中的%s:%表示占位置。s表示将变量变成字符串放入占位的地方。(多个变量占位变量要用括号括起来并按照占位的顺序填入)
用%s不仅可以插入字符串还可以插入数字类型(数字会被转化成字符串)
格式化精度控制
可以使用辅助符号"m.n"来控制数据的宽度和精度。m控制宽度,要求是数字(很少使用) ,设置的宽度小于数字自身,不生效。n控制小数点精度,要求是数字,会进行小数的四舍五入。 小数点和小数部分也算入宽度计算。
示例:
●%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成: [空格][空格][空格]11, 用三个空格补足宽度。
●%5.2f: 表示将宽度控制为5,将小数点精度设置为2
●%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后, 结果是11.35
●11.345设置了%7.2f后, 结果是: [空格][空格]11.35。2个空格补足宽
快速格式化
可以用 f "内容{变量}" 的格式来快速格式化。这种方式不理会类型不做精度控制,适合对精度没有要求的时候快速使用。
n1 = 1
n2 = 1.1
n3 = 2.1
adj = "正确的"
print(f"{n1}加{n2}等于{n3}是{adj}")
在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码
基础语句
判断语句
布尔类型与比较运算符
布尔类型有true与false两种
| 运算符 | 描述 |
| == | 判断内容是否相等,满足为True,不满足为False |
| != | 判断内容是否不相等,满足为True, 不满足为False |
| > | 判断运算符左侧内容是否大于右侧满足为True,不满足为False |
| < | 判断运算符左侧内容是否小于右侧满足为True,不满足为False |
| >+ | 判断运算符左侧内容是否大于等于右侧满足为True,不满足为False |
| <= | 判断运算符左侧内容是否小于等于右侧满足为True,不满足为False |
if语句
if 判断条件 :
判断结构为True后执行的语句
num = 1if num > 0:print("正数")# 可写多条语句且只有判断结构为True时执行,为False则都不执行
*判断条件为None时就是False
if else语句
if 判断条件 :
判断结构为True后执行的语句
else:
判断结构为False后执行的语句
num = int(input())if num > 0:print("正数")# 可写多条语句且只有判断结构为True时执行
else:print("非正数")# 可写多条语句且只有判断结构为False时执行
if elif else语句
if 判断条件1 :
判断条件1为True后执行的语句
elif 判断条件2:
判断条件2为True后执行的语句
...
elif 判断条件N:
判断条件N为True后执行的语句
else:
判断结构为False后执行的语句
判断是互斥且有序的,上一个满足后面的就不会判断了。Python通过空格缩进来判断层次关系
num = int(input())if num > 0:print("正数")# 可写多条语句且只有判断结构为True时执行
elif num = 0:print("0")# 可写多条语句且只有判断结构为True时执行
# ...
else:print("...")# 可写多条语句且只有判断结构为False时执行
循环语句
while循环
while 条件:
满足条件执行的语句
...
t = 1
while t <= 10:print(t)t += 1# ...
for循环
while循环的循环条件是自定义的,自行控制循环条件
for循环是一种遍历循环,将待处理的一些数据逐个处理。待处理的数据集被称为序列类型(序列类型指其内容可以个个依次取出的一种类型,这些类型包括字符串、列表、元组等)
for 临时变量 in 序列类型:
循环满足条件时执行的代码
t = "GLATY"
for a in t:print(a)
range()
range(num):获取一个从0开始,到num结束的数字序列(不含num本身)
range (num1,num2):获得一个从num1开始,到num2结束的数字序列( 不含num2本身)
range (num1, num2, step):获得一个从num1开始,到num2结束的数字序列(不含num2本身)数字之间的步长,以step为准(step默认为1)
如果在for循环外部访问临时变量:实际上是可以访问到的(访问到的是临时变量最后被赋值的数据),但在编程规范上是不允许不建议这么做的
循环字段
break
提前退出循环,不在继续
continue
暂时跳过某次循环,直接进行下一次循环
函数
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
定义函数
def 函数名(形式参数) :
函数体
return 返回值
t = 1def test(a):global tt = a
形式参数可以传入多个,用逗号分开(如不需要,可以省略)
返回值如不需要,可以省略(执行return后函数体结束,后边不再有代码即使有也不执行。无返回值是返回的为None)
*在函数定义的变量(即局部变量)在函数外不可以使用。在定义函数前定义一个变量(即全局变量),这样的变量在函数中可用在函数外也可用。在函数中改变全局变量需要用关键字global
使用函数
函数名(实际参数)
t = 1def test(a):global tt = aprint(test(2))
实际参数可以是多个,但是输入顺序与定义函数的形式参数必须一一对应
如果有返回值可以复制给其它变量,也可以直接使用
函数在使用之前必须先定义,但是先定义的函数中可以使用后定义的函数
函数的说明文档
函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低
在写函数时可以添加说明文档,辅助理解函数的作用。函数文档就是用多行注释来进行解释函数的作用,内容应写在函数体之前。
def function(x, y, z)"""函数说明:param x: 参数x的说明:param y: 参数y的说明:param z: 参数z的说明"""# 函数体# return 返回值
数据容器
数据容器是一种可以存储多个元素的Python数据类型
数据容器类型有五类:list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)
List
定义
变量名称 = [元素1, 元素2, ..., 元素N]
变量名称 = list(字符串)
元素间用逗号分隔,定义空列表时只需要不填入元素即可
list1 = ["a", "abc", 1, 2] # 可以存入多种数据,也可以什么都不存入
list2 = list("GLATY") #只能存入一个字符串,是以单个字符的形式存入的
下标索引
列表中的每一个元素都有索引,从前到后从0开始依次递增
list = [1, 2, 3]
print(list[2]) # 打印出的数据为3
还可以反向索引,从后向前从-1开始,依次递减(-1、 -2、-3...... )
list = [1, 2, 3]
print(list[-2]) # 打印出的数据为2
常用的操作方法
相关文章:
Study Pyhton
PyCharm PyCharm是一个写python代码的软件,用PyCharm写代码比较方便。 PyCharm快捷键ctrl alt s打开软件设置ctrl d复制当前行代码 shift alt 上\下将当前行代码上移或下移crtl shift f10运行当前代码文件shiftf6重命名文件 ctrl a全选ctrl c\v\x复制、粘贴、…...
【MySQL】:深入解析多表查询(下)
🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. 自连接1.1 自连接查询1.2 联合查询 二. 子查询2.1 概述2.2 分类2.3 标量子查…...
图像入门处理4(How to get the scaling ratio between different kinds of images)
just prepare for images fusion and registration ! attachments for some people who need link1 图像处理入门 3...
【项目精讲】Swagger接口文档以及使用方式
Swagger 介绍 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/) 前后端分离开发,有利于团队合作接口的文档在线自动生成,降低后端开发人员编写接口文档的负担功能测试 如何使…...
ThingsBoard通过服务端获取客户端属性或者共享属性
MQTT基础 客户端 MQTT连接 通过服务端获取属性值 案例 1、首先需要创建整个设备的信息,并复制访问令牌 2、通过工具MQTTX连接上对应的Topic 3、测试链接是否成功 4、通过服务端获取属性值 5、在客户端查看对应的客户端属性或者共享属性的key 6、查看整个…...
(78)删除有序数组中的重复项(79)排序矩阵查找
文章目录 1. 每日一言2. 题目(78)删除有序数组中的重复项2.1 解题思路2.2 代码 3. 题目(79)排序矩阵查找3.1 解题思路3.1.1 暴力查找暴力查找代码 3.1.2 二分查找二分查找代码 3.1.3 贪心贪心代码 4. 结语 1. 每日一言 水晶帘动微风起,满架蔷薇一院香。 —高骈- 2.…...
elasticSearch从零整合springboot项目实操
type会被弃用 ,就是说之后的elasticSearch中只会存在 索引(indices) 和 一行(document) 和字段(fields) elasticSearch 和solr的区别最大的就是 es对应的 是 json的格式 。 solr有xml和josn等…...
【Linux实践室】Linux高级用户管理实战指南:用户所属组变更操作详解
🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux查看用户所属组2.1.1 👻使…...
C语言: 字符串函数(下)
片头 在上一篇中,我们介绍了字符串函数。在这一篇章中,我们将继续学习字符串函数,准备好了吗?开始咯! 1.strncpy函数 1.1 strncpy函数的用法 strncpy是C语言中的一个字符串处理函数,它用于将一个字符串的一部分内容…...
WPF 数据绑定类属性 和数据更新
WPF中数据绑定是一个非常强大的功能,不仅可以绑定后台数据,还可以进行实时更新。 数据绑定实例 : 在后台创建模型类,然后在标签页面进行导入并绑定。 第一步: // 在后台创建模型类 public class MyData {public string Name { get; set; }…...
使用云服务器搭建CentOS操作系统
云服务器搭建CentOS操作系统 前言一、购买云服务器腾讯云阿里云华为云 二、使用 XShell 远程登陆到 Linux关于 Linux 桌面下载 XShell安装XShell查看 Linux 主机 ip使用 XShell 登陆主机 三、无法使用密码登陆的解决办法 前言 CentOS是一种基于Red Hat Enterprise Linux&#…...
unity的引用传递和数组的联系
引用传递 //引用传递 static void SetY(out int x,out int y ){x 0;y 0;x 1000;}static void Main(string[] args){int x 0;int y 10;SetY(out x, out y);Console.WriteLine($"x{x},y{y}");} 结果是:x1000,y0 数组的引用传递 数组值…...
Android bug Unresolved reference: BR
新建项目后 导入viewBinding 编译后提示 Unresolved reference: BR 解决办法 app 目录下 build.gradle 中 plugins 节点 添加 id kotlin-kapt参考 https://stackoverflow.com/questions/77409050/could-not-find-androidx-corecore-ktx1-8-10...
Unity DOTS1.0 入门(1) ECS机制与概述
ECS机制与概述 Entity:实体 由一个一个的Component组合在一起,是连续的内存布局。通过EnitityManager来负责高效的分配和释放相关entity. World:世界 一个entity的集合,在当前世界里面,每个Entity都有唯一不同的entityld;运行时Unity会自动创建一个D…...
root管理员用户启动kibana报错
问题描述: CentOS7.9.2009环境,以root管理员用户启动kibana7.11.1程序报如下错误: Kibana should not be run as root. Use --allow-root to continue. [root@elasticsearch bin]# whoami root [root@elasticsearch bin]# pwd /usr/local/kibana-7.11.1-linux-x86_64/bi…...
【leetcode面试经典150题】50. 插入区间(C++)
【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...
第二期书生浦语大模型训练营第三次笔记
RAG RAG是什么? RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺…...
SpringMVC(一)【入门】
前言 学完了大数据基本组件,SpringMVC 也得了解了解,为的是之后 SpringBoot 能够快速掌握。SpringMVC 可能在大数据工作中用的不多,但是 SSM 毕竟是现在就业必知必会的东西了。SpringBoot 在数仓开发可能会经常用到,所以不废话学吧…...
SQL Server详细使用教程
SQL Server 是 Microsoft 公司开发的关系型数据库管理系统(RDBMS),用于存储和检索数据。以下是 SQL Server 的详细使用教程: 目录 1. 安装 SQL Server 2. 连接到 SQL Server 3. 创建数据库 4. 创建数据表 5. 插入数据 6. 查…...
Spring Boot项目启动时执行指定的方法
项目场景: 本文介绍Spring Boot项目启动时执行指定的方法两种常用方式和他们之间的区别。 实现方案: 方式一:使用注解PostConstruct Component public class PostConstructTest {PostConstructpublic void postConstruct() {System.out.prin…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...
