python学习-基础知识总结

news2025/1/3 4:44:22

(一)基础语法

1.1、注释

程序添加注释,可以用来解释程序某些部分的作用和功能,提高程序的可读性,注释有两种形式:

  • 单行注释:#
  • 多行注释:单引号('''注释内容''')或双引号("""注释内容""")

1.2、变量

python是弱类型语言,变量不用声明即可直接赋值,而且其数据类型可以动态改变。

1.3、基本数据类型

  • 数字:整数(八、十、十六进制)、浮点数、复数
  • 字符串
  • 布尔类型

数据类型转换:

1.4、输入与输出

  • input():输入
  • print():输出

(二)运算符与表达式

2.1、运算符

算数运算符

 赋值运算符

 比较运算符

 逻辑运算符

 位运算符

  • 按位与(&):两个操作数据的二进制表示,只有对应位都是1时,结果位才是1,否则为0
  • 按位或(|):两个操作数据的二进制表示,只有对应位都是0,结果位才是0,否则为1
  • 按位异或(^);当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1
  • 按位取反(~):对应二进制中的1修改为0,0修改为1
  • 左移位(<<):二进制操作数向左移动指定的位数
  • 右移位(>>):二进制操作数向右移动指定的位数

2.2、运算符优先级

 2.3、条件表达式

r = a if a > b else b

等价于

if a>b:
    r=a
else:
    r=b

(三)流程控制语句

3.1、顺序结构

if

单分支:

if 布尔表达式 1:
    分支1

双分支

if 布尔表达1:
    分支1
else:
    分支2

多分支

if 布尔表达1:
    分支1
elif 布尔表达2:
    分支2
.....
else:
    分支n

3.2、循环结构

while

while 条件表达式:
    循环体
while 条件表达式:
    循环体
else:
    语句块
for
for 变量 in 迭代对象:
    循环体
for 变量 in 迭代对象:
    循环体
else:
    语句块

3.3、break、continue、pass

  • break:以停止执行最深层的循环,并开始执行下一行代码
  • continue:跳出本次循环
  • pass:空语句,作用是保持程序结构的完整性

(四)序列

4.1、列表

1、创建:

  • 直接创建:列表名=[];

  • list()函数创建:列表名=list();

2、增加元素:

  • 连接符“+”:用于两个列表之间的连接
  • a.append(b):将元素b插入列表a之后(插入的内容视为一个元素)
  • a.extend(b):将列表b插入列表a之后,插入的内容视为多个
  • a.insert(index,b):指定位置插入,在第index位置(从0开始计算)插入值b

3、修改:

直接赋值:列表名[索引值]=新值

4、删除:

  • del ():指定删除元素。

  • pop():删除最后一个元素,并返回该值

  • remove():删除首次出现的指定元素

5、访问:

  • index(b,start,len):从start到len范围内,查找值b首次出现的下标,start默认为0,len默认列表的长度,即默认查找整个列表

  • count():统计袁术出现的次数

6、判断是否存在:in(not in)

7、切片:

切片的格式是:[开始,结束,步长],步长默认是1

当只有两个参数时候是[开始,结束],而且是包含左边,不包含右边

切片的核心是快速灵活的选择列表的元素,选择之后,可以进行增删改查等一系列操作,

切片的特殊操作:

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[len(a):]=[10,11]   //末尾增加元素
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
>>> a[:3]=[]   //删除前三个元素
>>> a
[3, 4, 5, 6, 7, 8, 9, 10, 11]

8、复制列表:

  • 浅复制:直接赋值。例如:b=a[],a的值复制给了b
  • 深复制:copy()或deepcopy()例如:b=copy.copy(a)或b=copy.deepcopy(a),把列表a中的值复制给b,copy是一个类,需要导入

浅复制:a的值复制给b之后,当a列表的值改动,b列表的值也跟着改动

深复制:a复制给b之后,列表a和列表b互不印象

9、排序:

  • 自身排序方法:sort():升降序;reverse():逆序
  • 内置函数:sorted():升序,reversed():逆序
  • 打乱排序:random中的shuffle()

