python基础 | python基础语法
文章目录
- 📚基础语法
- 🐇输入和输出
- 🥕`print()`输出
- 🥕`input()`输入
- 🐇 变量的命名
- 🐇条件判断
- 🥕单向判断
- 🥕双向判断
- 🥕多向判断
- 🥕if嵌套
- 🥕三元表达式
- 🐇和或非
- 📚数据类型
- 🐇数据类型
- 🐇类型转换
- 🐇四则运算
- 🐇数据的常用语法
- 🥕列表语法
- 👀列表特点
- 👀列表的操作
- 🥕字符串语法
- 🥕字典语法
- 🥕布尔值相关
- 📚循环
- 🐇for循环
- 🐇while循环
- 🐇while循环和for循环比较
- 🐇循环进阶
- 📚函数
- 🐇函数定义的语法
- 🥕参数的类型
- 🥕变量作用域
- 📚类与对象
- 🐇类的创建
- 🐇类的继承
- 📚模块
- 🐇模块类型
- 🥕内置模块
- 🐇模块和模块对象导入方法
- 🥕程序入口
👀说在前面:
python基础语法对照着C学,大体思想和方法都大差不差,但要关注python和C在表达上的不同点,即那些语法规则细节上的差异点
📚基础语法
🐇输入和输出
🥕print()输出
- 第一种: 不带引号,让计算机读懂括号里的内容,打印最终的结果
print(1+1),输出2
- 第二种:带单引号,计算机无须理解,原样复述引号中的内容(双引号和单引号作用一样,一般使用英文单引号)
print('秋水共长天一色'),输出秋水共长天一色
- 第三种:带三引号,实现换行用来包裹多行文本,按照原样打印出来
- 转义字符:当要打印的东西本身具有单引号——不需要被解析的引号面前加上反斜杠
\'表示一个单引号,\"表示一个双引号\a响铃(BEL)
\b退格(BS),将当前位置移到前一列
\f换页(FF),将当前位置移到下页开头
\n换行(LF),将当前位置移到下一行开头
\r回车(CR),将当前位置移到本行开头
\t水平制表(HT) (跳到下一个TAB位置)
\v垂直制表(VT)
\\代表一个反斜杠字符""
\'代表一个单引号(撇号)字符
\"代表一个双引号字符
\?代表一个问号
\0空字符(NUL)
\ddd1到3位八进制所代表的任意字符
\xhh1到2位十六进制所代表的任意字符
🥕input()输入
🐇 变量的命名
- 只能是一个词;
- 只能包含字母、数字和下划线;
- 不能以数字开头;
- 尽量描述包含的数据内容;
- 不要使用python函数名和关键字。
🐇条件判断
🥕单向判断
如果条件成立,就执行语句
number = 6if number > 3:pirnt(number)
注意格式!
- if后面要加冒号,判断条件不用括号。
- 同时执行语句要缩进!
🥕双向判断
if…else… 条件成立执行if语句 ,否则执行else语句
🥕多向判断
多选一,让计算机最先判断最难满足的条件,if…elif…else 三个及其以上条件的判断
grade = 65
if 80 <= grade <=100:print('成绩优秀')
elif 60 <= grade < 80:print('成绩中等')
else :print('成绩差')
if…else…和if…if…的区别
- if…else…一个条件满足后就不会进行其他判断(if代表的条件和else代表的条件是互斥的)
- if…if…会遍历所有条件,一个条件无论满足还是不满足,都会进行下一个条件的判断
🥕if嵌套
使用if进行条件判断 ,还希望在条件成立的执行语句中再增加条件判断 ,即if中还有if ,这两个if非平级(缩进超级重要)
🥕三元表达式
X = Y if 条件 else Z,条件为真为Y,为假为Z
🐇和或非
- 和:
and,或:or,非:~
📚数据类型
🐇数据类型
- 字符串str:用引号括起来的文本(如:‘python’、‘123’)
- 整数int:不带小数点的数字(如:-1、1、0、520、1314)
- 浮点数float:带小数点的数字,运算结果存在误差(如:-0.15、3.1415、1.0)
- 列表list:是一种有序的集合,可以随时增加或删除其中的元素。标识是中括号
[]。 - 元组tuple:一种类似列表的数据类型,但是不能被修改。
- 字典dict:全称为dictionary,使用键值对(key-value)作为存储方式。标识是大括号
{}。- 字典中的键需要是唯一的,如果字典中有两个相同的 键,Python 只会保留后面那个。而值则没有限制,可以是任意类型的,也可以有相同的值。
- 布尔值bool:表示真假的数据类型,只有两个值,True和False。
type()函数判类型len()用于检查某个数据长度- 可变类型与不可变类型
🐇类型转换
str()、float()、int()、list( )
- 不能将字符串和整数相联加——常用到数据类型转换
- input本身都是字符串——常用到数据类型转换,
score=int(input('输入分数:')) - 任何类型都可以转换为字符串
- 不是所有都能转换成整数/浮点数示例举例
- 文本类字符串和浮点形式的字符串不能转化为整数
- 文字类型字符串无法转换为浮点数
- 浮点数转化为整型是对浮点数直接抹零取整。
- list() :将数据转换为列表类型
[‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘基’, ‘础’]a = 'python基础' print(list(a))
🐇四则运算

