【学习笔记】python

embedded/2024/10/15 18:11:04/

Python

  • 1、 基础
    •       1.1、基本数据类型
    •       1.2、运算符
    •       1.3、字符串基础
    •       1.4、字符串扩展
    •       1.5、函数
    •       1.6、列表
    •       1.7、元组
    •       1.8、字符串
    •       1.9、集合
    •       1.10、字典
    •       1.11、数据容器小结
    •       1.12、bytes 类型
  • 2、 入门
    •       2.1、文件操作
    •       2.2、异常处理
    •       2.3、模块和包
    •       2.4、面向对象
    •       2.5、类型注释
  • 3、中级
    •       3.1、MySQL
    •       3.2、闭包
    •       3.3、上下文管理器
    •       3.4、浅拷贝和深拷贝
    •       3.5、eval 函数
    •       3.6、多线程
    •       3.7、Socket
    •       3.8、正则表达式

1、 基础

      1.1、基本数据类型

类型描述
Number整形、浮点数、复数、布尔值
String字符串
List有序的可变列表
Tuple有序的不可变列表
Set无序的不重复集合
Dictionary无序的键值对

TIP
1、查看变量 a 的类型:type(a) —— type不会认为子类是一种父类类型
2、判断变量 a 的类型:isinstance(a,类型) —— isinstance会认为子类是一种父类类型
3、判断 a 是否是 b 的类型:issubclass(a,b)
4、在内存中清除变量所占控件:del 变量1,变量2

类型转换描述
int(xxx)转换为整数
float(xxx)转换为浮点数
str(xxx)转换为字符串
frozenset(xxx)转化为不可变集合
chr(xxx)将一个整数转化为一个字符
ord(xxx)将一个字符转化为一个整数
hex(xxx)将一个整数转化为一个十六进制,类型是字符串
oct(xxx)将一个整数转化为一个八进制,类型是字符串

      1.2、运算符

运算符描述
+、-、*、/加减乘除
+=、-=、*=、/=加减乘除赋值运算符
//取整
//=取整赋值运算符
%取余
%=取余赋值运算符
**幂运算
**=幂运算赋值运算符
:=海象运算符,在表达式内部进行赋值
python"># 不使用海象运算符
values = [1, 2, 3, 4, 5]
i = 0
value = values[i]
while value < 4:print(value)i += 1if i < len(values):value = values[i]# 使用海象运算符
values = [1, 2, 3, 4, 5]
i = 0
while (value := values[i]) < 4:print(value)i += 1

      1.3、字符串基础

        ① 引号输出

python">name = 'my name is "niki"'
print(name) # my name is "niki"name = "my name is 'niki'"
print(name) # my name is 'niki'name = 'my name is \'niki\''
print(name) # my name is 'niki'

        ② 多行语句

python">str1 = 'my' + \'name is' + \'niki' 
print(str1)

        ③ 让 \ 不发生转义

python">str1 = r'this is a line with \n'
print(str1)

        ④ 运算

python">str1 = 'a'
str2 = 'b'
print(str1+str2) # 连接
print(str1*3) # 打印三次

其他数据容器也可以进行同样的 +、* 运算

        ⑤ 字符串的常用操作

大小写转换描述
str.upper()转大写
str.lower()转小写
str.capitalize()将字符串的第一个字符转为大写,其余的转为小写
str.title()将字符串每个单词的首字母转为大写
str.swapcase()将字符串中大小写互换
查找与替换描述
str.find(str)返回子串的索引,找不到返回 -1
str.index(str)类似于 find ,但是找不到会抛出异常
str.replace(old,new)将子串进行替换
str.count(sub)计算子串出现的次数
拆分与拼接描述
str.split(sep)将字符串按照 sep 进行分割,返回一个列表
str.splitlines()按行拆分字符串,返回一个列表
str.join(iterable)使用字符串作为分隔符,将 iterable 中的元素连接成一个字符串
python">s = "hello world"
print(s.split(" "))        # ['hello', 'world']
print("-".join(["hello", "world"]))  # "hello-world"
去除空白字符描述
str.strip()去除字符串两端的空白字符
str.lstrip()去除字符串左边的空白字符
str.rstrip()去除字符串右边的空白字符
判断字符串的内容描述
str.isalpha()检查字符串是否只包含字符且非空
str.isdigit()检查字符串是否只包含数字且非空
str.isalnum()检查字符串是否只包含字母和数字且非空
str.isspace()检查字符串是否只包含空白字符
str.startswwith(prefix)检查字符串是否以指定前缀开头
str.endswitch(suffix)检查字符串是否以指定前缀结尾
其他描述
str.center(width)将字符串居中,两边用空格填充
str.zfill(width)前填充0
str.partition(sep)将字符串按 sep 进行分割,分割为‘前’、‘中’、‘后’,seq 处于‘中’

      1.4、字符串扩展

        ① 格式化法1

