python基础(一)
python语言特点
解释型语言 | 代码执行过程中通过解释器将代码转换为机器语言,并立即执行;编译型语言执行前需要经过编译整个代码文件为机器语言的可执行文件,然后执行能找出大部分错误 | |
错误处理 | 解释型语言在运行时发现错误,编译型语言在编译时 | |
执行速度 | 编译型语言比解释型语言执行更快,因为其代码是直接的机器码 | |
平台依赖 | 编译语言生成平台特定可执行文件,解释型语言则更为跨平台,因为只需要对应平台的解释器 | |
支持面向对象、过程化编程和函数式编程,应用广泛,通过模块和包机制高度复用和模块化设计; web:Django,Flask等框架 数据分析:Pandas、NumPy等 网络爬虫: Scrapy 人工智能:TensorFlow、Keras 自动化测试:Selenium自动化测试 游戏开发:Pygame库2D 科学计算:Scipy 区块链: Hyperledger、Ethereum 嵌入式: MicroPython |
标识符
标识符是允许作为变量(函数、类等)名称的有效字符串。有一部分是关键字,语言本身保留的标识符,这些是不能做它用的标识符的,否则会引起语法错误(SyntaxError 异常);
Python 是动态类型语言, 不像C++那种静态型语言定义的时候都要明确类型,python不需要预先声明变量的类型。 变量的类型和值在赋值那一刻被初始化,变量赋值通过等号来执行。
Python的有效标识符由大小写字母、下划线和数字组成,数字不能作为开始字符,标识符的长度一般不限,Python标识符是严格大小写敏感的。
保留字
False | None | True | and | as | assert | async | await | break | class |
continue | def | del | elif | else | except | finally | from | global | import |
for | lambda | not | with | pass | while | nonlocal | yield | raise | return |
if | in | is | or | try |
number=12
my_var=1
_temp='hell' #' ' 与"" 定义字符串,使用#单行注释
str_tem="world"
#1wo='sd' #表示符 error SyntaxError: invalid decimal literal
#if=1 SyntaxError: invalid syntax
def my_func():'''多行注释,注意行缩进规则'''sum_temp=number+\my_varday=['m','t', #换行'w']print(sum_temp) #13print(day) #['m', 't', 'w']
my_func()
运算符
算数运算符 | 比较运算符 |
| |
赋值运算 | 位运算 |
| |
逻辑运算符 | 成员运算符、身份运算符 |
| |
条件/循环/控制语句
条件语句 | 循环、控制语句 |
| |
数据类型
变量存储在内存中的值,在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中,可以执行什么样的操作。python基本数据类型一般分为:数值(Numbers)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set)
变量赋值
Python 中的变量赋值不需要类型声明,等号 = 用来给变量赋值,变量赋值以后该变量才会被创建,每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
num = -100 # 赋值有符号整型变量
weight = 100.0 # 浮点型
name = "hello" # 字符串 or name1='hell' or name2='''hell'''
bool_value = True # 布尔值
list_val = [1, 2, 3, 4, 5] # 列表
tuple_val = (1, 2, 3, 4, 5) # 元组
dict_val = {'name': 'AC', 'age': 25} # 字典
set_val = {1, 2, 3, 4, 5} # 集合
#创建一个整型对象,值为1,三个变量被分配到相同的内存空间上
a = b = c = 1 #多变量赋值
#两个整形对象和一个字符串对象
a1,b1,c1=1,2,'wold'
字符串与列表
str字符串 | list |
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用,支持切片操作 | 序列都可以进行的操作包括索引,切片,加,乘,检查成员。元素可以是list,列表的数据项不需要具有相同的类型。 |
| |
字符串内置函数
s="hello wo"
s.encode(encoding='utf#8', errors='sict') # 返回字符串的编码版本,默认使用 UTF#8 编码
s.endswith('wo') #True 检查字符串是否以指定的后缀结尾,可以指定搜索的范围
s.expandtabs(tabsize=8) # 替换字符串中的 tab 符号(\t),默认一个 tab 替换为 8 个空格
s.find('wo') #6 找到子串 sub 第一次出现的位置,可以指定搜索的范围
s.index('ll') #2 和 s.find 类似,但如果子串不存在会抛出异常
s.isalnum() #False 检查字符串是否只包含字母和数字
s.isalpha() #False 检查字符串是否只包含字母
s.isdecimal() #False 检查字符串是否只包含十进制数字
s.isdigit() #False 检查字符串是否只包含数字
s.islower() #True 检查字符串中所有的字母是否都是小写
s.isnumeric() #False 检查字符串中所有的字符是否都是数字
s.isspace() #False 检查字符串是否只包含空格
s.istitle() #False 检查字符串中的单词是否都是首字母大写
s.isprintable() #True 检查字符串中的字符是否都是可打印的
s.join('abc') #ahello wobhello woc 将可迭代对象中的元素连接起来,元素必须都是字符串
s.ljust(6) # 返回一个指定宽度 width 左对齐的字符串,默认使用空格填充
s.lower() # 将字符串中的所有大写字母转换为小写
s.lstrip() # 去除字符串左侧的空白或指定字符lsip([chars])
s.rstrip() # 去除字符串右侧的空白或指定字符lsip([chars])
s.strip() #首尾空格
s.replace('wo', 'world') # 返回字符串中 old 被替换为 new 的新字符串,可以指定最大替换次数
s.rfind('l') #3 和 s.find 类似,但从右边开始搜索
s.rindex('l') #3 和 s.index 类似,但从右边开始搜索
s.rjust(7) # 返回一个指定宽度 width 右对齐的字符串,默认使用空格填充
s.rpartition(' ') # 类似 s.partition,但是从右边开始搜索分隔符
s.upper() #'HELLO WO' 转大写
s.lower() #转小写
s.capitalize() #'Hello wo' 首字母大写
s.title() #'Hello Wo' 标题化 每个单词大写
列表操作
#list列表操作
la = ['a', 'b', 'a', 'c']
la1=['k','p']
#list.append(obj) 在列表末尾添加新的对象
la.append('g') #['a', 'b', 'a', 'c', 'g']
#在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
la.extend(la1) #['a', 'b', 'a', 'c', 'g', 'k', 'p']
la.count('a') #2 list.count(obj) 统计某个元素在列表中出现的次数
la.index('b') #1 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
la.insert(0,'x') # list.insert(index, obj) 将对象插入列表
#ist.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
la.pop() #['x', 'a', 'b', 'a', 'c', 'g', 'k']
la.pop(0) #['a', 'b', 'a', 'c', 'g', 'k']
#list.remove(obj) 移除列表中某个值的第一个匹配项
la.remove('a') #['b', 'a', 'c', 'g', 'k']
la.reverse() #['k', 'g', 'c', 'a', 'b'] 反向列表中元素
#list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序
la.sort()#['a', 'b', 'c', 'g', 'k']
元组-字典
元组tuple | 字典 |
元组的元素不能修改,创建空元组tp=(), 只有一个元素tp=(1,);元组与字符串类似,下标索引从0开始,可以进行截取,组合等。 | 可变容器且可存储任意类型对象,字典的每个键值 key=>value : 分割,每个键值对之间用逗号 , 分割,整个字典在 {} 中 ,eg: d = {key1 : v1, key2 : v2 }键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一. |
| |
集合set
集合(Set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
元素无序、元素不可更改、元素类型可以是各种类型、集合不允许有重复元素
#集合set
sp={1,2,3,1} #{1, 2, 3} 去重
a=set('abcaf') #{'c', 'b', 'a','f'}
b=set('abcde')
a-b #{'f'} 集合a中包含而集合b中不包含的元素
a|b #{'b', 'f', 'c', 'e', 'a', 'd'} 集合a或b中包含的所有元素
a&b #{'a', 'c', 'b'} 集合a和b中都包含了的元素
a^b #{'d', 'f', 'e'} 不同时包含于a和b的元素
#添加元素
#s.add(x) 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作
a.add('r') #{'r', 'b', 'a', 'f', 'c'} 元素顺序每一次输出不一定一致
#s.update(x) 且参数可以是列表,元组,字典等
a.update('x') #{'x', 'f', 'a', 'b', 'r', 'c'}
a.update(['y','z']) #{'y', 'a', 'f', 'c', 'x', 'z', 'r', 'b'}
#移除元素
a.remove('x') #{'c', 'y', 'z', 'b', 'a', 'f', 'r'}
#a.remove('x') #KeyError: 'x'
a.discard('y') #{'z', 'r', 'a', 'b', 'f', 'c'}
a.discard('y') #不存在也不会报错
len(a) #6
'x' in a #判断元素是否在集合中存在
print(a.difference(b)) #{'f', 'r', 'z'} 返回多个集合的差集
print(a.intersection(b)) #{'c', 'a', 'b'} 返回集合的交集
print(a.isdisjoint(b)) #False 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
print(a.issubset(b)) #False 判断指定集合是否为该方法参数集合的子集。
相关文章:

python基础(一)
python语言特点 解释型语言代码执行过程中通过解释器将代码转换为机器语言,并立即执行;编译型语言执行前需要经过编译整个代码文件为机器语言的可执行文件,然后执行能找出大部分错误错误处理解释型语言在运行时发现错误,编译型语…...
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。 carbon 目前已捐赠给 dromara 开源组织,已被 awesome-go 收录&am…...

守护进程
目录 守护进程 前台进程 后台进程 session(进程会话) 前台任务和后台任务比较好 本质 绘画和终端都关掉了,那些任务仍然在 bash也退了,然后就托孤了 编辑 守护进程化---不想受到任何用户登陆和注销的影响编辑 如何…...

学习日记_20241126_聚类方法(自组织映射Self-Organizing Maps, SOM)
前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…...

【接口自动化测试】一文从0到1详解接口测试协议!
接口自动化测试是软件开发过程中重要的环节之一。通过对接口进行测试,可以验证接口的功能和性能,确保系统正常运行。本文将从零开始详细介绍接口测试的协议和规范。 定义接口测试协议 接口测试协议是指用于描述接口测试的规范和约定。它包含了接口的请求…...

安全设备-日志审计-系统安装部署配置
3.1 系统安装部署概述 通过系统初始化安装部署,可实现对系统的基础管理工作。系统安装基本部署涉及功能有时间配置、 资产组、资产、用户组、用户、时间配置等) 3.2 系统安装部署配置举例 3.2.1 用户场景 本阶段进行系统安装,进行相关设…...