10、内置函数

  • all:所有的元素是否等价于true(0为flase,非0为true)即:所有元素中是否非0
  • any:所有元素是否存在元素等价于true,即:所有元素是否有非0值
  • max(列表)、min(列表):求列表的最大值
  • sum(列表):所有元素之和
  • zip(列表a,列表b):多个列表组合成元组
  • enumerate(列表):返回枚举对象

11、列表推导式:

list=[expression for var in range]

4.2、元组

1、创建:

  • 直接创建:元组名=(值1,值2.....)
  • tuple():元祖名=tuple(值1,值2.....)
  • zip(a,b):a和b可以是列表,也可以是元祖,连接a和b,生成元祖

2、序列解包:

对多个变量同时赋值

4.3、字典

1、创建

  • 直接创建

  • dict()

  • dict.fromkeys():只创建值,没有值

2、读取:

  1. 键作为下标:通过键,读取值

  2. get方法:通过键读取值

  3. items():返回键值对集合,需要遍历访问

  4. keys():返回键的集合

  5. values():返回值的集合

3、添加与修改:

字典名[键a]=值b:当键a不存在时,语句是增加键值对,当键a存在时,会对值进行修改

4.4、集合

创建:

  • 直接创建
  • set()方法:若内容重复,自动归类

删除:

  • pop():无参数,删除第一个元素,返回删除的值
  • remove():指定删除元素
  • clear():删除全部元素

增加:add(值)

运算

  • 并集 :aIb
  • 交集:a&b
  • 差集:a-b
  • 对称差集:a^b
  • 判断子集:a<b

(五)字符串

5.1、格式化字符串

格式:

'%[-][+][0][m][.n]格式化字符'%exp

[-]:可选参数,右对齐

[+]:可选参数,左对齐

[0]:可选参数,表示右对齐,填充空白处

[m]:可选参数,表示宽度

[.n]:可选参数,表示小数点后保留的位数

格式化字符:用于指定类型

exp:要转换的项

 常用的格式化字符有:

2、字符串对象的format方法

