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…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...