【ArcGIS Pro】实现一下完美的坐标点标注
在CAD里利用湘源可以很快点出一个完美的坐标点标注。 但是在ArcGIS Pro中要实现这个效果却并不容易。 虽然有点标题党,这里就尽量在ArcGIS Pro中实现一下。 01 标注实现方法 首先是准备工作,准备一个点要素图层,包含xy坐标字段。 在地图框…...
Unity项目性能优化列表
1、对象池 2、检查内存是否泄露。内存持续上升(闭包、委托造成泄露) 3、检查DrawCall数量,尽量减少SetPassCall 4、尽量多的利用四种合批 动态合批(Dynamic Batching)静态合批(Static Batching)GPUInstancingSRP Batcher 动态合批消耗内存把多个网格组合在一起合并…...
【系统架构设计师】高分论文:论软件架构的生命周期
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 摘要正文摘要 2022 年5月,本人所在的某集团公司承接了财务共享服务平台综合管理系统的项目开发,该项目主要实现财务系统主流业务的集成共享。本人担任项目组成员中的系统架构设计师一职,全面负责项目的全生命周…...
流量控制和拥塞控制的区别
流量控制和拥塞控制是TCP协议中两个重要的机制,它们分别用于解决不同的问题。 流量控制 流量控制的目的是防止发送方发送数据过快,导致接收方来不及接收,从而避免分组丢失。流量控制是通过滑动窗口机制实现的,接收方在返回的ACK…...

