当前位置: 首页 > news >正文

Python语法结构(三)(Python Syntax Structure III)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
全面总结 IT核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云计算、人工智能、运维开发、算法结构、物联网、JAVA 、Python语言等。
不同类型针对性训练,提升编程思维,剑指大厂非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。

Python是一种高级的、动态类型的编程语言,由‌Guido van Rossum于1989年首次公开发布,并于1991年正式发布。Python支持多种编程范型,包括结构化、过程式、反射式、‌面向对象和函数式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用。Python的设计注重代码的可读性和简洁性,旨在帮助程序员为小型的和大型的项目编写逻辑清晰的代码。
Python的特点

    ‌易于学习‌:Python有相对较少的关键字,结构简单,语法清晰。
    ‌易于阅读‌:Python代码定义的更清晰。
    ‌易于维护‌:Python的源代码容易维护。
    ‌广泛的标准库‌:Python拥有丰富的标准库,跨平台兼容性好。
    ‌互动模式‌:支持互动模式,可以从终端输入执行代码并获得结果。
    ‌可移植性‌:基于其开放源代码的特性,Python已经被移植到许多平台。
    ‌数据库支持‌:提供所有主要的商业数据库的接口。

Python的集成开发环境

    ‌‌VS Code‌:一款由‌微软开发的免费开源代码编辑器,支持多种编程语言,包括Python。VS Code以其简洁的界面、强大的功能和优秀的性能而受到开发者的青睐。
    ‌‌PyCharm‌:一款由JetBrains开发的Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高效率的工具,支持Django框架下的专业Web开发。PyCharm环境管理便捷,对新手友好,且在大项目文件开发中具有较强优势

python语言特点

  • 开源、免费自由的软件
  • 良好的平台型
  • 强大的扩展功能

应用领域

  • Google搜索引擎核心代码
  • 百度无人驾驶汽车
  • 网易游戏服务器
  • 豆瓣网主题架构智能机器人
  • ChatGPT
  • 自动化测试、自动化运维、数据分析
  • Python大数据
  • Python程序开发

python的数据类型:

整数类型(int)、浮点数(小数)类型(float)、布尔类型(bool)、字符串(str)

列表(list)、元组(tuple)、集合(set)、字典(dict)、

变量

变量是可以变化的量,实际上是编程人员申请的内存空间,给这段空间起的名字叫做变量名

注意:注意变量没有类型,关联的对象才有类型

变量名 = 变量值
变量名1 = 变量名2 = 变量值
变量名1,变量名2 = 变量值1,变量值2#=表示赋值符号,将等于号右侧的赋值给等号左侧变量
age = 20
print("age")
x = 10
y = 20
result = x + y
print(result)
#定义变量 申请内存,为内存空间命名
person_name = '张三'
class_name = 'test_2023'
number01 = number02 = number03 = 100
number01,number = 100,200
#修改变量:python中允许对同一个变量,先后存入不同类型的数据,之前的数据会被覆盖
person_name = '李四'
#引用/使用/调用  变量:可以向申请的内存中存入数据、修改数据、取出数据进行运算、查看数据、收回
print(person_name)
#删除变量: del用于删除变量,同时解除与对象的关联
#del 变量名称1,变量名称2
del person_name,class_name

链式赋值和多个赋值操作同时进行

#链式赋值
n4 = n5 =n6 = 300
多个赋值操作同时进行:
n7,n8,n9 = 10,-9,0

input()与print()函数

input()函数,主要用于获取键盘输入的数据,返回的值是字符串类型
print()函数,主要用于显示(输出)结果并换行
#变量 = input函数("提示信息")
#在终端中或控制台中获取用户输入的信息,将输入的信息赋值给变量
# = 表示赋值符号,将右边的数据给到左边#print(数据)
#在终端中显示信息

例如:

#使用print()函数在终端中输出个人介绍(姓名、年龄、爱好)
print("lalala")  #打印字符串
print(28)        #打印整数
print("滑雪")     #打印字符串#在一行上输出个人介绍
print("熊三",20,"跳舞")
#使用input()函数通过键盘输入个人介绍,并通过print()打印个人介绍
#获取姓名
name = input("请输入姓名:")
#获取年龄
age = input("请输入年龄:")
#获取爱好
bobby = input("请输入爱好:")print(name)
print(age)
print(hobby)
"""在终端中提示用户输入武器的名称再提示用户输入武器的超能超能力最后显示:xx的超能力
"""
weapa = input("请输入武器的名称")
atk = input("请再输入武器的超能力")
print(weapa+"的超能力是"+atk)#加号表示字符串拼接
print(f'{weapa}的超能力是{atk}')#美化格式输出
print(weapon,'的超能力是',atk)#逗号会有空格间隔
"""请用户通过键盘输入用户的账号和密码最后输出:输入的用户名是xxxx输入的密码是xxxx
"""
id = input("请输入账号")
password = input("请输入密码")
print("输入的用户名是:"+id,"\n"+"输入的密码是:"+password)
print(f"输入的用户名是{id}")
print(f"输入的用户名是{password}")
print("输入的用户名是:"+id)

查看数据类型

type()函数

name = 'test'
print(type(name))
age = 18
print(type(int))
sal = 100.15
print(type(sal))

占位None

  • 只希望有一个变量,但指向的对象还不能确定
#占位
skill = None
print(skill)
#绑定数据
skill = '乾坤大挪移'
print(skill)
#解除与对象的绑定关系
name = None
print(name)

算术运算符和表达式

(1)算数运算符

+、-、*、/、//(整除)、%(求余)、**(成方)

乘法运算符

案例:计算半径r=10的圆形的周长和面积

r = 10
PI = 3.14
cir = 2* PI*r
area = PI*r*r
print(cir)
print(area)
除法运算符

案例:小花有100元零花钱,如果每天花4元钱,可以花几天?

pin_money = 100
per = 4
day = pin_money / per
print(day)
整除运算符

案例:学校新进了250套新桌椅,一个班级的学生为30人,可以分给几个班级?

x = 250
p = 30
z = 250 // 30
print(z)
  • 求余运算符%

案例:学校新进了250套新桌椅,一个班级的学生为30人,可以分给几个班级?还剩余多少套?

x = 250
p = 30
z = 250 % 30
print(z)
乘方运算符**

案例:计算半径r=25的圆形的面积

r = 25
PI = 3.14
area = PI * r ** 2
print(area)
  • 特殊情况:复合赋值运算符

+=、-=、*=、/=、//=、%=**=

Python_数据_02

Python_元组_03

关系运算符和表达式

  • 大于、小于、大于等于、小于等于、==、!=
  • 说明:通过关系运算符比较得到的结果,是True(真)或(false)假

逻辑运算符和表达式

  • and(与)、or(或)、not(非)
  • 逻辑运算符经常和关系运算符联系在一起使用,经常把多个关系运算符连接在一起例如:x>10 and y<=100
"""在终端中录入年份,判断年份是否为闰年条件1:年份能被4整除,但是不能被100整除条件2:年份能被400整除输入:2019输出:Flase输入:2000输出:True
"""
nian = int(input("请输入年份"))
result = nian % 4 == 0 and nian % 100 != 0 or nian % 400 == 0
print(f"判断的年份是:{nian}")
print(f"判断闰年的结果是:{result}")

字符串类型 -重

字符串运算

(1)加法运算

说明:字符串加法运算,就是字符串拼接

(2)乘法运算

说明:字符串乘法运算,就是字符串复制。下标从0开始

  • 统计总字数len()
print(len("sean"))
  • 统计一个字符串在另外一个字符串中出现的次数,如果不存在返回0
  • count(str)
str05 = "你好Python,Python你好,世界真小"
str06 = "Python"
x = str05.count(str06)
print(x)
  • 大小写转换
  • upper()英文字母全变成大写
  • lower()英文字母全部变为小写
str09 = "ABCDefgHJK"
s1 = str09.upper()
print(s1)
s2 = str09.lower()
print(s2)
  • spilt(分隔符,分割数量)