格式符号描述
%s字符串占位符
%d整数占位符
%5d表示整数的宽度是5,不足5位时用空格补
%f浮点数占位符
%.2f表示精确到小数点后两位
python">name = 'niki'
hobby = 'football'
str1 = "my name is %s" % name
print(str1) # my name is niki
str2 = "my name is %s, my hobby is %s" % (name,hobby)
print(str2) # my name is niki, my hobby is football

        ② 格式化法2

python">name = 'niki'
age = 18
str1 = f"my namae is {name}, my age is {age}"
print(str1) # my name i s niki, my age is 18

      1.5、函数

        ① 在函数内部声明变量为全局变量:global

python">num = 100
def test():global numnum = 200
test()
print(num) # 200

        ② 多返回值

python">def test():return 'niki',18,True
name,age,isMale = test()
print(x,y,z) # niki 18 True

        ③ 传入参数时,位置参数需要在关键字参数之前,位置参数有先后顺序,关键字参数没有先后顺序的要求

python">def test(name,age,gender):print(f"my name is {name}, my age is {age}, I'm a {gender}")
test('Tom',gender='boy',age=18)

        ④ *args 参数,它会以元组的形式接收参数

python">def test(*args):print(args)
test('niki') # ('niki',)
test('niki',20) # ('niki',20,)

        ⑤ **kwargs 参数 ,它会以字典的额方式接收参数

python">def test(**kwargs):print(kwargs)
test(name='niki',age=18) # {'name':'niki','age':18}

        ⑥ 函数作为参数

python">def add(x,y):return x+y
def compute(add):result = add(6,3)print(result)
compute(add)

      1.6、列表

        ① 定义空列表的方法

① l1 = []
② l2 = list()

        ② 列表的下标

正数:0 到 len-1
反数:-1 到 -len

        ③ 列表常用的操作

常用操作描述
l.append(元素)追加元素
l.extend(容器)将指定容器中的元素依次取出并追加到列表
l.insert(下标,元素)在指定下标插入指定元素
del l[下标]删除列表指定下标的元素
l.pop(下标)删除列表指定下标的元素
l.remove(元素)从前向后删除第一个匹配项
l.clear()清空列表
l.count(元素)统计指定元素在列表中出现的次数
l.index(元素)查找指定元素在列表中的下标
len(列表)统计容器内有多少的元素

      1.7、元组

        ① 定义空元组的方法

① t1 = ()
② t2 = tuple()
③ 当定义一个只有一个元素的元组时,要加上逗号,例如 t = (‘niki’,) 否则 t =(123) 会被视为整型、t = (‘niki’) 会被视为字符串 …

        ② 元组常用的操作

常用操作描述
t.index(元素)查找数据的下标
t.count(元素)统计数据的个数
len(元组)统计元组中元素的个数

        ③ 注意点:元组中的元素不能改变

python">t = (1,True,[2,3,4])
t[2][0] = 5 # 并不是更改掉整个t[2],因此可以修改
print(t) # (1,True,[5,3,4])

      1.8、字符串

        ① 字符串常用的操作

常用操作描述
str[下标]查找指定下标的字符
str.index(子串)查找指定子串第一次出现的位置
str.replace(子串1,子串2)将所有子串1改为子串2
str.split(子串)根据子串进行分割,返回一个分割后的列表
str.strip()
str.strip(子串)
去除首尾的空格、换行符
去除首位特定的子串
str.count(子串)统计字符串内子串出现的次数
len(字符串)获取字符串的长度

      1.9、集合

        ① 定义空集合

s = set()

        ② 集合的常用操作

