Python语法结构(二)(Python Syntax Structure II)

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

推荐: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语法结构(二)

字典

字典属于无序、可变的数据类型

  • 以键:值的方式存储、通过键来访问字典的值
  • 说明:字典以花括号{ }括起来的数据集合,不同数据间以“,”分隔,每个数据以“键:值”的形式表达

语法格式:

#创建字典
字典名 = {键1:值1,键2:值2,键3:值3,键4:值4,…}       #常用
字典名 = dict(键1=值1,键2=值2,键3=值3,…)
#字典中的“键”不能重复,“值”可以重复
  • 通过字典名访问
student = {"name": "张三", "年龄": 20, "性别": "男"}
#使用整个字典
print(student)
#获取字典姓名,年龄
print(student["name"])
print(student["age"])
#删除字典元素
del student["age"]
#删除字典
del 字典名
case = {"id":1001,"summary":"有效数据登录,登录成功","status":True}
print(case)
通过字典名加键形式访问
student = {"name": "张三", "年龄": 20, "性别": "男"}
print(student["name"])
case = {"id":1001,"summary":"有效数据登录,登录成功","status":True}
print(case["summary"])
  • 解包
id, name, age = {'id': 101, 'name': 'jack', 'age': 30}
print(id, name, age)
case = {"id":1001,"summary":"有效数据登录,登录成功","status":True}
case_id,case_summary,case_status = case
print(case_id, case_summary, case_status)
说明:字典解包只可以获取键,不能获取值
  • 复制字典
student1 = {"name": "张三", "年龄": 20, "性别": "男"}
student2 = student1.copy
print(student2)
  • 获取元素的值
student1 = {"name": "张三", "年龄": 20, "性别": "男"}
student2 = student1.get("age")
print(student2)
#清空字典
student2 = student1.clear()
#删除字典中指定元素
student1.pop("age")
#将一个字典元素更新到另一个字典中(存在则覆盖)
student3.update(student2)
print(student3)
  • 特殊情况的字典
✓ 空字典
d1 = {}
d2 = dict()
✓ 无名字典
dict()
  • 增加和修改字典数据
d3 = {'a':200, 'b':300, 'c':400}
d3['d'] = 500 # 增加数据
print(d3)
d3['b'] = 600 # 修改数据
print(d3)
  • 删除字典
✓ 删除字典元素
d4 = {"a": 10, "b": 20, "c": 30}
print(d4)
del d4["b"]
print(d4)
  • 删除字典
✓ 删除字典对象
d5 = {"a": 10, "b": 20, "c": 30}
print(d5)
del d5
print(d5)
  • 字典类型转换
✓ 字典转字符串类型
dict01 = {'name':'张三', 'sex':'男', 'age':23}
str01 = '%(name)s %(sex)s %(age)d' % dict01
print(str1)

✓ 字符串转字典类型
str02 = "{'id':101, 'name':'rose', 'age':25}"
dict02 = eval(str02)
print(dict02, type(dict02))
  • 字典常用操作函数

len()

len 表示获取字典元素长度
dict02 = {'n1':200, 'n2':300, 'n3':500}
dict_len = len(dict02)
print('字典元素长度是:',dict_len)
  • keys()
keys 表示获取字典所有的“键”
dict03 = {'n1':220, 'n2':320, 'n3':520}
keys = dic03.keys()
print(keys)

values()

values 表示获取字典所有的“值”
dict04 = {'n1':210, 'n2':310, 'n3':510}
values = dic04.values()
print(values)

get(key)

get 表示根据键k,获取对应的值,不存在则返回None
dict05 = {'name':'张三', 'sex':'男', 'age':23}
v1 = dic05.get("name")
print(v1)
v2 = dic05.get("e", "不存在")
print(v2)

items()

items 表示获取以“键:值”形式返回字典的元素
dict06 = {'name':'张三', 'sex':'男', 'age':23}
keys_values = dic06.items()
print(keys_values)

