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 下的所有项目克隆到本地。此脚本会自动获取项目列表并逐一克隆它们,再在本地进…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