fruit = "西瓜,苹果,香蕉,草莓"
str07 = fruit.split(",")
print(str07)
str08 = fruit.split(",",2)
print(str08)
  • 字符串替换
  • replace(老字符串,新字符串、个数)
  • 删除字符串两端、右端、左端的空白字符
  • strip()
  • rstrip()
  • lstrip()
str10 = " i love testing, 我爱编程, 向Python走起 "
print(str10)
s3 = str10.split()
print(str3)
判断字符串是否全部为字母、数字、空格
str12 = "123 i love testing 456"
s1 = str12.isalpha()
s2 = str12.isdigit()
s3 = str12.isdigit()
print(s1, s2, s3)
  • startwith(str, beg , end)
startwith 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True否则返回 False
str16 = 'abcdefghjk'
res1 = str16.startswith('abc')
res2 = str16.startswith('abc', 1, 5)
print(res1, res2)
  • endwith(str, beg , end)
endwith 方法用于检查字符串是否是以指定子字符串结尾,如果是则返回True否则返回 False
str17 = 'abcdefghjk'
res3 = str17.endswith('jk')
res4 = str17.endswith('jk', 1, 5)
print(res3, res4)
  • eval(表达式)
eval 用来执行一个字符串表达式,并返回表达式的值,可以应用于类型转换
a = 3
b = 'a*4'
c = eval(b)
print(c)

表达式

使用运算符将两个或多个具体数据或变量连接起来的式子
a * 3
a + 4
a*2 + b/3

例如:

# 通过input()键盘输入给对方留言,获取留言总字数
txt = input("请给对方留言")
print("你留言的总字数为:"+str(len(txt))+"个字");
-- 方法二
txt = input("请留言")
print(len(txt))
# 设计一个加法计算器,通过键盘输入数据,并输出结果sum1 = float(input("第一个数是:"))
sum2 = float(input("第二个数是:"))
print("结果为:"+str(sum1+sum2))
"""
在终端中录入一个半径,输出圆形的面积(3.14 x 半径的平方)  round
输出的格式:圆形的面积是:xxx
"""
round = int(input("请输入圆的半径:"))
#area = 3.14 * r **2
area = int(input(3.14**round))
print("圆形的面积是:"+str(area))
"""准备一个数,判断这个数是否为整数
"""
#获取数据
number = int(input("请输入一个数"))
#数据处理
result = number % 2 == 0
#输出结果
print(f"输入的数是:{number},它是否是偶数:{result}")

短路运算

  • 一旦结果确定,后面的表达式将不再执行
#Flase and ?#True or ?
  • 逻辑运算时尽量将复杂的判断放在后面
and:当第一个式子为flase时候,将不会判断第二个式子
or:当地一个操作为true时候,将不会再判断第二个操作数

三目运算符

  • 也成为三元运算符 或 条件运算符
#如果10大于等于10,则打印1,否则打印-1
print(1) if 10 >= 10 else print(-1)
#如果今天天气好,输出天气真好,否则输出天气真不好
#定义变量获取天气情况,晴朗、阴天、雨天、刮风
weather = input("请输入天气情况")
print("天气真好") if weather == "晴朗" else print("is bad")

字符串运算

加法运算

  • +:用于字符串拼接两个容器
  • +=:用于原容器与右侧容器拼接,并重新绑定变量
s1 = '你好'
s2 = 'sxx'
s3 = s1 +s2
print(s3)
print(type(s3))
s3 += 'a' #s3 = s3 +'a'
print(s3)

乘法运算

  • *:表示重复生成容器元素
  • *=:用原容器生成重复的元素,并重新绑定变量
s4 = 'python'
s5 = s4*3
print(s5)

比较运算符

  • 依次比较两个容器中的元素,一旦不同则返回比较结果
print(s4 != s5)

成员运算

  • in
  • not in
print("大神" in "我是大神")
print("大神" not in "我是大神")
  • 索引(正向索引,反向索引)
  • 正向索引从0开始,第二个索引为1,最后一个为len(容器名称)-1
  • 反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,第一个-len(容器)