pop()

pop 表示根据键key删除所对应的元素,并返回删除的元素值
dict07 = {"姓名": "小明", "性别": "男", "年龄": 25, "地址": "北京"}
v3 = dict07.pop("地址")
print(dict07)
print(v3)
v4 = dict07.pop("班级","12班")
print(v4)

clear()

clear 表示清空字典数据
dict08 = {"a": 100, "b": 200, "c": 300}
d1 = dict08 .copy()
print(d1)
d1.clear()
print(d1)

集合

集合是Python数据类型之一

  • 集合是无序可变的序列
  • 同一个集合内的每个元素都是唯一的,元素之间不允许重复
  • 不支持修改

语法:

创建集合
集合名 = {数据1,数据2,数据3,.....}
集合名 = set(可迭代对象)
通过集合名访问
set01 = {1,2,3,4,5,6}
set02 = {'a','b','c',3,4}
set03 = set(range(10))
#使用集合
print(set01)
set02 = {100,'rose',200,78.5,flase}
print(set02)
#解包
a,b,c,d,e,f = set01
set1 = set()     #表示集合
set2 = {}     #表示字典
print(type(set2))
  • 并集 | 去重合并
set = {1,2,3,4,5}
set2 = {1,4,7,4,9}
result = set | set1
print(result)
  • 交集 & 打印共同含有的元素
set = {1,2,3,4,5}
set2 = {1,4,7,4,9}
result = set & set1
print(result)
  • 差集 - 打印1集合比2集合多的元素
set = {1,2,3,4,5}
set2 = {1,4,7,4,9}
result = set - set1
print(result)
  • 添加元素,如果元素已存在,则忽略该操作
set.add(元素)
print(set)
  • 将一个集合元素更新到另外一个集合中
set.update(set2)
  • 删除集合中的一个元素,并返回该值
number = set.pop()
print(number)
  • 移除集合中的元素
set = remove(元素)
print(set)
  • 清空集合
set.clear()
print(set1)
  • 流程控制语句
顺序结构:按照顺序一行一行的写代码,程序执行时按照书写代码的顺序执行
print(f'这是第1行记录')
x = 10
y = 20
print(f'{x}+{y}={x+y}')
  • 选择结构:编程过程中会写多个不同的程序,只执行其中的一个程序
if 条件:
语句段
  • 循环结构:写一份程序,会反复执行多次

选择结构

  • 根据条件是否成立,决定执行那段代码
  • 选择结构分为单分支、双分支、多分支、嵌套分支、
单分支
if 条件:
    语句段(代码)
  • 例1:获取键盘输入的2个整数,判断2个数的大小,输入较大的数
x = int(input('请输入第1个数:'))
y = int(input('请输入第2个数:'))
if x > y :
print(x)
  • 例2:获取键盘输入的性别,判断性别输入是否正确,如果正确,则输出性别,如果不正确,程序不做任何处理
sex = input('请输入您的性别:')
if sex == '男' or xb == '女':
print(sex)
  • 双分支
if 条件:
    语句段1
else:
    语句段2
  • 例1:编写用户登录程序,输入正确的用户名和密码,提示:登录成功,否则:登录失败
uname = input("请输入用户名:")
passwd = input("请输入密码:")
if "admin" == uname and "123456" == passwd:
print("登录成功")
else:
print("登录失败")

例2:判断键盘输入的整数,是正数还是负数

x = int(input("请输入1个数字:"))
if x >= 0:
print("您输入的%d是正数或者0" % x)
else:
print("您输入的%d是负数" % x)

例3:获取键盘输入的整数,判断输入的整数是奇数还是偶数

num = int(input('请输入一个整数:'))
if num % 2 == 0:
print(f'{num},是偶数')
else:
print(f'{num},是奇数')
多分支
if 条件:
    语句段1
elif 条件:
    语句段2
elif 条件:
    语句段3
