python学习-基础知识总结

(一)基础语法

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"])

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

笔试强训 Day6

选择题 1.十进制变量i的值为100&#xff0c;那么八进制的变量i的值为&#xff08;&#xff09; A 146 B 148C 144 D 142 本题很简单&#xff1a;100除8&#xff0c;取余数&#xff0c;直到商为零&#xff0c;最后反向的串起余数即可 2.执行下面语句后的输出为&#xff08;&…

【Python从入门到进阶】21、爬虫相关概念介绍

接上篇《20、HTML页面结构的介绍》 上一篇我们正式进入了Python爬虫的实战教程&#xff0c;主要讲解了要爬取的HTML页面的结构。本篇我们来介绍爬虫的相关概念。 一、什么是互联网爬虫 如果我们把互联网比作一张大的蜘蛛网&#xff0c;那一台计算机上的数据便是蜘蛛网上的一个…

unity制作一款塔防游戏

文章目录 介绍寻路系统怪物生成器制作3种初级炮台、3种升级炮台设置炮台属性选择炮台&#xff0c;添加监听事件炮弹追踪攻击敌人拖动鼠标实现相机视角转换鼠标光标放在cube上变色文字动画 介绍 关键技术&#xff1a; 寻路系统 生成怪物算法 粒子系统 line renderer制作追踪射线…

通过Python的pdfplumber库提取pdf中表格数据

文章目录 前言一、pdfplumber库是什么&#xff1f;二、安装pdfplumber库三、查看pdfplumber库版本四、提取pdf中表格数据1.引入库2.定义pdf文件路径3.打开pdf文件4.获取pdf文件中的页数5.遍历每一页6.获取当前页内容7.提取表格数据8.输出表格数据9.效果 总结 前言 大家好&#…

Scala学习(九)---List集合

文章目录 1.List1.1 不可变List集合1.2 可变集合ListBuffer 1.List List集合默认为不可变集合&#xff0c;List集合在实例化的时候&#xff0c;无法通过new关键字进行实例化&#xff0c;只能通过伴生apply方法来对其进行实例化 1.1 不可变List集合 创建一个不可变list集合 …

HUD(抬头显示)的方案介绍

目录 一、基于DLP3030-Q1的HUD电路设计 二、DLP3030-Q1的介绍 三、DLP3030-Q1工作原理 四、DLPC120-Q1DMD 显示控制器 五、TMS320F2802332 位 MCU 六、 HUD显示实例 HUD主板实例 七、HUD的软件环境 一、基于DLP3030-Q1的HUD电路设计 本设计采用了DLP3030-Q1 芯片组&…

设计模式 -第1部分 避免浪费- 第1章 Flyweight 模式 - 共享对象避免浪费

第1部分 避免浪费 注&#xff1a;其内容主要来自于【日】-结城浩 著《图解设计模式》20章节 极力推荐大家阅读原著 第1章 Flyweight 模式 - 共享对象避免浪费 1.1 Flyweight 模式 Flyweight 的意思"轻量级"&#xff0c;其在英文中的原意指比赛中选手体重最轻等级的一…

【C语言】实现猜数字游戏——随机数

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 该篇将对 选择与循环语句 进行运用&#xff0c;实现猜数字游戏。 需求&#xff1a;游戏后可以选择再次进行游戏&#xff0c;也可以选择…

「实在RPA·烟草数字员工」助力烟草行业数字化转型加速度

烟草行业作为烟草产业链上重要一环&#xff0c;外部连接烟草工业企业、零售客户、消费者&#xff0c;内部包含营销、专卖、烟叶、物流等诸多业务&#xff0c;信息系统众多&#xff0c;企业数据量庞大。因此&#xff0c;清楚地了解自身存在的痛点&#xff0c;找到适合自身业务需…

如何在华为OD机试中获得满分?Java实现【寻找峰值】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

gitbook在centos上安装