常用操作描述
s.add(元素)添加元素
s.remove(元素)移除元素
s.pop()从集合中随机取出一个元素
s.clear()清空集合
s1.difference(s2)返回一个新集合,其是两个集合的差集
s1.difference_update(s2)将集合1中存在于集合2的元素除去
s1.union(s2)返回一个辛几何,其是两个集合的并集
len(集合)集合的长度

      1.10、字典

        ① 定义空集合

d = {}
d = dict()
TIP:字典的键需要是不可变的类型,例如字符串

        ② 字典的常用操作

常用操作描述
d[key]获取指定 key 对应的 value
d[key] = value添加或更新键值对
d.pop(key)删掉 key 对应的键值对,并返回 value
d.clear()清空字典
字典.keys()获取字典所有的 key
key(字典)计算字典内的元素数量

      1.11、数据容器小结

        ① 对比

数据容器元素类型

http://www.ppmy.cn/embedded/128001.html

相关文章

Electron + ts + vue3 + vite

正常搭建脚手架&#xff1a;npm create vitelatest 项目名称 安装electron的相关依赖&#xff1a;注&#xff1a;安装时终端url要项目名那一层 安装npm install electron -D安装打包工具&#xff1a;npm install electron-builder -D开发工具&#xff1a;npm install electron-…

集师知识付费小程序:打造培训机构在线教育的金字招牌 集师知识付费系统 集师知识付费小程序 集师知识服务系统 集师线上培训系统 集师线上卖课小程序

在数字化浪潮的推动下&#xff0c;在线教育已成为教育领域的热门话题。而在众多在线教育平台中&#xff0c;集师知识付费小程序凭借其独特的定位和创新的模式&#xff0c;成功为培训机构打造了一张闪亮的在线教育金字招牌。 集师知识付费小程序&#xff0c;是一个集课程展示、…

将Windows中的Anaconda环境复制到Linux中

Linux服务器有网络情况下安装 1.导出Windows环境的Anaconda包列表 导出环境配置到YAML文件中 conda env export > env.yml2.将YAML文件上传到Linux中 3. 在Linux中创建相同的Anaconda环境 conda env create -f env.ymlLinux服务器无网络情况下安装 使用conda-pack打包…

Shiro 认证(Authentication)

Shiro 简介 Shiro是Apache旗下的一个开源Java安全&#xff08;权限&#xff09;框架&#xff0c;它将软件系统的安全认证相关的功能抽取出来&#xff0c;实现用户身份认证、权限授权、加密、会话管理等功能&#xff0c;组成了一个通用的安全认证框架。以下是关于Shiro的详细介…

JS 怎么监听复制事件 并获取复制内容 并修改复制文本内容

需求背景&#xff1a; 需要禁用部分文本内容的复制事件&#xff0c;并且在复制事件发生时&#xff0c;将复制的文本内容通过接口传给后端。 上代码&#xff1a; // 使用Dom获取需要操作禁用时间的元素let element: any document.getElementById(test1);// 为该元素添加 copy 事…

Spring Boot 进阶-详解Spring Boot中使用Swagger3.0

在上篇文章中我们介绍了Spring Boot 整合Swagger3.0的一些基础用法,这篇文章中我们来深入学习一下Swagger3.0 还有其他高级用法。 在日常的开发中,为了减少工作量,我们会遇到一种情况,就是将前端的接口与后端的接口编写到同一个代码中,这样也提高了代码的复用率,减少了重…

nginx反向代理下的长连接

一、nginx使用场景 大型应用架构中&#xff0c;一般会使用nginx反向代理&#xff0c;分为三层&#xff1a; 1.调用层&#xff0c;浏览器或APP&#xff1b; 2.中间层&#xff0c;反向代理nginx&#xff1b; 3.服务层&#xff0c;server一般是apche、tomcat 请求调用过程&…

MySQL 【日期】函数大全(三)

DATEOFYEAREXTRACTFROM_DAYSFROM_UNIXTIMEHOURLAST_DAYLOCALTIMELOCALTIMESTAMP 1、DATEOFYEAR DATEOFYEAR(expr) &#xff1a;返回一个从 1 到 366 代表给定日期是一年中的第几天的数字。 如果指定的表达式不是一个合法的日期或者日期时间&#xff0c;DAYOFYEAR() 函数将返回…