else:
    语句段4
嵌套结构

流程控制语句总练习

#练习1:输入两个整数,使用if语句,判断大小,把较大的值输出
value1 = int(input("请输入第1个值"))
value2 = int(input("请输入第2个值"))
max_value = value1
if max_value > value2:
    max_value = value2
    print(f"最大的数是:{max_value}")
    
    
#练习2:从键盘输入性别,当输入正确时,输出“你得性别是....”,输出错误时,什么也不做
sex = input("请输入性别:")
if sex=='男':
    print(f"你的性别是{sex}")
elif sex =='女':
    print(f"你的性别是{sex}")
else:
    print("性别未知")
    
    
#练习3:当两个整数都是正数时,计算和,否则什么也不做
number1 = int(input("输入第一个整数:"))
number2 = int(input("输入第二个整数:"))
if number1 >= 0 and number2 >= 0:
    print(number1 + number2)
    
    
#练习4:获取键盘输入的一个整数值,求该数的绝对值
num1 = int(input("请输入第1个数:"))
if num1 < 0 :
    num1 = -num1  #取反
print("num1的绝对值为:%d" % num1)


#练习5:键盘输入2个整数,比较大小(双分支)
num = int(input("输入第1个整数:"))
num2 = int(input("输入第2个整数:"))
if num>num2:
    print("最大的数是num")
else:
    print("最大的数是num2")
    print(f"number的绝对值是:{num2}")
    
    
#练习6:获取键盘输入的整数,判断是正数还是负数
x = int(input("请输入1个数字:"))
if x >= 0:
    print("您输入的%d是正数或者0" % x)
else:
    print("您输入的%d是负数" % x)
    
    
#练习7:从键盘输入分数,判断分数所属的等级(优秀、良好、中等、及格、不及格)
score = int(input("请输入分数:"))
if 90 <= score <= 100:
    print("您的成绩是优秀")
elif 80 <= score < 90:
    print("您的成绩是良好")
elif 70 <= score < 80:
    print("您的成绩是中等")
elif 60 <= score < 70:
    print("您的成绩是及格")
    
    
# 练习8:在控制台中获取一个季度,打印相应的月份
# 输入与输出:
# 春  1月2月3月
# 夏  4月5月6月
# 秋  7月8月9月
# 冬  10月11月12月
quarter = input("请输入季度")
if quarter == "春":
    print("1月2月3月")
elif quarter == "夏":
    print("4月5月6月")
elif quarter == "秋":
    print("7月8月9月")
elif quarter=="冬":
    print("10月11月12月")
    
    
"""
    练习9:
	先在终端中录入一个数字
	再录入一个运算符
	最后录入一个数字
	打印计算的结果
	要求:如果运算符不是+ - * / 提示"运算符输入有误"
"""
num = int(input("请输入一个数字"))
suan = input("输入一个运算符")
num1 = input("最后录入一个数字")
if suan != ("+","-","*","/"):
    print("运算符输入有误")
    
    
# 练习10
"""
在终端中依次录入4个同学体重,打印最重的值.
	思路:假设第一个就是最大的
	使用假设的依次与后几个变量进行比较,如果发现更大的,则替换假设的
输入:52 ,40,37,60
输出:60
"""
tz = float(input('请输入1的体重(KG):'))
tz2 = float(input('请输入2的体重(KG):'))
tz3 = float(input('请输入3的体重(KG):'))
tz4 = float(input('请输入4的体重(KG):'))
max_value = tz
if max_value < tz2:
      max_value = tz2
if max_value < tz3:
      max_value = tz3
if max_value < tz4:
      max_value = tz4
print(max_value)


# 练习11
"""
	在终端中录入一个成绩,判断等级
	输入:成绩
	输出:优秀,良好,及格,不及格,成绩有误
"""
score = int(input("请输入考试成绩:"))
if score > 90 and score<=100:
    print("优秀")