{[index][:[[fill]align][sign][#][width][.precision][type]]}.format(args)

args:用于指定要转换的项,如果有多项,则用逗号进行分隔

index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。

align:可选参数,用于指定对齐方式

        值为“<”:表示内容左对齐;

        值为“>”:表示内容右对齐;

        值为“=”表示内容右对齐,

        将符号放在填充内容的最左侧,且只对数字类型有效;

        值为“^”表示内容居中

sign:可选参数,用于指定有无符号数

#:可选参数,对于二进制、八进制和十六进制,如果加上“#”,表示会显示0b/0o/0x前缀

width:可选参数,用于指定所占宽度。

.precision:可选参数,用于指定保留的小数位数

.precision:可选参数,用于指定保留的小数位数,格式如下:

5.2、常用方法

1、查看帮助

  • dir(""):查看字符串操作所有方法
  • help("".方法名):查看方法的具体信息

2、字符串查找

  • count()方法用于检索指定字符串在另一个字符串中出现的次数
  • find()方法:用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回−1,否则返回首次出现该子字符串时的索引
  • index()方法:用于检索是否包含指定的子字符串,字符串不存在时会抛出异常

3、分隔符

  • split()、rsplit():分割成多份,返回列表,如果不指定分隔符,默认使用空格符
  • partiton()、rpartition():分割成三分,返回列表,必须指定分隔符

4、连接

  • join:多个字符连接,并指定连接对象,格式:连接符.join(连接对象)
  • +

5、大写小写转换:

  • lower():全部大写字母转换为小写字母
  • upper():全部小写字母转换为大写
  • capitalize():首字母大写(整个句子的第一个单词)
  • title():每个单词都大写
  • swapcase():大写变小写,小写变大写

6、替换

  • replace(a,b):用内容b代替内容a
  • translate(''.maketrans(a,b)):用b代替a,这是多对对的替换 ,例如
>>> a
'123dsf'
>>> a.translate(''.maketrans('0123','零一二三'))
'一二三dsf'

7、删除

  • strip():删除两边空白字符或指定字符
  • rstrip():删除右边空白字符或指定字符
  • lstrip():删除左边空白字符或指定字符

8、求值

eval():求解公式的指

9、判断开头或者结尾字符

  • startswith()方法:于检索字符串是否以指定子字符串开头。如果是,则返回True,否则返回False
  • endswith()方法:用于检索字符串是否以指定子字符串结尾。如果是,则返回True,否则返回False

10、判断字符串类型

  • isalnum():判断是否是字母或数字
  • isalpha():判断是否是英文字母
  • isdigit():判断是否是数字
  • issupper():判断是否是大写字母
  • islower():判断是否是小写
  • isspace():判断是否是空白字符

11、对齐方式

  • center():居中对齐,格式:center(长度,填充字符)
  • ljust():左对齐
  • rjust():右对齐

5.3、编码

1、编码:encode():

str.encode([encoding="utf-8"][,errors="strict"])
  • str:表示要进行转换的字符串
  • encoding="utf-8":可选参数,用于指定进行转码时采用的字符编码,默认为UTF-8,中文是gb2312
  • errors="strict":可选参数,用于指定错误处理方式

2、解码:

bytes.decode([encoding="utf-8"][,errors="strict"])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/579212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【剑指offer】数据结构——字符串

目录 数据结构——字符串直接解【剑指offer】05. 替换空格【剑指offer】17. 打印从1到最大的n位数【剑指offer】20. 表示数值的字符串【剑指offer】37. 序列化二叉树【剑指offer】50. 第一个只出现一次的字符【剑指offer】58. 翻转单词顺序【剑指offer】58.2 左旋转字符串【剑指…

C++多态 万字详解

在经历两个多月的备赛后&#xff0c;最终5.21结果出来后自己也比较满意&#xff0c;以一个省三收尾&#xff08;算法类的&#xff09;。 期间每天偶尔学学新知识&#xff0c;然后主要做题&#xff0c;博客也落下了不少&#xff0c;现在开始继续补&#xff08;可能会些许生疏&a…

【剑指offer】数据结构——数组

目录 数据结构——数组直接解【剑指offer】03.数组中重复的数字排序法集合法原地置换 【剑指offer】04. 二维数组中的查找【剑指offer】29. 顺时针打印矩阵【剑指offer】39. 数组中出现次数超过一半的数字【剑指offer】40. 最小的k个数【剑指offer】45. 把数组排成最小的数【剑…

C++ 实现命令行画心形代码,有多个爱心代码,简单可调数据和字符,可装X,也可用于浪漫的表白,可实现跳动、保存等功能

绘制一个简易爱心 #include <stdio.h> #include <Windows.h>int main() {for (float y 1.5f; y > -1.5f; y - 0.1f){for (float x -1.5f; x < 1.5f; x 0.05f){float z x * x y * y - 1;float f z * z * z - x * x * y * y * y;putchar(f < 0.0f ?…

一文带你了解MySQL之基于规则的优化

前言&#xff1a; 大家别忘了MySQL本质上是一个软件&#xff0c;MySQL的并不能要求使用这个软件的人人都是数据库的高手&#xff0c;就像我写这篇文章的时候并不能要求各位在学之前就会了里边的知识。也就是说我们无法避免某些小伙伴写一些执行起来十分耗费性能的语句。即使是…

【youcans 的图像处理学习课】22. Haar 级联分类器

专栏地址&#xff1a;『youcans 的图像处理学习课』 文章目录&#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】22. Haar 级联分类器 3. Haar 特征及其加速计算3.1 Haar 特征3.2 Haar 特征值的计算3.3 积分图像3.4 基于积分图像加速计算 Haar 特…

MATLAB 如何以海森频率格子格纸的形式绘制频率分布曲线?

思路&#xff1a;将水文频率在海森格纸上对应的位置算出来&#xff0c;通过更改坐标轴标签制作海森频率格纸 先放参考链接&#xff1a; norminv 如何利用matlab在海森几率格纸上绘制图形 clc clear close all%% 随机生成径流系列&#xff0c;并计算对应频率 q randi(1000,…

Thymeleaf语法和流程控制,简单传值,each循环,if判断,switch.case使用

Thymeleaf怎么调用静态资源的看我之前发过的文章 这个首先在controller创建一个book的类&#xff0c;book的一些属性自己定义记得getsetyix Controller RequestMapping("/book") public class BookController {RequestMapping("/query")public String qu…

建立基于Open vSwitch的GRE隧道

建立基于Open vSwitch的GRE隧道 1. 环境的准备 图6-1 连接拓扑图 如图6-1所示为两台虚拟机连接拓扑图&#xff0c;两台虚拟机ens33网卡&#xff0c;通过虚拟交换机连接在一起&#xff0c;地址网段为30.0.0.0/24。在Docker主机ens33&#xff0c;IP地址为30.0.0.10/24&#xff…

从0到1接入钉钉消息通知

前段时间给项目接入监控告警&#xff0c;消息通知渠道选了钉钉。预算的原因内部办公刚从飞书转回钉钉&#xff0c;飞书消息通知之前就有一套了&#xff0c;测试钉钉从应用授权到消息测试花了不少时间。这里记录下从钉钉开放平台权限申请到消息接收全流程&#xff0c;给后面有同…

SAP-MM-采购申请字段解析

采购申请抬头以及行项目字段解析 1、采购申请类型&#xff1a; 对PR进行分类&#xff1b; 控制PR行项目的编号间隔&#xff1b; 控制PR编号范围&#xff0c;以及是否内/外部给号&#xff1b; 控制PR的屏幕选择格式&#xff1b; 控制PR是否允许凭证抬头审批&#xff0c;如果允…

mybatis-plus实现逻辑删除(详细!)

文章目录 什么是逻辑删除&#xff1f;为什么用到逻辑删除&#xff1f;在springboot使用Mybatis-Plus提供的逻辑删除1、在application.yml配置2、 实体类字段上加上TableLogic注解演示 什么是逻辑删除&#xff1f; 逻辑删除的本质是修改操作&#xff0c;并不是真正的删除&#…

2023/5/28周报

目录 摘要 论文阅读 1、标题和现存问题 2、使用GNN进行文本分类 3、INDUCT-GCN 4、实验准备 5、实验结果 深度学习 1、时空图的种类 2、图在环境中的应用 3、STGNN 总结 摘要 本周在论文阅读上&#xff0c;阅读了一篇InducT-GCN:归纳图卷积文本分类网络的论文。基…

AWVS使用手册

目录 AWVS基本操作 AWVS工具介绍 AWVS界面介绍 AWVS主要操作区域简介 AWVS的功能及特点的功能及特点 AWVS的菜单栏&#xff0c;工具栏简介 AWVS基本功能介绍 AWVS的蜘蛛爬虫功能 AWVS目标目标探测工具 AWVS的子域名探测工具 AWVS的的HTTP嗅探工具 AWVS的的HTTP模糊…

排序算法的时间复杂度、空间复杂度对比总结

参考&#xff1a;八大排序算法的稳定性和时间复杂度

【linux】守护进程(精灵进程)

文章目录 一、TCP服务器日志二、守护进程预备知识2.1 守护进程概念2.2 前台任务和后台任务2.3 进程组与组长ID2.4 前台进程后台进程的切换2.5 自成会话 三、实现守护进程3.1 自建会话setsid3.2 守护进程的条件3.3 代码实现 一、TCP服务器日志 上一章我们写了一个TCP网络服务器…

SAP-MM-计算方案字段解析

01、 “步骤”&#xff1a;标识此条件类型在计算方案中的顺序编号&#xff0c;此编号会影响到后续业务中条件类型的排序&#xff0c;不同条件类型之间的编号最好间隔大一些&#xff0c;这样设置便于以后对计算方案进行扩展&#xff1b; 02、 “计数器”&#xff1…

(哈希表 ) 349. 两个数组的交集 ——【Leetcode每日一题】

❓349. 两个数组的交集 难度&#xff1a;简单 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[…

Hbase学习笔记

1 HBase介绍 (1) HBase是什么 HBase是一个开源的非关系型分布式、实时数据库(Nosql)&#xff0c;运行于HDFS文件系统之上&#xff0c;因此key容错地存储海量稀疏的数据。 海量稀疏就是说不能保证每一个key它的列都有value。 关系型数据库&#xff1a;mysql、oracle 非关系…

Midjourney AI绘画咒语与生成的作品(实例)

据说Midjourney出来后&#xff0c;有一大批设计师抱着电脑&#xff0c;哭晕了~~ 有兴趣的朋友&#xff0c;可以看一下我前两天发的&#xff0c;地址如下&#xff1a; Midjourney AI绘画中文教程详解&#xff08;完整版&#xff09;模型、命令、参数与各种高级用法https://blog…