运算优先级:从左到右顺着来,括号里的优先算,乘除排在加减前。
🐇数据的常用语法
🥕列表语法
👀列表特点
- 项目之间有先后顺序
- 列表内容可以编辑
- 可记录的项目各式各样
- 示例:
students=[A, B, C, D]- 一般推荐逗号与下一个元素之间加一个空格
- 在实际写代码的过程中,统一段代码不要出现函数名和列表名相同的情况,不然会报错。
👀列表的操作
对列表元素的处理
-
⚠️由索引取元素
- 正向索引
print(students[2]),列表中正向索引是从0开始数的 - 反向索引
print(students[-1]),反向索引倒数几个从-1开始数
- 正向索引
-
⚠️查列表元素索引:
列表.index(元素内容),关注从0开始索引 -
⚠️列表元素的修改:
列表[索引] = 新值 -
⚠️列表元素的添加
- ⭐️直接添加(默认在列表末尾添加):
列表.append(元素)- 用append时不能对列表赋值,以下输出None,第二行语法错误
list = ['松','竹'] list = list.append('梅') print(list) - append不能一次添加多个元素,以下TypeError: append() takes exactly one argument (2given)
ist = ['松','竹'] list.append('梅','岁寒三友') print(list)
- 用append时不能对列表赋值,以下输出None,第二行语法错误
- ⭐️在列表中间某个位置插入一个元素:
列表.insert(9,元素),即在第10位插入B,此时排在插入值后的索引值自动+1
- ⭐️直接添加(默认在列表末尾添加):
-
⚠️列表元素的删除
- ⭐️
列表.pop(索引):如果不填索引就默认为最后一个,pop删除会显示删除的具体值。
以students=[A, B, C, D]为例,例:
punished=students.pop(1),输出 punished=B- ⭐️
del列表[索引]:这里的删除不会显示被删的具体值- 每次只能删除一个元素
- 连续删除多个元素是,记得重新计算偏移值
[‘竹’, ‘梅’]list = ['松','竹','梅'] del list[0] print(list) del list[0] print(list)
[‘梅’] - ⭐️
列表.remove(值):在列表中找到的第一个指定的值,然后将它删除
- ⭐️
-
⚠️列表的分片:列表层面的提取,一次提取若干个元素,提出来的是列表
列表[起始索引:结束索引]例:若要获取第三到第五个元素,应为列表[2,5]- 若是从头开始,则可写为
列表[:3],同理最后可为列表[10:],也可用反向索引列表[-4:] - 列表分片必须用整数而不可以用浮点数,因此和/运算符相关的要把结果转化为整数
对列表的处理
-
⚠️列表的修改(同样是使用赋值语句,注意是对列表的赋值)
list = ['松','竹','梅'] list[:] = ['岁寒三友'] print(list)[‘岁寒三友’]
list = ['松','竹','梅'] list[:] = '岁寒三友' print(list)[‘岁’, ‘寒’, ‘三’, ‘友’]
-
⚠️统计列表中某元素出现的次数:
列表.count(元素) -
⚠️排序:
列表.sort()字符串列表默认按首字母排列,数值列表默认是从小到大排列 -
⚠️反转:
列表.reverse -
⚠️复制:
列表.copy()若直接A=B,不是复制,只不过是给列表改了个名字 -
⚠️清空:
列表.clear() -
⚠️列表的删除:
del 列表[分片] -
⚠️列表的增加 (列表的增加叫作列表的合并会更合理), 使用符号’+’
- 符号’+'只能用在列表之间,不能用在列表和元素之间
- 顺序:在加号前的元素排在新列表的前面
-
⚠️列表的乘法
列表*n:实质即为加了几次
列表的拓展操作
- ⚠️
zip(列表1,列表2):将两个长度相同的列表合并起来,对应位置完成合并,组队变成元组 - ⚠️
enumerate(列表,1):枚举功能,默认从1开始