elif score >= 80 and score <=90:
    print("良好")
elif score >=60 and score <=70:
    print("及格")
elif score < 60:
    print("不及格")
else:
    print("成绩有误")
    
    
# 练习12
"""
在终端中录入月份,然后打印天数.
输入:2 输出:28天
输入:1 3 5 7 8 10 12 输出:31天
输入:4 6 9 11 输出:30天
"""
month = int(input("请输入月份:"))
if {month} & {1,3,5,7,8,10,12}:
    print("31天")
elif {month} & {4,6,9,11}:
    print("30天")
else:
    print("28天")
    
    
# 练习13
'''
获取键盘输入的节日名称,输入相应的礼物
春节---饺子 情人节---玫瑰花
端午节---粽子 中秋节---月饼
'''
holiday_name = input("请输入节日名称:")
if holiday_name == "春节":
    print("饺子")
elif holiday_name == "情人节":
    print("玫瑰花")
elif holiday_name == "端午节":
    print("粽子")
else:
    print("请准备好你的礼物")
    
    
# 练习14
"""
在终端中获取一个整数,如果是偶数为变量state赋值"偶数",否则赋值"奇数"
"""
number = int(input("请输入一个整数:"))
state = "奇数" if number % 2 else "偶数"

num = int(input("请输入一个整数:"))
if num % 2 == 0:
    print("偶数")
else:
    print("奇数")
#在终端中获取一个年份,如果是闰年为变量day赋值29,否则赋值28
year = int(input("请输入年份:"))
day = 29 if year % 4 and year % 100 !=0 or year % 400 == 0 else 28


# 练习15
'''
获取键盘输入的三角形3条边,判断是否可以组成三角
形,如果能组成三角形,进一步判断是什么三角形(等边、等
腰、直角、普通)
'''
a = int(input("请输入第1条边:"))
b = int(input("请输入第2条边:"))
c = int(input("请输入第3条边:"))
if a > 0 and b > 0 and c > 0 and a+c > b and a+b > c and b + c > a:
    if a == b == c:
        print("是等边三角形")
    elif a == b or a == c or b == c:
        print("是等腰三角形")
    elif (a**2 == b**2+c**2) or (b**2 == a**2+c**2) or (c**2 == b**2+a**2):
        print("是直角三角形")
    else:
        print("是普通三角形")
else:
    print("不能组成三角形")
    
    
# 练习16
'''
键盘输入1000---5000年之间的年份,如果在范围里
判断是平年还是闰年,如果不在范围里给出错误信息提示
'''
year = int(input("请输入年份:"))
if 1000 <= year <= 5000:
    print("在范围里")
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print(year, "年是闰年")
    else:
        print(year, "年是平年")
else:
    print("请输入年份")

循环

根据条件或指定次数反复执行循环体语句,主要包括while和for两种循环结构

while循环
语法格式:
while 循环条件:
语句段

例1:使用while循环,循环输出1-10内的整数

i = 1 # 循环变量初值
while i < 11: # i < 11 循环条件
print(i)
i = i + 1 # 循环变量增值

例2:使用while循环,循环输出1-9的平方,具体如下所示:

1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
......
8 * 8 = 64
9 * 9 =81

例3:使用while循环,循环输出列表中的数据

list01 = [101, 'rose', 20, 90.5, '北京市朝阳区']
i = 0
while i < 5:
print(list01[i])
i = i + 1

例4:使用while循环,循环输入数据,并将数据存储到列表中

# 定义空列表
list01 = []
# 循环输入数据
i = 0
while i < 5:
# 获取键盘输入的数据
data = input("请输入1个数据:")
# 将获取的数据,追加到列表中
list01.append(data)
# 输出列表中的数据
print(list01)
i = i + 1
for循环

for循环结构通过遍历一个可迭代对象集合来控制循环的执行

语法格式:

for 循环变量 in 遍历对象:
    语句段