s1 = "我是齐天大圣孙悟空"
#     0 1 2 3 4 5 6 7
print(s1[0])#正向索引从0开始
print(s1[3])print(s1[-1]) #反向索引从右开始
print(s1[len(s1)-3])

切片

s2 = '我是齐天大圣孙悟空'
print(s2[:])
print(s2[:3])   #不包含结束索引所对应的内容
print(s2[3:])   #开始值到默认结尾
print(s2[::-1]) #倒叙打印
print(s2[::2])  #间隔2两个,走两步
#创建字符串:人生苦短,我用python
s2 = "人生苦短,我用python"
#打印第一个字符,最后一个字符
print(s2[0::12])
#打印前两个字符,后6个字符
print(s2[:2],s2[-6:])
#打印中间一个字符
print(s1[len(s1)//2])
#倒叙打印所有字符
print(s2[::-1])

定义(创建/声明)列表

语法:

  • 列表名 = [数据1,数据2,数据n.........]
  • 列表名 = list(可迭代对象)
  • 列表名 = [[数据1,数据2,数据n],[数据1,数据2,数据n],......[数据1,数据2,数据n]]
  • Python_字符串_04

解(拆)包

#解包是星星或者变量名
print(*list_stu)     #解包
#下面这种方法可以直接根据自己写的拆解开一一对应,随便输入一个就好
也可以两个一起,中间加上逗号就好

Python_字符串_05

list_cases = [['case1', 'root', '12345', True],['case3', 'root', '12345', True],['case2', 'root', '12345', False],['case4', 'root', '12345', True, '密码为空']]
case01,case02,case03,case04 = list_cases
print(case02)
print(case02[3])
print(case01,case04)
print(*case03)

列表运算

  • 加法运算(拼接)
list_name = ['skd','wde3ws','细节哦']
list_car = ['奔驰','宝马','奥迪']
list_result = list_car + list_name   #加法拼接
print('list_result',list_result)
  • 乘法运算(复制)
list_name = ['skd','wde3ws','细节哦']
list_car = ['奔驰','宝马','奥迪']
list_result = list_name * 3
print('list_result',list_result)

修改列表中某个元素

list01 = [1,2,3,4]
#更新或修改元素
list01[1] = 1
print(list01)#删除某个元素
del list[1]
print(list01)#删除列表元素 ---下标
print('删除前信息',list_car)
del list_car[1]
print('删除后信息',list_car)#删除列表对象 ---列表名
print('删除前信息',list_car)
del list_car
print('删除后信息',list_car)#函数指定索引号进行删除
list01.pop(2) 
print(list01)

extend 表示将另一个列表中的所有元素追加到当前列表的尾部

list1 = ['aaa', 'bbb', 'ccc']
list2 = ['hhh']
list1.extend(list2)
print(list1)
  • append()向列表尾部追加一个元素
list_num = [100,200,300]
print('追加数据前:',list_num)
list_num.append(230)
print('追加数据后',list_num)
  • insert()向列表任意位置添加元素
list_num = [100,200,300]
print(list_num)
list_num.insert(3,3039)
print(list_num)
  • count 表示获取列表中指定元素出现的次数
list1 = ['aaa', 'bbb', 'ccc', 'aaa', 123, 345, 'sd']
count = list1.count('aaa')
print(count)
  • pop()表示删除指定位置上的元素
list1 = ['aaa','bbb','ccc',123,456,'sd']
list1.pop(3)
print(list1)
#运行出来为['aaa', 'bbb', 'ccc', 345, 'sd']
  • clear()表示清空列表
list1 = ['aaa','bbb','ccc',123,456,'sd']
list1.clear()
print(list1)
#运行出来为空
  • sort表示按照指定规则对所有元素进行排序,默认比较元素大小
list1 = [10, 12, 3, 4, 5, 6, 97, 8, 9]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
#运行结果reverse
#[3, 4, 5, 6, 8, 9, 10, 12, 97]
#[97, 12, 10, 9, 8, 6, 5, 4, 3]
"""
创建列表,存储水星,金星,地球,木星,土星,天王星
向列表中追加海王星
在地球后插入火星
打印距离太阳最远的行星(最后一个行星)
打印地球之前的所有行星(前两个行星)
删除金星
qiu.remove("金星")
删除地球后面的所有行星
倒叙打印所有行星
for i in range(len(qiu)-1,-1,-1):
print(qiu[i])
"""
qiu = ['水星','金星','地球','木星','土星','天王星']
qiu.append('海王星')
print(qiu)
qiu.insert(3,'火星')
print(qiu)
print(qiu[-1])
print(qiu[:2])
qiu.pop(1)
print(qiu)
del qiu[2:]
print(qiu)
print(qiu[::-1])

元组

  • 定义元组,语法:
元组名 = (数据1,数据2,数据3,数据4,…)
说明:以圆括号()括起来的数据集合,不同数据间以“,”分隔,元组中可以包含任何数据类型
number = (1, 2, 3, 4, 5)
work = ('a001', "张三", 40, "北京")
print(number)
print(work)
#结果:(1, 2, 3, 4, 5)
('a001', '张三', 40, '北京')
  • 特殊情况元组
#创建空元组
name = ()
age = tuple()
#创建无名元组
tuple()
#圆括号可以省略
num = 2,3,4
  • 说明:元组不支持项删除
#删除元组对象
n1 = 2, 3, 4
del n1
print(n1)
  • 元组运算
#加法运算
n1 = 2, 3, 4
n2 = 4, 5, 6
n3 = n1 + n2
print(n3)
#运行结果:(2, 3, 4, 4, 5, 6)#乘法运算
n4 = 2, 3, 4
n5 = n4*3
print(n5)
#运行结果:(2, 3, 4, 2, 3, 4, 2, 3, 4)#练习:定义一个元组,获取元组中的数据,删除元组对象
tuple01 = (101,'rose',20,78.5,True)
del tuple01
print(tuple01)

相关文章:

Python语法结构(三)(Python Syntax Structure III)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

08_Linux文件查找技巧:locate、find 和 grep 命令详解

系列文章导航&#xff1a;01_Linux基础操作CentOS7学习笔记-CSDN博客 文章目录 1. locate命令2. grep命令3. find命令 在Linux系统中&#xff0c;文件查找是一项常见的任务。本文将详细介绍三种强大的文件查找命令&#xff1a;locate、find 和 grep&#xff0c;以及它们的使用…...

JAVA 实验六

一&#xff1a; &#xff08;1&#xff09; 运行以上尟序并尣以上尟序尜尢一行尥码添加注解&#xff0c;将尟序保存尣e601.java &#xff08;2&#xff09; 以上尟序尣类变量是哪一个变量&#xff0c;类尠尞是哪一个尠尞&#xff0c;请找出类变量和类尠尞被使用尜语…...

电脑查不到IP地址是什么原因?怎么解决

在日常使用电脑的过程中&#xff0c;有时会遇到无法查询到电脑IP地址的情况&#xff0c;这可能会影响到网络的正常使用。本文将探讨电脑查不到IP地址的可能原因&#xff0c;并提供相应的解决方案。 一、原因分析 ‌网络连接问题‌&#xff1a;首先&#xff0c;网络连接不稳定或…...

Axure重要元件三——中继器修改数据

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;中继器修改数据 主要内容&#xff1a;显示编辑内容、表格赋值、修改数据 应用场景&#xff1a;更新行、表单数据行修改 案例展示&#xff1a; 正文…...

应用层——电子邮件、MIME、简单网络管理协议SNMP

电子邮件 电子邮件系统采用三个主要构件组成&#xff1a;用户代理、邮件服务器、电子邮件所需的协议 我们可以简单的认为邮件服务器中有很多邮箱&#xff0c;还有用来缓存再转发邮件的缓存&#xff0c;发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。 邮件服…...

我与C语言二周目邂逅vlog——8.编译和链接

C语言中的编译和链接过程详细总结 1. 概述 C 语言是一种经典的系统级编程语言&#xff0c;其开发过程包括多个阶段&#xff0c;其中最关键的就是编译和链接过程。编译和链接的理解对于掌握 C 语言程序的构建至关重要。在本篇文章中&#xff0c;我们将深入讲解 C 语言的编译和…...

Views Page 视图页面

下图中显示的 Views 页面允许自定义网格级别及其相应的 View。 Views &#xff08;视图&#xff09; 页面包含两个主要部分&#xff1a; 关卡设计师;请注意&#xff0c;其他设计器页面为在关卡设计器中选择的 View 提供设置;Properties &#xff08;属性&#xff09; 窗口&…...

Win10 IDEA远程连接HBase

Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop&#xff08;HDFS&#xff09; 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin/stop-hbase.sh cd /usr/local/hadoop ./sbin/stop-dfs.sh获取虚拟机的ip 虚拟机终端输入 ip a关闭虚拟机…...

1.centos 镜像

centos 它有官网的下载地址&#xff1a;https://vault.centos.org/ 选择想要的版本&#xff0c;我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本&#xff0c;我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…...

electron 操作 cookie

前言&#xff1a;在 Electron 中操作 Cookie 可以使用electron模块提供的session对象来实现。 一、获取 Cookie 通过defaultSession获取默认会话对象&#xff0c;然后调用cookies.get方法并传入要获取 Cookie 的 URL 地址&#xff0c;以获取该 URL 对应的 Cookie。 const el…...

黑马软件测试第一篇_Linux

Linux 操作系统 说明: 所有硬件设备组装完成后的第⼀一层软件, 能够使⽤用户使⽤用硬件设备的软件 即为操作系统 常见分类 桌⾯面操作系统: Windows/macOS/Linux移动端操作系统: Android(安卓)/iOS(苹果)服务器器操作系统: Linux/Windows Server嵌⼊入式操作系统: Android(底…...

npm run dev 启动前端项目的原理

在一个使用 Vite 构建工具的 Vue 项目中&#xff0c;当你运行 npm run dev 时&#xff0c;实际执行的命令是 vite。为了理解这一过程&#xff0c;我们需要了解几个关键点&#xff1a; package.json 文件中的 scripts 字段: "scripts": {"dev": "vite&…...

【2024年SCI一区新算法:黑翅鸢优化算法 】分布式电网故障定位

1 场景介绍 使用10节点网络 2 故障设置 分为单重故障和两重故障 %% 2 故障设置 %% 1&#xff09;单重故障 I[1,-1,0,0,-1,-1,0,0,-1,-1]; % 区段1故障 节点状态实际编码&#xff08;是否流过故障电流&#xff09; % I[1,1,0,0,-1,-1,0,0,-1,-1]; % 区段2故障 % I[…...

PyTorch 中 12 种张量操作详解

创作不易&#xff0c;还请各位同学三连点赞&#xff01;&#xff01;收藏&#xff01;&#xff01;转发&#xff01;&#xff01;&#xff01; 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料&#xff0c;免费自取&#xff01;&#xff01; PyTorc…...

雷池WAF自动化实现安全运营实操案例终极篇

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

微信小程序实现canvas电子签名

一、先看效果 小程序canvas电子签名 二、文档 微信小程序canvas 组件文档 微信小程序canvas API文档 H5Canvas文档 三、分析 1、初始话Canvas容器 2、Canvas触摸事件&#xff0c;bindtouchstart&#xff08;手指触摸动作开始&#xff09;、bindtouchmove&#xff08;手指触摸…...

【SpringCloud】Seata微服务事务

Seata微服务事务 分布式事务问题&#xff1a;本地事务分布式事务演示分布式事务问题&#xff1a;示例1 分布式事务理论CAP定理一致性可用性分区容错矛盾 Base理论解决分布式事务的思路 初识SeataSeata的架构部署TC服务微服务集成Seata引入依赖配置TC地址 其他服务 动手实践XA模…...

重新阅读《马说》,感悟“伯乐相马”背后的被选择与选择的大智慧

“初闻不识曲中意&#xff0c;再听已是曲终人”。世有伯乐&#xff0c;然后有千里马。千里马常有&#xff0c;而伯乐不常有。无论你是考研考公等考试大军中的一员&#xff0c;还是已步入社会的打工人或者领导&#xff0c;当你面临被人选择或者选择人时&#xff0c;皆可从《马说…...

深入拆解TomcatJetty(三)

深入拆解Tomcat&Jetty&#xff08;三&#xff09; 专栏地址&#xff1a;https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示&#xff1a; 对组件之间的关系进行分析&#xff0c;…...

MySQL 实现简单的性能优化

一&#xff1a;硬件优化 更高的网络带宽&#xff1a;在处理大规模的远程请求时可以提高MySQL服务器的响应速度&#xff1b; 更大的内存空间&#xff1a;有助于缓存更多的数据库数据&#xff0c;减少磁盘I/O操作&#xff0c;提高整体性能&#xff1b; 换用企业级SSD&#xff1…...

AB包资源管理器

简介 ABMgr&#xff08;Asset Bundle Manager&#xff09;类是一个用于管理 Unity 中 AssetBundle 资源加载的管理器。它通过字典缓存和管理加载的 AB 包&#xff0c;同时支持同步和异步加载。还包含了卸载和清理 AB 包的方法。 功能解析&#xff1a; 主包加载与依赖管理&…...

Centos7源报错问题

原因&#xff1a;是因为centos7在024年6月份停止维护&#xff0c;导致默认镜像不能使用&#xff0c;更改镜像即可mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/…...

Openlayers高级交互(2/20):清除所有图层的有效方法

Openlayers项目中&#xff0c;经常会放置很多的图层&#xff0c;在业务操作的时候&#xff0c;会做出删除所有图层的行为。这里面给出了一个详细的方法&#xff0c;能够有效的解决 清除所有图层的问题。 效果图 专栏名称内容介绍Openlayers基础实战 &#xff08;72篇&#xff…...

黑马JavaWeb-day02

什么是JavaScript&#xff1f; JavaScript&#xff1a;简称Js,是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互 JavaScript和Java是完全不同的语言&#xff0c;无论是概念还是设计。但是基础语法类似。 JavaScript JavaScript引入方式…...

laravel清除不同缓存

1、清除应用程序缓存&#xff1a; php artisan cache:clear2、清除路由缓存&#xff1a; php artisan route:cache3、清除配置缓存&#xff1a; php artisan config:cache4、清除编译后的视图文件&#xff1a; php artisan view:clear5、清除事件和监听器缓存&#xff1a; ph…...

【Git】解决分支冲突、分支合并、版本回退、版本管理

解决本地冲突 1. 合并分支 假设你正在 main 分支上&#xff0c;想要合并 feature 分支。 git checkout main git merge feature如果两个分支都对同一文件做了不同的修改&#xff0c;Git 会提示你有冲突&#xff0c;并显示冲突文件。 2. 查看冲突文件 使用以下命令查看冲突…...

linux file结构体与inode结构体

在 Linux 系统中&#xff0c;inode 结构体和 file 结构体都是与文件系统相关的重要数据结构。它们各自承担着不同的角色&#xff0c;帮助操作系统管理文件和目录。以下是它们的异同点&#xff1a; inode 结构体 1.定义&#xff1a;inode&#xff08;索引节点&#xff09;是文件…...

探索迷宫的奥秘:用 C++ 打造你的迷宫游戏之旅!

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

JSON 注入攻击 API

文章目录 JSON 注入攻击 API"注入所有东西"是"聪明的"发生了什么? 什么是 JSON 注入?为什么解析器是问题所在解析不一致 JSON 解析器互操作性中的安全问题处理重复密钥的方式不一致按键碰撞响应不一致JSON 序列化(反序列化)中的不一致 好的。JSON 解析器…...