- 上述两个操作所形成的的均为元组
- 元组:用圆括号包裹,元组里的元素不可以增改删但可以查询和分片和加法乘法。
- 只有一个元素的元组,在格式上与列表不同,写为(x ,)
元组和列表的互换- 元组→列表:
list(元组) - 列表→元组:
tuple(列表)
- 元组→列表:
- 所以上述两个拓展操作两者返回对象再用
list()转换为二维列表- 二维列表:通用格式:
列表名[行数-1][列数-1]
- 二维列表:通用格式:
🥕字符串语法
- 字符串的索引和分片规则均与列表同,分片范围超出总长度不会报错,但索引取值(print(string[100000])这种形式)超出范围会报错。
- 可以把字符串想象成一根绳子,分片就是用刀将绳子切分开来。在字符串长度内分片相当于在绳子上切割,而超出范围相当于一刀砍到了空气,对于绳子来说没有影响。
- 字符串的不可变性
- 字符串一旦创建后是不可以改变的,这个属性和元组类似,通过索引来改变字符串中的元素就会报错
- 想要修改字符串内容可
使用字符串分片和拼接去生成一个新的字符串
大小写互换

分割、组合与移除

定位与替换

字符串格式化输出
-
常见的占位符:
%d整数,%f浮点数,%s字符串:%s是万能的,它会把任何数据类型转换为字符串,%x十六进制整数
-
format()方法使用{}作为占位符,然后按照参数顺序替换对应的占位符。

- 我们还可以给占位符命名,命名后参数顺序不再重要

- 我们还可以给占位符命名,命名后参数顺序不再重要
🥕字典语法
字典数据的提取
列表使用偏移量来提取,字典使用键来提取
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(group['师父'])
唐三藏
字典数据的修改
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
group['师父']='唐玄奘'
print(group)
{‘师父’: ‘唐玄奘’, ‘大师兄’: ‘孙行者’, ‘二师兄’: ‘猪八戒’, ‘沙师弟’: ‘沙和尚’}
字典数据的添加
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
group['白龙马']='敖烈'
print(group)
{‘师父’: ‘唐三藏’, ‘大师兄’: ‘孙行者’, ‘二师兄’: ‘猪八戒’, ‘沙师弟’: ‘沙和尚’, ‘白龙马’: ‘敖烈’}
字典数据的删除
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
del group['师父']
print(group)
{‘大师兄’: ‘孙行者’, ‘二师兄’: ‘猪八戒’, ‘沙师弟’: ‘沙和尚’}
提取字典中所有的键dict.keys()
提出来的键是元组形式应该用list转化为列表
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(group.keys())
#dict_keys(['师父', '大师兄', '二师兄', '沙师弟'])
#打印出了所有字典的键,但是都是元组的形式group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(list(group.keys()))
#['师父', '大师兄', '二师兄', '沙师弟']
提取字典中所有的键值对dict.items()
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(group.items())
dict_items([(‘师父’, ‘唐三藏’), (‘大师兄’, ‘孙行者’),(‘二师兄’, ‘猪八戒’), (‘沙师弟’, ‘沙和尚’)])
通过键获取字典对应的值dict.get('键','*')
当键不存在时,不会报错,而是默认返回none,也可以通过第二个参数设置不存在时的默认返回值。
🥕布尔值相关
- bool() 检查数值的真假
| 假 | 真 |
|---|---|
| 0 | 任意整数/浮点数 |
| ‘’(空字符串) | ‘嘿嘿’(字符串) |
| [](空列表) | [1,2,3] |
| {}(字典) | {1:‘a’,2:‘b’} |
| None |
- if自动进行布尔类型转换
- 比较运算符产生布尔值
- 成员运算符产生布尔值
in属于 ,如果值在指定序列里,条件为真not in不属于, 如果值不在指定序列里,条件为真- 例:
print('He'in'Hello'),True
- 逻辑运算符产生布尔值
and且 连接两个布尔值,如果两个都为真,该条件才为真or或 连接两个布尔值,如果有一个为真,该条件即为真not非 反逻辑状态,a为True,not a则为False,反之亦然
📚循环
和C思想都一样,就是语法上有一点差别
🐇for循环