说明:每次循环,循环变量都会得到遍历对象中的一个值,然后执行循环体语句;当遍历对象中的值全部用完 时,就会自动退出循环

例1:使用for循环,循环输出列表中的元素

list01 = [101, 'rose', 20, 90.5, '北京']
for i in list01:
print(i)
说明:循环变量 i 前面可以没有定义

例2:使用for循环,循环输出字符串中的字符

# 定义字符串
# str01 = "ABCDEFG"
str01 = input("请输入您的数据:")
for i in str01:
print(i)

例3:使用for循环,循环输出列表中数据的平方

# 定义列表
list01 = [2, 4, 6, 7, 9, 12]
# for循环
for i in list01:
print(i*i)

例4:使用for循环,循环输出字符串中的数据,并以大写显示

# 定义字符串
str01 = "AbCdEfG"
# for循环
for i in str01.upper():
print(i)

例5: 使用for循环,循环输出水果字典中的数据

fruit = {'苹果': 10, '西瓜': 35, '香蕉': 25, '草莓': 15}
for name, price in fruit.items():
print("水果的名称:%s,%s的价格:%d" % (name, name, price))
for p in fruit.values():
print("水果的价格为:%d" % p)

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

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

相关文章

Shell编程-函数

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们前面学习了那么多命令&#xff0c;以及涉及到部分逻辑判断的问题。从简单来说&#xff0c;他就是Shell编程&#xff0c;…

在Xshell中查看日志文件详情

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

排序06 粗排模型

前面讲的多目标模型主要是用于精排。 粗排&#xff1a;尽量减少推理的计算量&#xff0c;牺牲准确性确保线上推理的速度足够快。 精排模型和双塔模型 中间的神经网络被多个任务共享 因此&#xff0c;前期融合模型用于召回&#xff0c;后期融合可以作为精排。 小红书粗排的三…

Shell案例之一键部署mysql

1.问题 我认为啊学习就是一个思考的过程&#xff0c;思考问题的一个流程应该是&#xff1a;提出问题&#xff0c;分析问题&#xff0c;解决问题 在shell里部署mysql服务时&#xff0c;我出现一些问题&#xff1a; 1.安装mysql-server时&#xff0c;没有密钥&#xff0c;安装…

PCL 基于中值距离的点云对应关系

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 获取中值距离筛选后的对应点对 2.1.2获取初始点对 2.1.3可视化 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇…

NetSuite Transfer Order Saved Search的关键字段取值

针对于Transfer Order的Saved Search&#xff0c;我们最经常遇到的问题就是如何取到From Location&#xff0c;To Location&#xff0c;Quantity Fulfilled&#xff0c;Quantity Received这几个值。 原生的TO Register无法取到对应的信息&#xff0c;系统中也没有相应的标准Se…

关于vue3中如何实现多个v-model的自定义组件

实现自定义组件<User v-model"userInfo" v-model:gender"gender"></User> User组件中更改数据可以同步更改父组件中的数据&#xff1a; 1 父组件&#xff1a; <User v-model"userInfo" v-model:gender"gender">&…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十七集:制作第一个BOSS苍蝇之母

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、战斗场景Battle Scene相关逻辑处理 1.防止玩家走出战斗场景的门2.制作一个简单的战斗场景二、制作游戏第一个BOSS苍蝇之母 1.导入素材和制作相关动画2.制作…

C#从零开始学习(GameObject实例)(unity Lab3)

这是书本中第三个unity Lab 在这次实验中,将学习如何使用C#编写代码用unity编写C#代码 GameObject实例 本次将完成的工作 将游戏资产配置在文件夹中创建材质把GameObject变成预制件脚本控制游戏防止球体重叠 将游戏资产配置在文件夹中 Script放代码 Prefabs放预制件 MAteria…

PostgreSQL的学习心得和知识总结(一百五十五)|[performance]优化期间将 WHERE 子句中的 IN VALUES 替换为 ANY

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

