保研考研机试攻略:python笔记(1)
🐨🐨🐨宝子们好呀 ~ 我来更新欠大家的python笔记了,从这一篇开始我们来学下python,当然,如果只是想应对机试并且应试语言以C和C++为主,那么大家对python了解一点就好,重点可以看高分篇、满分篇和大数问题python合集就好,本部分建议学有余力的同学或者想多了解一些python的同学来看哦 ~ 话不多说,上干货 ~ ( •̀ ω •́ )✧
目录
🐨🐨🐨1输出格式问题
🐼数字对齐
🐼输出间隔问题
🐼global与nonlocal
🐼format自适应小数点
🐼format用法
🐶1、基本用法
🐶2、进阶用法
🐶3、多个格式化
🐼如何print
🐨🐨🐨2字符类
🐼ASCII码转换
🐶字符串转ASCII码
🐶ASCII码转字符串
🐼字母大小写转换
🐼字符检测函数isalpha()
🐼去除字符串的空格
🐶去除字符串开头或者结尾的空格
🐶去除字符串开头的空格
🐶去除字符串结尾的空格
🐶去除全部空格
🐼字符串和数组
🐨🐨🐨3列表类
🐼注意事项
🐼enumerate循环语句
🐼index获取指定值元素的位置
🐼insert插入元素
🐶语法
🐶参数
🐶返回值
🐶实例
🐼删除元素
🐶remove()
🐶pop()
🐶切片
🐶clear和del
🐼count统计元素出现次数
🐼用数组实现栈
🐼差分与前缀和方法
在正式开始之前,我先提醒一下大家, 若试题中有多组输入,每组样例输入完后会有EOFerror,所以我们在写python代码时要采用try+except的结构来防止阻塞!
🐨🐨🐨1输出格式问题
🐼数字对齐
print("%-3s " % str(j), end='')#%-3s表示 ‘str(j)’占用三个字符,向右对齐,多余字符用空格
补充
🐼输出间隔问题
#看清间隔大小,此处无需加空格
for i,s in res_order: print(i,s)
#若加空格,间隔明显偏大,输出格式为
'''
input:
3
1 90
2 87
3 92
output: 2 87 1 90 3 92
'''
🐼global与nonlocal
a = 0
def change_a(): global aa =1print(a) #1
def change(): b = 0def c_b():nonlocal b b =1print(b) #1 #global b#b =1 # 报错:没有b这个全局变量
🐼format自适应小数点
price = int(input())
discount =1
if price >=1000 and price <2000: discount = 0.95
elif price >=2000 and price <3000: discount = 0.9
elif price >=3000 and price <5000: discount = 0.85
elif price >=5000:discount = 0.8
pay = discount*price
print("discount={},pay={:g}".format(discount,pay))##{:g}自动去掉小数点后的0
🐼format用法
🐶1、基本用法
(1)不带编号,即“{}”
(2)带数字编号,可调换顺序,即“{1}”、“{2}”
(3)带关键字,即“{a}”、“{tom}”
>>> print('{} {}'.format('Hello ','world ')) # 不带字段
Hello world
>>> print('{0} {1}'.format('Hello ','world ')) # 带数字编号
Hello world
>>> print('{0} {1} {0}'.format('Hello ','world ')) # 打乱顺序
Hello world Hello
>>> print('{1} {1} {0}'.format('Hello ','world '))
world world Hello
>>> print('{a} {b} {a}'.format(a='Hello ',b='world ')) # 带关键字
Hello world Hello
🐶2、进阶用法
(1)< (默认)左对齐、 > 右对齐、 ^ 中间对齐、 = (只用于数字)在小数点后进行补齐
(2)取位数“{:4s}”、"{:.2f}"等
>>> print('{} and {}'.format('Hello ','world ')) # 默认左对齐
Hello and world
>>> print('{:10s} and {:>10s}'.format('Hello ','world ')) # 取10位左对齐,取10位右对齐
Hello and world
>>> print('{:^10s} and {:^10s}'.format('Hello ','world ')) # 取10位中间对齐
Hello and world
>>> print('{} is {:.2f}'.format(1.123,1.123)) # 取2位小数
1.123 is 1.12
>>> print('{0} is {0:>10.2f}'.format(1.123)) # 取2位小数,右对齐,取10位
1.123 is 1.12
🐶3、多个格式化
'b' - 二进制。将数字以2为基数进行输出。
>>> print('{0:b}'.format(3))
11
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
>>> print('{:c}'.format(20))
4
'd' - 十进制整数。将数字以10为基数进行输出。
>>> print('{:d}'.format(20))
20
'o' - 八进制。将数字以8为基数进行输出。
>>> print('{:o}'.format(20))
24
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
>>> print('{:x}'.format(20))
14
'e' - 幂符号。用科学计数法打印数字。用 'e'表示幂。
>>> print('{:e}'.format(20))
2.000000e+01
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
>>> print('{:g}'.format(20.1))
20.1
'n' - 数字。当值为整数时和 'd'相同,值为浮点数时和 'g'相同。不同的是它会根据区域设置插入数字分隔符。
>>> print('{:f}'.format(20))
20.000000
>>> print('{:n}'.format(20))
20
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
>>> print('{:%}'.format(20))
2000.000000%
🐼如何print
a = "12"
b = "3"
#非指定end时,print默认end为换行符
print("%-3s" % str(a), end=' !')
#“-”为左对齐,“3”表示取3位,不够则空格补位,“%"后的 str(a)对应于“%-3s”
print("%3s" % str(b), end=' !')
#a: 12 !
#b: 3 !
字符串输出
-
%s
-
%10s——右对齐,占位符10位 %-10s——左对齐,占位符10位
-
%.2s——截取2位字符串
-
%10.2s——10位占位符,截取两位字符串
print('%s' % 'hello world') # 字符串输出
#hello worldprint('%20s' % 'hello world') # 右对齐,取20位,不够则补位
#hello worldprint('%-20s' % 'hello world') # 左对齐,取20位,不够则补位
#hello worldprint('%.2s' % 'hello world') # 取2位
#heprint('%10.2s' % 'hello world') # 右对齐,取2位
#heprint('%-10.2s' % 'hello world') # 左对齐,取2位
#he
🐨🐨🐨2字符类
🐼ASCII码转换
🐶字符串转ASCII码
借助ord()函数实现,ASCII码转化可以看作字符减运算, ord()是python自带的函数,无需导入:
>>> print(ord('c')-ord('a'))
2
借助ord()函数不仅可以进行字符减运算,也可以进行加运算,但一般不这么用:
>>> print(ord('c')+ord('a'))
196
🐶ASCII码转字符串
直接借助python自带的chr()函数:
>>> print(chr(99))
c
🐼字母大小写转换
-
upper():所有字母大写
-
lower():所有字母小写
-
capitalize():首字母大写,其他字母小写
-
title():每个单词首字母大写,其他小写
#encoding:UTF-8
msg = 'www.BAIDU.com.123'
print(msg.upper()) #upper()函数,将所有字母都转换成大写
print(msg.lower()) #lower()函数,将所有字母都转换成小写
print(msg.capitalize()) #capitalize()函数,将首字母都转换成大写,其余小写
print(msg.title()) #title()函数,将每个单词的首字母都转换成大写,其余小写
'''
WWW.BAIDU.COM.123
www.baidu.com.123
Www.baidu.com.123
Www.Baidu.Com.123
'''
🐼字符检测函数isalpha()
isalpha() 方法用于检测指定字符串是否只由字母组成。如果字符串中至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
#!/usr/bin/python
# coding=utf-8str = "runoob";
print str.isalpha();str = "runoob菜鸟教程";
print str.isalpha();str = "this is string example....wow!!!";
print str.isalpha();'''
True
False
False
'''
🐼去除字符串的空格
🐶去除字符串开头或者结尾的空格
>>> a = " a b c " >>> a.strip()
'a b c'
🐶去除字符串开头的空格
>>> a = " a b c "
>>> a.lstrip()
'a b c '
🐶去除字符串结尾的空格
>>> a = " a b c "
>>> a.rstrip()
' a b c'
🐶去除全部空格
replace:
>>> a = " a b c "
>>> a.replace(" ", "") 'abc'
split()+join():
split()可以去除字符串中的空格,并按空格分割成list。
>>> a = " a b c "
>>> b = a.split() # 字符串按空格分割成列表 >>> b ['a', 'b', 'c']
>>> c = "".join(b) # 使用一个空字符串合成列表内容生成新的字符串 >>> c 'abc'
# 快捷用法
>>> a = " a b c "
>>> "".join(a.split()) 'abc'
🐼字符串和数组
数组转字符串:
''.join(['a','b','c'])#'abc'
字符串转数组:
list('abc')#['a','b','c']
'a b c'.split()#['a','b','c']
🐨🐨🐨3列表类
🐼注意事项
列表的append使用的是引用传递,即加入的是原数据地址,对原数据进行pop等操作时同时也会改变使用append原数据的数据
解决方法:利用list.copy() 或者使用list[:]代替list
a = [1,2,3]
b =[a] # [[1,2,3]]
c =[3]
b.append(a)# [[1,2,3],[1,2,3]]
b.append(c) #[[1,2,3],[1,2,3],[3]]
a.pop()
c=[4]
b # [[1,2],[1,2],[3]]
b.append(a.copy())# [[1,2],[1,2],[3],[1,2]]
b.append(a[:])# [[1,2],[1,2],[3],[1,2],[1,2]]
a.pop()
b # [[1,2],[1,2],[3],[1,2],[1,2]]
在使用append时要注意,当目标list之前有其他变量引用时,值也会变化如:
a=[1]
b=a
c = a[:]
d =a+[2]
a.append(3)
# a [1,3]
# b [1,3]
# c [1]
# d [1,2]
🐼enumerate循环语句
while True: try:string = list(input()) list1 = []for i in string:if i.isalpha():list1.append(i)#大写全变为小写,sort可满足 当字母相同不影响本来输入的数据的顺序list1.sort(key=lambda c: c.lower())#此类循环可以得到index值for index, i in enumerate(string): if not i.isalpha():# 可通过insert直接插入得到结果,无需另构建一个空字符串相加获得结果list1.insert(index, i) print(''.join(list1))except:break
🐼index获取指定值元素的位置
#用法,获取列表中值为val的索引值,但只能寻找一维的list
#当列表中有多个相同val值时,只返回最小的索引值
a = [1,2,2,3]
val = 2
a.index(val)
# 1
🐼insert插入元素
insert函数用于将指定对象插入列表的指定位置。
🐶语法
insert()方法语法:
list.insert(index, obj)
🐶参数
-
index -- 对象 obj 需要插入的索引位置。
-
obj -- 要插入列表中的对象。
🐶返回值
该方法没有返回值,但会在列表指定位置插入对象。
🐶实例
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc']
aList.insert( 3, 2009)
print "Final List : ", aList#输出:
#Final List : [123, 'xyz', 'zara', 2009, 'abc']
注意,下标是从0开始的!
🐼删除元素
-
remove():一次删除一个元素;如果列表内有重复元素则删除第一个;元素不存在时抛出异常 ValueError
-
pop():删除一个指定的索引位置上的元素;指定索引不存在则抛出异常IndexError
-
切片:一次至少删除一个元素
-
clear():清空列表
-
del:删除列表
🐶remove()
指定值
1. 一次删除一个元素;
2. 如果列表内有重复元素则删除第一个;
3. 元素不存在时抛出异常ValueError。
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
#原列表为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] lst.remove(5)
print("删除后的列表为:", lst)
#删除后的列表为:[0, 1, 2, 3, 4, 6, 7, 8, 9]
🐶pop()
删除一个指定的索引位置上的元素;指定索引不存在则抛出异常IndexError
注意:如果不指定参数,则默认删除最后一个元素!
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
#原列表为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] lst.pop(5)
print("删除后的列表为:", lst)
#删除后的列表为:[0, 1, 2, 3, 4, 6, 7, 8, 9]
🐶切片
# 切片的本意为截取原有列表中指定的的某一段,或者说是复制指定的那一段,并返回了新的列表
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
# 借助列表的添加方式,原来添加的操作中,使得lst[start,stop] = lst1(此为添加的元素)
# 那么删除操作可以类似的,使lst1为空列表,那么原列表中指定一段的元素被空替代,则完成删除
lst[1:3] = [] # 将第1,2索引位的元素删除
print("删除后的列表为:", lst)
🐶clear和del
clear为清空列表中的元素,列表对象还存在
del直接删除了列表对象
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
lst.clear()
print("删除后的列表为:", lst)lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
del lst
print("删除后的列表为:", lst)
🐼count统计元素出现次数
统计列表中某个元素出现的次数
#用法[ ].count(object)
[1,2,1,3].count(1)
# 2
🐼用数组实现栈
"""
isEmpty 判断是否为空
push 添加新元素(及最后被添加的元素为栈顶)
pop 移出栈顶元素
peek 查看当前栈顶元素
size 计算数量
""" class Stack:#创建一个栈def_init_(self):#初始为空栈self.items = [] def isEmpty(self):return self.items ==[] def push(self, item):self.items.append(item) #添加新成员,新成员为顶,旧骨干为底 def pop(self):return self.items.pop() #移出顶,底上位def peek(self): #查看当前顶部成员return self.items[-1]def size(self): #查看当前成员数量return len(self.items)
🐼差分与前缀和方法
适用题型:某一个区间同时加减一个数
举例,每次对某一区间的数进行加减操作,最后查询某坐标的数:
普通方法:创建一个数组,对输入的每个区间分别循环,区间内的所有值加一。此方法容易理解,但是容易超时。
优化方法:
1、差分:只对每个输入的起点和终点进行加减操作
2、前缀和:最后统一只循环一次,每次迭代当前数目加前一个数的大小,即为最终的统计数
data = []
check = []
while True:Bi, Ei = map(int, input().split()) if Bi == Ei == 0:breakdata.append((Ei, Bi))while True:bi, ei = map(int, input().split()) if bi == ei == 0:breakcheck += [i for i in range(bi, ei + 1)]max_index = max(data)[0]
wall = [0 for i in range(max_index+5)]# 记录差分 ,表示Bi到Ei区间存在值
for Ei, Bi in data: wall[Bi] += 1wall[Ei+1] -= 1# 遍历一遍,求前缀和
for i in range(1, len(wall)): wall[i] += wall[i - 1]for v in check:print(wall[v])
好啦,今天我们先学到这里,学完的同学们都太棒了,我们下一篇见 ~ 👋👋👋
有什么问题我们随时评论区见哦 ~ 🌹🌹🌹
相关文章:

保研考研机试攻略:python笔记(1)
🐨🐨🐨宝子们好呀 ~ 我来更新欠大家的python笔记了,从这一篇开始我们来学下python,当然,如果只是想应对机试并且应试语言以C和C为主,那么大家对python了解一点就好,重点可以看高分篇…...

在浏览器中运行 Puppeteer:解锁新能力
Puppeteer,这个强大的浏览器自动化工具,通常在Node.js环境中运行。但你有没有想过,在浏览器本身中运行Puppeteer会是什么样子?这不仅能让我们利用Puppeteer的功能完成更多任务,还能避开Node.js特定的限制。 支持的功…...

Kafka消费者故障,出现活锁问题如何解决?
大家好,我是锋哥。今天分享关于【Kafka消费者故障,出现活锁问题如何解决?】面试题?希望对大家有帮助; Kafka消费者故障,出现活锁问题如何解决? 1000道 互联网大厂Java工程师 精选面试题-Java资…...

pytorch 交叉熵损失函数 BCELoss
BCE Loss 交叉熵损失函数计算公式: BCE Loss - 1/n*(y_actual * log(y_pred) (1 - y_actual) * log(1 - y_pred)) t[i]为标签值:0或者1 o[i]是经过sigmoid后的概率值 BCEWithLogitsLoss 这个损失将Sigmoid层和BCELoss合并在一个类中。 BCEWithLog…...
【进阶】面向对象之接口(多学三招)
文章目录 IDK8开始接口中新增的方法1.允许在接口中定义默认方法,需要使用关键字default修饰2.接口中的默认方法的定义格式3.接口中默认方法的注意事项总结 IDK8开始接口中新增的方法 JDK7以前:接口中只能定义抽象方法。JDK8的新特性:接口中可以定义有方法体的方法。(默认、静态…...
linux上trace code的几种方法
我们在看代码时,总是会遇到下面问题: 1.查看某个场景下的代码执行流 2.查看某个函数被执行时的routine 但是,如果直接查看源码,源码可能代码量大,且分支多,不容易理清。就需要让相关程序运行起来查看。 …...

文件操作(1) —— 文件基础知识
目录 1. 为什么使用文件? 2. 文件种类【按功能分】 3. 文件名 4. 数据文件种类【按存储方式细分】 5. 文件的打开和关闭 5.1 流和标准流 5.2 文件指针 5.3 文件的打开和关闭函数 6. 文件缓冲区 1. 为什么使用文件? 如果没有⽂件,我…...

4K双模显示器7款评测报告
4K双模显示器7款评测报告 HKC G27H7Pro 4K双模显示器 ROG华硕 XG27UCG 4K双模显示器 雷神 ZU27F160L 4K双模显示器 泰坦军团 P275MV PLUS 4K双模显示器 外星人(Alienware)AW2725QF 4K双模显示器 SANC盛色 D73uPro 4K双模显示器 ANTGAMER蚂蚁电竞 …...
2024.10.24华为(留学生)笔试题解
第一题集装箱堆叠 看注释即可 // 看题目,是最长连续序列的变种。底应该选大的,然后往上堆叠选择次大的(越接近底越好?) // 后续想一下,像是动态规划? // 再一想,好像排序后很容易处理#include <bits/stdc++.h> #include <functional> using namespace st…...

基于neo4j的医疗问诊系统
当你身体不适时,想要找到准确的答案却经常遇到模棱两可的答复,糟心吗?现在,基于neo4j的智能医疗问诊系统为你带来全新体验!我们设计了一个具备自动化问答功能的医疗系统,帮助用户快速获取专业的健康知识答案…...

java :String 类
在我们之前的讲解中我们已经了解了很多的Java知识,这节我们讲Java中字符如何定义以及关于String如何使用还有常见的string函数。 【本节目标】 1. 认识 String 类 2. 了解 String 类的基本用法 3. 熟练掌握 String 类的常见操作 4. 认识字符串常量池 5. 认识 …...
关于非中文或者url文本不换行的问题
我在一个写一个简单的url展示的时候,发现url一直溢出不换行,查了各种方法不管用,我请教了我大哥,他直接甩给我两个css放进去就好了 word-break:break-all; 按字符截断换行 /* 支持IE和chrome,FF不支持*/ word-w…...

LeetCode 热题 100之矩阵
1.矩阵置0 思路分析:使用标记数组 记录需要置为 0 的行和列:使用两个布尔数组 zeroRows 和 zeroCols 来记录需要置为 0 的行和列两次遍历 第一遍遍历整个矩阵,找到所有为0的元素,并更新zeroRows和zeroCols;第二遍遍历…...
YOlO系列——yolo v3
文章目录 一、算法原理二、网络结构三、正负样本匹配规则四、损失函数五、边框预测六、性能特点七、应用场景 YOLO-v3(You Only Look Once version 3)是一种先进的目标检测算法,属于YOLO系列算法的第三代版本。以下是对YOLO-v3的详细介绍&…...

基于Datawhale开源量化投资学习指南(11):LightGBM在量化选股中的优化与实战
1. 概述 在前几篇文章中,我们初步探讨了如何通过LightGBM模型进行量化选股,并进行了一些简单的特征工程和模型训练。在这一篇文章中,我们将进一步深入,通过优化超参数和实现交叉验证来提高模型的效果,并最终通过回测分…...

Python4
4. 更多控制流工具 除了刚介绍的 while 语句,Python 还用了一些别的。我们将在本章中遇到它们。 4.1. if 语句 if elif else if x<0: x 0 print(Negative changed to zero) elif x0: print( zero) else: print(More) 4.2. for 语句 Pyth…...

springboot系列--web相关知识探索六
一、前言 web相关知识探索五中研究了请求中所带的参数是如何映射到接口参数中的,也即请求参数如何与接口参数绑定。主要有四种、分别是注解方式、Servlet API方式、复杂参数、以及自定义对象参数。web相关知识探索五中主要研究自定义对象参数数据绑定底层原理。本次…...

FreeSWITCH 简单图形化界面30 - 使用MYODBC时可能遇到的错误
FreeSWITCH 简单图形化界面30 - 使用MYODBC时可能遇到的错误 测试环境1、 MYODBC 3.51.18 or higher2、分析和解决2.1 解决1,降级MySQL ODBC2.2 解决2,修改FreeSWITCH代码 测试环境 http://myfs.f3322.net:8020/ 用户名:admin,密…...

阿里云物联网的通信方式
阿里云物联网通信的两种方式,一个是物模型(分为服务,事件,属性),一个是自定义topic(要另外设置数据流转) 1.使用产品内的功能定义,(其实也就是Topic中定义好的…...

自由职业者的一天:作为小游戏开发者的真实工作日记
大家好,我是小蜗牛。 在这个快节奏的数字时代,自由职业者的生活往往充满了挑战与机遇。作为一名微信小游戏开发者,我的日常工作并不像人们想象中的那样充满光鲜亮丽的画面,而是由无数的编码、调试和创意碰撞组成的。今天…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...