-
for…in range():处理指定次数的循环

-
列表生成式:
y = [表达式 for x in range(A,B) if 条件]y = [] for x in range(1,11):if x%2 == 1:y.append(x*x) print(y)就等价于
y = [ x*x for x in range(1,11) if x%2 == 1] -
zip函数+for循环
# 客人编号 ids = [1, 2, 3] # 客人名字 names = ['派大星', '章鱼哥', '珊迪'] # 遍历按编号、名字顺序组合起来的数据 for id, name in zip(ids, names):print(str(id) + '号:' + name) ''' 输出: 1号:派大星 2号:章鱼哥 3号:珊迪 ''' -
enumerate函数+for循环
# 等待就餐的客人列表 names = ['派大星', '章鱼哥', '珊迪'] # 遍历按序号、名字组合起来的数据 for id, name in enumerate(names, 1):print(str(id) + '号:' + name) ''' 输出: 1号:派大星 2号:章鱼哥 3号:珊迪 '''
🐇while循环

- 当条件为真时,执行循环语句,只要条件为真,便会一直循环
- 在编程中,一个靠自身控制无法终止的程序称为 死循环。为了避免写出死循环,我们要保证循环条件最终可以变为 False。进入死循环,按Ctrl+C及时终止
🐇while循环和for循环比较
- for擅长处理固定次,自动遍历各序列
- while处理不定次数的循环,条件为False便停止
🐇循环进阶
-
break如果满足条件,则结束循环# 店里现在还剩 3 份食材 left = 3for i in range(1, 6):print('为第' + str(i) + '位客人做一份蟹黄堡')left -= 1if left == 0:breakprint('食材没有了,明天再来吧')''' 输出: 为第1位客人做一份蟹黄堡 为第2位客人做一份蟹黄堡 为第3位客人做一份蟹黄堡 食材没有了,明天再来吧 ''' -
continue如果满足条件,则跳过当前循环的剩余语句,直接开始下一轮循环# 建立一个列表,储存客人的名字 names = ['泡芙老师', '珊迪', '痞老板', '章鱼哥']for name in names:if name == '痞老板':print('海绵宝宝拒绝给痞老板做蟹黄堡')continueprint('给' + name + '做一份蟹黄堡') ''' 输出: 为泡芙老师做一份蟹黄堡 为珊迪做一份蟹黄堡 海绵宝宝拒绝给痞老板做蟹黄堡 为章鱼哥做一份蟹黄堡 ''' -
循环嵌套:即循环中有循环
📚函数
- 函数是组织好的、可以重复使用的、用来实现单一功能的代码
- 函数类型可分为自定义函数和内置函数,自定义函数是需要自己定义,而内置函数是python内部已经定义好的函数,比如print()、input()等
🐇函数定义的语法

def circle(r):c = 2 * 3.14 * r# 先打印计算结果print('该圆的周长是' + str(c))# 函数体最后一行加上 return 语句return cresult = circle(2)
print(result)
🥕参数的类型
-
位置参数:调用的时候直接以一个量对应函数形参的相应位置,因此位置不能随意更换

-
关键字参数:调用的时候,在那个量之前加上称号,相当于给那个量标了名字。即按参数名 = 值的格式传入参数

-
默认参数:为了减少重复输入

-
不同参数之间的规则
- Python 在解析参数时,是优先考虑 位置参数 的,所以位置参数一定要放在关键字参数之前。
- 默认参数一定要放在最后面
🥕变量作用域
-
局部变量:只能函数内或者一定代码块内生效
-
全局变量:在全局内生效的变量
global:将局部变量转化为局部变量- python内置函数
-
如果局部变量和全局变量的名称相同,那函数内部会有限访问局部变量,外部会访问全局变量。
school = '双叶幼儿园'def welcome():school = '春日部幼儿园'print('欢迎来到' + school)welcome() # 访问的 school 是函数内的局部变量 # 输出:欢迎来到春日部幼儿园print('欢迎来到' + school) # 访问的 school 是全局变量 # 输出:欢迎来到双叶幼儿园
-
但加了global的局部变量会自动取代它之前定义的全局变量并一直沿用下去。
📚类与对象
- 类:具有相同属性和方法的对象的抽象 实例:类的个例
- 对象:Python中的对象是类和实例的集合,类可以看作是对象,实例也可以看作是对象
🐇类的创建