RabbitMQ系列学习笔记(八)--发布订阅模式

文章目录 一、发布订阅模式原理二、发布订阅模式实战1、消费者代码2、生产者代码3、查看运行结果 本文参考&#xff1a; 尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmq RabbitMQ 详解 Centos7环境安装Erlang、RabbitMQ详细过程(配图) 一、发布订阅模式原理 在开发过程中&…

大数据治理的核心思想

目录 ​编辑1.1 大数据治理的定义与重要性 1.2 大数据治理的关键要素 1.2.1 数据质量管理 1.2.2 数据安全管理 1.2.3 合规性管理 1.2.4 数据共享与协作 1.2.5 数据驱动的决策 二、对未来趋势的看法 2.1 技术发展趋势 2.1.1 人工智能与机器学习 2.1.2 云计算与边缘计…

Python数据处理工具笔记 - matplotlib, Numpy, Pandas

matplotlib, Numpy, Pandas 由于有很多例子是需要运算后的图表看着更明白一些&#xff0c;很明显csdn不支持 所以用谷歌的Colab(可以理解为白嫖谷歌的云端来运行的jupyter notebook)来展示&#xff1a; Colab链接(需要梯子)&#xff1a;Python数据挖掘 当然如果实在没有梯子&…

算法打卡 Day43(动态规划)-背包问题 + 分割等和子集

文章目录 0-1 背包问题理论基础0-1 背包问题滚动数组Leetcode 416-分割等和子集题目描述解题思路 0-1 背包问题理论基础 0-1 背包一般的题目要求是给定不同重量不同价值的物品&#xff0c;每个物品只有一个&#xff0c;已知背包中最大的负重&#xff0c;求在此限制条件下背包中…

达那福发布新品音致系列:以顶尖降噪技术,开启清晰聆听新篇章

近日&#xff0c;国际知名助听器品牌达那福推出其最新研发的音致系列助听器。该系列产品旨在通过顶尖的声音处理技术&#xff0c;直面助听器市场中普遍存在的挑战——如何在噪声环境中提供清晰的语音辨识。 根据助听器行业协会2022年的调查数据&#xff0c;高达86%的佩戴者认为…

数据结构——二叉树的基本操作及进阶操作

前言 介绍 &#x1f343;数据结构专区&#xff1a;数据结构 参考 该部分知识参考于《数据结构&#xff08;C语言版 第2版&#xff09;》116 ~ 122页 及 《数据结构教程》201 ~ 213页 重点 树的基本实现并不难&#xff0c;重点在于对递归的理解才是树这部分知识带来的最大收…

jmeter学习(8)界面的使用

1、新建test plan 3、 打开文件 4、保存 5、剪切 6、复制 7、粘贴 8、所有线程组展开 9、所有线程组收缩 10、置灰&#xff0c;操作后无法使用 11、执行 13、清空当前线程组结果 14、清空所有线程组结果 15、函数助手 搜索&#xff0c;可以用于搜索某个请求&#x…

Java基于微信小程序的健身小助手打卡预约教学系统(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

使用OpenCV进行视频边缘检测:案例Python版江南style

1. 引言 本文将演示如何使用OpenCV库对视频中的每一帧进行边缘检测&#xff0c;并将结果保存为新的视频文件。边缘检测是一种图像处理技术&#xff0c;它可以帮助我们识别出图像中不同区域之间的边界。在计算机视觉领域&#xff0c;这项技术有着广泛的应用&#xff0c;比如物体…

登录时用户名密码加密传输(包含前后端代码)

页面输入用户名密码登录过程中&#xff0c;如果没有对用户名密码进行加密处理&#xff0c;可能会导致传输过程中数据被窃取&#xff0c;就算使用https协议&#xff0c;在浏览器控制台的Request Payload中也是能直接看到传输的明文&#xff0c;安全感是否还是不足。 大致流程&a…