1&#xff09;官网下载Node.js的Linux64位的二进制包:Download | Node.js 或者在线下载&#xff1a; wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz ​​2)到指定目录​解压 cd /opt/gitbook tar -xJf node-v12.16.1-linux-x64.tar.xz mv node-…

STM32采集传感器数据通过排序取稳定值

一、前言 在物联网、单片机开发中,经常需要采集各种传感器的数据。比如:温度、湿度、MQ2、MQ3、MQ4等等传感器数据。这些数据采集过程中可能有波动,偶尔不稳定,为了得到稳定的值,我们可以对数据多次采集,进行排序,去掉最大和最小的值,然后取平均值返回。 二、排序算法…

运维工程师面试总结(含答案)

运维工程师面试总结 原文链接&#xff1a;https://www.cuiliangblog.cn/detail/article/2 一、linux 1. linux系统启动流程 第一步&#xff1a;开机自检&#xff0c;加载BIOS第二步&#xff1a;读取&#xff2d;&#xff22;&#xff32;第三步&#xff1a;Boot Loader grub…

华为OD机试之真正的密码(Java源码)

真正的密码 题目描述 一行中输入一个字符串数组&#xff0c;如果其中一个字符串的所有以索引0开头的子串在数组中都有&#xff0c;那么这个字符串就是潜在密码在所有潜在密码中最长的是真正的密码&#xff0c;如果有多个长度相同的真正的密码&#xff0c;那么取字典序最大的为…

【ClickHouse】

文章目录 一、表引擎1、表引擎的作用2、TinyLog3、Memory4、MergeTree二、数据库引擎1、作用--跨种类交换数据2、示例 三、MergeTree引擎1、简单使用2、分区partition by3、主键primary key4、order by&#xff08;必填&#xff09; 一、表引擎 1、表引擎的作用 CK表引擎决定…

智能运维应用之道,告别企业数字化转型危机

面临的问题及挑战 数据中心发展历程 2000 年中国数据中心始建&#xff0c;至今已经历以下 3 大阶段。早期&#xff1a;离散型数据中心 IT 因以项目建设为导向&#xff0c;故缺乏规划且无专门运维管理体系&#xff0c;此外&#xff0c;开发建设完的项目均是独立运维维护&#…

【喜闻乐见,包教包会】二分图最大匹配:匈牙利算法(洛谷P3386)

&#x1f3ad;不要管上面那玩意。。。 引入 现在&#xff0c;你&#xff0c;是一位酒店的经理。 西装笔挺&#xff0c;清瘦智慧。 金丝眼镜&#xff0c;黑色钢笔。 大理石的地板&#xff0c;黑晶石的办公桌&#xff0c;晶莹的落地玻璃。 而现在&#xff0c;有几个雍容华贵的…

智慧城市同城V4小程序V2.24独立开源版 + 全插件+VUE小程序开源前端+最新用户授权接口

智慧城市同城V4小程序V2.22开源独立版本月最新版&#xff0c;与上一版相比修复了一些小细节&#xff0c;功能本身并无大的变化。新版系统包含全插件、包括很多稀缺收费的插件都在里面如括招聘、 家政等&#xff0c;外加小程序的VUE开源前端&#xff0c;整个系统全开源&#xff…

机器学习 | 降维:PCA主成分分析

本文整理自 长路漫漫2021的原创博客&#xff1a;sklearn基础篇&#xff08;九&#xff09;-- 主成分分析&#xff08;PCA&#xff09;李春春_的原创博客&#xff1a;主成分分析&#xff08;PCA&#xff09;原理详解bilibili视频&#xff1a;用最直观的方式告诉你&#xff1a;什…

Python中模块的使用方法4

1 模块、包和库的区别 Python中&#xff0c;模块的英文是“module”&#xff0c;是一个以py为后缀名的文件&#xff1b;包的英文是“package”&#xff0c;是一个包含了多个模块的目录&#xff1b;库的英文是“library”&#xff0c;包含了具有相关功能的包和模块。 2 模块的…