- 定义类之后,首先要把类实例化,再通过
实例名.属性名和实例名.方法名()来调用类的属性和方法。 - 定义类的方法时,self 用来代表类创建的实例,千万别忘了它;
- 如果要在方法内部调用类的其他方法和属性,也要成
self.属性名或self.方法名()才不会报错。 - 定义类的方法时,第一个参数 self 不能丢,调用方法时要忽略;Python 是== 强制性== 地将 实例对象本身 传递给类方法的 第一个参数

🐇类的继承
class 子类名(父类名),继承不只是子类继承父类的属性和方法,当父类还有自己的父类时,子类也能继承父类的父类的属性和方法

- 新增 :指在继承父类的属性和方法的基础上添加自己独有的属性或方法。比如:师傅传授给你一套武功,你自己又练了别的功法,这样你就既继承了师傅的功法,也独创了自己的功法。
- 重写 指在继承父类的属性和方法的基础上重写父类的属性和方法。比如:师傅传授给你一套武功,你对其进行了改进,同样的功法就变成你的独创功法。

📚模块
🐇模块类型
🥕内置模块
-
time模块

-
datetime 模块
-
datetime日期获取

-
timedelta()用于日期计算

-
-
random模块

-
math模块
🐇模块和模块对象导入方法

🥕程序入口
- 如果
abc.py以导入的方式被运行,那 abc.py 中的__name__值就是'abc'; - 如果
abc.py被直接运行,那 abc.py 中__name__的值会被改为'__main__'。
# other.py
print('我是 other 模块')if __name__ == '__main__':print('other 模块被直接运行了')# main.py
import otherprint('我是 main 模块')if __name__ == '__main__':print('main 模块被直接运行了')
'''
输出:
我是 other 模块
我是 main 模块
main 模块被直接运行了
'''
相关文章:
python基础 | python基础语法
文章目录📚基础语法🐇输入和输出🥕print()输出🥕input()输入🐇 变量的命名🐇条件判断🥕单向判断🥕双向判断🥕多向判断🥕if嵌套🥕三元表达式&#…...
YOLOv6-3.0-目标检测论文解读
文章目录摘要算法2.1网络设计2.2Anchor辅助训练2.3自蒸馏实验消融实验结论论文: 《YOLOv6 v3.0: A Full-Scale Reloading 》github: https://github.com/meituan/YOLOv6上版本参考 YOLOv6摘要 YOLOv6 v3.0中YOLOv6-N达到37.5AP,1187FPS&…...
JAVA集合之Map >>HashMap/Hashtable/TreeMap/LinkedHashMap结构
Map 是一种键-值对(key-value)集合,键不可以重复,值可以重复。常见的实现类有:HashMap、Hashtable、TreeMap、LinkedHashMap等。 HashMap&Hashtable HashMap:数据结构为哈希表,允许使用 n…...
JavaScript从零开始 学习记录(一)
前言 选择视频课程之前,不仅查阅了资料,还询问了网友,最终敲定了学习黑马前端的视频教程,学了5小节,发现挺对自己口味的且从反响来看,还是相当不错的,便打算利用这个寒假学完 笔记范围 从这节…...
C++项目——高并发内存池(3)--central cache整体设计
1.central cache的介绍 1.1框架思想 1.1.1哈希映射 centralcache其实也是哈希桶结构的,并且central cache和thread cacha的哈希映射关系是一致的。目的为了,当thread cache某一个哈希桶下没有内存块时,可以利用之前编写的SizeClass::Index…...
Spring Boot 整合 MyBatis 配置等案例教程
运行环境:JDK 7 或 8、Maven 3.0 技术栈:SpringBoot 1.5、SpringBoot Mybatis Starter 1.2 、MyBatis 3.4 前言 距离第一篇 Spring Boot 系列的博文 3 个月了。《Springboot 整合 Mybatis 的完整 Web 案例》第一篇出来是 XML 配置 SQL 的形式。虽然 XM…...
比特数据结构与算法(第三章_下)队列的概念和实现(力扣:225+232+622)
一、队列(Queue)队列的概念:① 队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。② 入队列,进行插入操作的一端称为 队尾。出队列,进行删除操作的一端称为 队头。③ 队列中的元素…...
c++提高篇——STL容器实现打分系统
一、案例说明 有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。 二、案例实现 在实现这个系统时,我们规划一下实现的步骤以及细节: 1、创建一个选手类&#x…...
【图片上传记录三】element-ui组件详解与封装(自定义上传、限制文件大小、格式以及图片尺寸)
业务上有需求是前端上传 jpg/png/gif 格式, 并且 尺寸为 150px * 150px,300px*300px,428*428px 的图片 同时在上传的同时需要携带用户的个人信息以及其他额外信息 因此在 element-upload 基础之上 实现这个需求需要在上传前检查图片的大小,格式以及尺寸如何上传也成…...
一个golang版本管理工具
GitHub - moqsien/gvc: GVC is a productive tool to manage your dev environment for multi platforms and machines. | GVC 是一个用于快速配置和管理多机器跨平台的开发环境的生产力工具。 目前,gvc拥有以下功能或特点: go编译器自动安装和添加环…...
SpringBoot整合Spring Security过滤器链加载执行流程源码分析
文章目录1.引言2.Spring Security过滤器链加载1.2.注册名为 springSecurityFilterChain的过滤器2、查看 DelegatingFilterProxy类3.查看 FilterChainProxy类3.1 查看 doFilterInternal方法。3.2 查看 getFilters方法。4 查看 SecurityFilterChain接口5 查看 SpringBootWebSecur…...
Jest使用
一、测试到底测什么 提到测试的时候,即使是最简单的一个代码块可能都让初学者不知所措。最常问的问题的是“我怎么知道要测试什么?”。如果你正在写一个 Web 应用,那么你每个页面每个页面的测试用户交互的方式,就是一个很好的开端…...
定位于企业数字化底座,开箱可用(spring cloud+Vue)基础框架,赶紧收藏!
项目介绍:JVS是什么?JVS是企业级应用构建的基础脚手架,提供开箱即用的基础功能集成,其中集成了账户管理、租户管理、用户权限体系、三方登录、环境配置、各种业务日志等功能,还提供了对接低代码、数据中台的能力。JVS能…...
java字符统计
问题描述 给定一个只包含大写字母的字符串 � S, 请你输出其中出现次数最多的字符。 如果有多个字母均出现了最多次, 按字母表顺序依次输出所有这些字母。 输入格式 一个只包含大写字母的字符串 � S. 输出格式 若干个大写字母,代表答案。 …...
C#:Krypton控件使用方法详解(第八讲) ——kryptonBreadCrumb
今天介绍的Krypton控件中的kryptonBreadCrumb,下面开始介绍这个控件的属性:首先要介绍的是RootItem属性和外观属性:RootItem属性组中包含属性如下:image属性:代表在文字对象的前方插入一个图片,属性值如下图…...
2023从0开始学性能(1) —— 性能测试基础【持续更新】
背景 不知道各位大佬有没遇到上面的情况,性能这个东西到底是什么,还是以前的358原则吗?明显并不是适用于现在了。多次想踏入性能测试门槛都以失败告终,这次就以系列的方式来督促自己真正踏进性能测试的门槛。 什么是性能测试 通…...
如何通过一台 iPhone 申请一个 icloud 邮箱账号 后缀为 @icloud.com
总目录 iOS开发笔记目录 从一无所知到入门 文章目录需求关键步骤步骤后续需求 在 iPhone 自带的邮箱软件中添加账号,排第一位的是 iCloud 邮箱: 选 iCloud 之后: 提示信息是exampleicloud.com,也就是说是有icloud.com为域的邮箱…...
SQL89 计算总和
描述OrderItems表代表订单信息,包括字段:订单号order_num和item_price商品售出价格、quantity商品数量。order_numitem_pricequantitya110105a211100a21200a421121a5510a2119a775【问题】编写 SQL 语句,根据订单号聚合,返回订单总…...
Netty高级应用之:编解码器与群聊天室开发
Netty高级应用之:编解码器与群聊天室开发 文章目录Netty高级应用之:编解码器与群聊天室开发Netty编解码器Java的编解码Netty编解码器概念解码器(Decoder)编码器(Encoder)编码解码器CodecNetty案例-群聊天室聊天室服务端编写聊天室客户端编写Netty编解码器…...
Vue的生命周期
Vue的生命周期是指Vue实例从创建到销毁的过程,它包括了以下几个阶段:初始化、编译、挂载、更新、渲染和销毁。 初始化:Vue实例创建时,会执行初始化过程,主要包括以下几个步骤: 初始化数据:Vue…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...