CSS 背景、阴影和混合模式
网站的好坏在于细节,在实现页面里某个组件的布局并写完样式之后,不要急着继续,有意识地训练自己,以挑剔的眼光审视刚刚完成的代码。 1 背景与渐变 background-image 指定文件或者生成的颜色渐变为背景图片。 background-origin…...

第49届ICPC亚洲区域赛,非凸科技再次支持上海赛站
11月16日-17日,第49届ICPC国际大学生程序设计竞赛亚洲区域赛上海站在上海大学宝山校区成功举办,来自全国各地222所高校、中学、企业的352支参赛队伍同台竞技。非凸科技高度重视ICPC竞赛,再次荣膺上海赛站合作伙伴,共同推动全球信息…...
良好的并发编程习惯之封闭(Confinement)
创作内容丰富的干货文章很费心力,感谢点过此文章的读者,点一个关注鼓励一下作者,激励他分享更多的精彩好文,谢谢大家! “共享可变状态”有两个要点:“共享”和“可变”。封闭的策略是:不共享就完…...

docker镜像、容器、仓库介绍
docker docker介绍docker镜像命令docker容器命令docker仓库 docker介绍 官网 Docker 是一种开源的容器化平台,用于开发、部署和运行应用。它通过将应用程序及其依赖项打包到称为“容器”的单一包中,使得应用能够在任何环境下运行,不受底层系…...

写个添加球队和展示球队的功能--laravel与inertia
先展示下最终效果,如下是展示球队的界面 如下是添加球队的界面 界面样式没怎么调整,不要在意这些细节。先说说操作流程 首先需要登录,没注册就注册一个账号。登录界面就不展示了。然后选中”NbaBasketballTeams“这个选项,就进入了展示球队的界面。然后点击…...

自制Windows系统(十)
上图 (真的不是Windows破解版) 开源地址:仿Windows...

World of Warcraft /script SetRaidTarget(“target“, n, ““) n=8,7,6,5,4,3,2,1,0
魔兽世界执行当前目标标记方法 /script SetRaidTarget("target", n, "") n8,7,6,5,4,3,2,1,0 解析这个lua脚本 D:\Battle.net\World of Warcraft\_classic_\Interface\AddOns\wMarker wMarker.lua /script SetRaidTarget("target", 8, &quo…...

Rust中Tracing 应用指南
欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比,tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪,帮助开…...

海外媒体发稿:根据您的要求编写二十个文案标题方法-华媒舍
本文旨在科普解读并描述标题中所包含的二十个爆款文案,为读者提供更深入的了解和知识。通过对每个标题进行拆解描述,我们将深入探讨各个文案标题的背后含义和吸引人之处。 1、"10个你不可忽视的秘密技巧,提升你的生活品质!&q…...
gitlab:使用脚本批量下载项目,实现全项目检索
目的 当需要知道gitlab中所有项目是否存在某段代码时,gitlab免费版只提供了当个项目内的检索,当项目过多时一个个查太过繁琐。下面通过 GitLab API 将指定 Group 下的所有项目克隆到本地。此脚本会自动获取项目列表并逐一克隆它们,再在本地进…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
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; 左…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...