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

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)
    \ddd 1到3位八进制所代表的任意字符
    \xhh 1到2位十六进制所代表的任意字符

🥕input()输入


🐇 变量的命名

  1. 只能是一个词;
  2. 只能包含字母、数字和下划线;
  3. 不能以数字开头;
  4. 尽量描述包含的数据内容;
  5. 不要使用python函数名和关键字。

🐇条件判断

🥕单向判断

如果条件成立,就执行语句

 number = 6if number > 3:pirnt(number)

注意格式!

  • if后面要加冒号,判断条件不用括号。
  • 同时执行语句要缩进!

🥕双向判断

if…else… 条件成立执行if语句 ,否则执行else语句

🥕多向判断

多选一,让计算机最先判断最难满足的条件,ifelifelse 三个及其以上条件的判断

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() :将数据转换为列表类型
    a = 'python基础'
    print(list(a))
    
    [‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘基’, ‘础’]

🐇四则运算

在这里插入图片描述
运算优先级:从左到右顺着来,括号里的优先算,乘除排在加减前。


🐇数据的常用语法

🥕列表语法

👀列表特点

  • 项目之间有先后顺序
  • 列表内容可以编辑
  • 可记录的项目各式各样
  • 示例:students=[A, B, C, D]
    • 一般推荐逗号与下一个元素之间加一个空格
    • 在实际写代码的过程中,统一段代码不要出现函数名和列表名相同的情况,不然会报错。

👀列表的操作

对列表元素的处理

  1. ⚠️由索引取元素

    • 正向索引print(students[2]) ,列表中正向索引是从0开始数的
    • 反向索引print(students[-1]) ,反向索引倒数几个从-1开始数
  2. ⚠️查列表元素索引列表.index(元素内容),关注从0开始索引

  3. ⚠️列表元素的修改列表[索引] = 新值

  4. ⚠️列表元素的添加

    • ⭐️直接添加(默认在列表末尾添加):列表.append(元素)
      • 用append时不能对列表赋值,以下输出None,第二行语法错误
        list = ['松','竹']
        list = list.append('梅')
        print(list)
        
      • append不能一次添加多个元素,以下TypeError: append() takes exactly one argument (2given)
        ist = ['松','竹']
        list.append('梅','岁寒三友')
        print(list)
        
    • ⭐️在列表中间某个位置插入一个元素列表.insert(9,元素),即在第10位插入B,此时排在插入值后的索引值自动+1
  5. ⚠️列表元素的删除

    • ⭐️列表.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(值):在列表中找到的第一个指定的值,然后将它删除
  6. ⚠️列表的分片:列表层面的提取,一次提取若干个元素,提出来的是列表

    • 列表[起始索引:结束索引]例:若要获取第三到第五个元素,应为列表[2,5]
    • 若是从头开始,则可写为列表[:3],同理最后可为列表[10:],也可用反向索引列表[-4:]
    • 列表分片必须用整数而不可以用浮点数,因此和/运算符相关的要把结果转化为整数

对列表的处理

  1. ⚠️列表的修改(同样是使用赋值语句,注意是对列表的赋值)

    list =  ['松','竹','梅']
    list[:] = ['岁寒三友']
    print(list)
    

    [‘岁寒三友’]

    list = ['松','竹','梅'] 
    list[:] = '岁寒三友' 
    print(list)
    

    [‘岁’, ‘寒’, ‘三’, ‘友’]

  2. ⚠️统计列表中某元素出现的次数列表.count(元素)

  3. ⚠️排序列表.sort()字符串列表默认按首字母排列,数值列表默认是从小到大排列

  4. ⚠️反转列表.reverse

  5. ⚠️复制列表.copy()若直接A=B,不是复制,只不过是给列表改了个名字

  6. ⚠️清空列表.clear()

  7. ⚠️列表的删除del 列表[分片]

  8. ⚠️列表的增加 (列表的增加叫作列表的合并会更合理), 使用符号’+’

    • 符号’+'只能用在列表之间,不能用在列表和元素之间
    • 顺序:在加号前的元素排在新列表的前面
  9. ⚠️列表的乘法列表*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基础语法

文章目录&#x1f4da;基础语法&#x1f407;输入和输出&#x1f955;print()输出&#x1f955;input()输入&#x1f407; 变量的命名&#x1f407;条件判断&#x1f955;单向判断&#x1f955;双向判断&#x1f955;多向判断&#x1f955;if嵌套&#x1f955;三元表达式&#…...

YOLOv6-3.0-目标检测论文解读

文章目录摘要算法2.1网络设计2.2Anchor辅助训练2.3自蒸馏实验消融实验结论论文&#xff1a; 《YOLOv6 v3.0: A Full-Scale Reloading 》github&#xff1a; https://github.com/meituan/YOLOv6上版本参考 YOLOv6摘要 YOLOv6 v3.0中YOLOv6-N达到37.5AP&#xff0c;1187FPS&…...

JAVA集合之Map >>HashMap/Hashtable/TreeMap/LinkedHashMap结构

Map 是一种键-值对&#xff08;key-value&#xff09;集合&#xff0c;键不可以重复&#xff0c;值可以重复。常见的实现类有&#xff1a;HashMap、Hashtable、TreeMap、LinkedHashMap等。 HashMap&Hashtable HashMap&#xff1a;数据结构为哈希表&#xff0c;允许使用 n…...

JavaScript从零开始 学习记录(一)

前言 选择视频课程之前&#xff0c;不仅查阅了资料&#xff0c;还询问了网友&#xff0c;最终敲定了学习黑马前端的视频教程&#xff0c;学了5小节&#xff0c;发现挺对自己口味的且从反响来看&#xff0c;还是相当不错的&#xff0c;便打算利用这个寒假学完 笔记范围 从这节…...

C++项目——高并发内存池(3)--central cache整体设计

1.central cache的介绍 1.1框架思想 1.1.1哈希映射 centralcache其实也是哈希桶结构的&#xff0c;并且central cache和thread cacha的哈希映射关系是一致的。目的为了&#xff0c;当thread cache某一个哈希桶下没有内存块时&#xff0c;可以利用之前编写的SizeClass::Index…...

Spring Boot 整合 MyBatis 配置等案例教程

运行环境&#xff1a;JDK 7 或 8、Maven 3.0 技术栈&#xff1a;SpringBoot 1.5、SpringBoot Mybatis Starter 1.2 、MyBatis 3.4 前言 距离第一篇 Spring Boot 系列的博文 3 个月了。《Springboot 整合 Mybatis 的完整 Web 案例》第一篇出来是 XML 配置 SQL 的形式。虽然 XM…...

比特数据结构与算法(第三章_下)队列的概念和实现(力扣:225+232+622)

一、队列&#xff08;Queue&#xff09;队列的概念&#xff1a;① 队列只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表。② 入队列&#xff0c;进行插入操作的一端称为 队尾。出队列&#xff0c;进行删除操作的一端称为 队头。③ 队列中的元素…...

c++提高篇——STL容器实现打分系统

一、案例说明 有5名选手:选手ABCDE&#xff0c;10个评委分别对每一名选手打分&#xff0c;去除最高分&#xff0c;去除评委中最低分&#xff0c;取平均分。 二、案例实现 在实现这个系统时&#xff0c;我们规划一下实现的步骤以及细节&#xff1a; 1、创建一个选手类&#x…...

【图片上传记录三】element-ui组件详解与封装(自定义上传、限制文件大小、格式以及图片尺寸)

业务上有需求是前端上传 jpg/png/gif 格式, 并且 尺寸为 150px * 150px,300px*300px,428*428px 的图片 同时在上传的同时需要携带用户的个人信息以及其他额外信息 因此在 element-upload 基础之上 实现这个需求需要在上传前检查图片的大小&#xff0c;格式以及尺寸如何上传也成…...

一个golang版本管理工具

GitHub - moqsien/gvc: GVC is a productive tool to manage your dev environment for multi platforms and machines. | GVC 是一个用于快速配置和管理多机器跨平台的开发环境的生产力工具。 目前&#xff0c;gvc拥有以下功能或特点&#xff1a; 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使用

一、测试到底测什么 提到测试的时候&#xff0c;即使是最简单的一个代码块可能都让初学者不知所措。最常问的问题的是“我怎么知道要测试什么&#xff1f;”。如果你正在写一个 Web 应用&#xff0c;那么你每个页面每个页面的测试用户交互的方式&#xff0c;就是一个很好的开端…...

定位于企业数字化底座,开箱可用(spring cloud+Vue)基础框架,赶紧收藏!

项目介绍&#xff1a;JVS是什么&#xff1f;JVS是企业级应用构建的基础脚手架&#xff0c;提供开箱即用的基础功能集成&#xff0c;其中集成了账户管理、租户管理、用户权限体系、三方登录、环境配置、各种业务日志等功能&#xff0c;还提供了对接低代码、数据中台的能力。JVS能…...

java字符统计

问题描述 给定一个只包含大写字母的字符串 &#xfffd; S, 请你输出其中出现次数最多的字符。 如果有多个字母均出现了最多次, 按字母表顺序依次输出所有这些字母。 输入格式 一个只包含大写字母的字符串 &#xfffd; S. 输出格式 若干个大写字母&#xff0c;代表答案。 …...

C#:Krypton控件使用方法详解(第八讲) ——kryptonBreadCrumb

今天介绍的Krypton控件中的kryptonBreadCrumb&#xff0c;下面开始介绍这个控件的属性&#xff1a;首先要介绍的是RootItem属性和外观属性&#xff1a;RootItem属性组中包含属性如下&#xff1a;image属性&#xff1a;代表在文字对象的前方插入一个图片&#xff0c;属性值如下图…...

2023从0开始学性能(1) —— 性能测试基础【持续更新】

背景 不知道各位大佬有没遇到上面的情况&#xff0c;性能这个东西到底是什么&#xff0c;还是以前的358原则吗&#xff1f;明显并不是适用于现在了。多次想踏入性能测试门槛都以失败告终&#xff0c;这次就以系列的方式来督促自己真正踏进性能测试的门槛。 什么是性能测试 通…...

如何通过一台 iPhone 申请一个 icloud 邮箱账号 后缀为 @icloud.com

总目录 iOS开发笔记目录 从一无所知到入门 文章目录需求关键步骤步骤后续需求 在 iPhone 自带的邮箱软件中添加账号&#xff0c;排第一位的是 iCloud 邮箱&#xff1a; 选 iCloud 之后&#xff1a; 提示信息是exampleicloud.com&#xff0c;也就是说是有icloud.com为域的邮箱…...

SQL89 计算总和

描述OrderItems表代表订单信息&#xff0c;包括字段&#xff1a;订单号order_num和item_price商品售出价格、quantity商品数量。order_numitem_pricequantitya110105a211100a21200a421121a5510a2119a775【问题】编写 SQL 语句&#xff0c;根据订单号聚合&#xff0c;返回订单总…...

Netty高级应用之:编解码器与群聊天室开发

Netty高级应用之&#xff1a;编解码器与群聊天室开发 文章目录Netty高级应用之&#xff1a;编解码器与群聊天室开发Netty编解码器Java的编解码Netty编解码器概念解码器(Decoder)编码器(Encoder)编码解码器CodecNetty案例-群聊天室聊天室服务端编写聊天室客户端编写Netty编解码器…...

Vue的生命周期

Vue的生命周期是指Vue实例从创建到销毁的过程&#xff0c;它包括了以下几个阶段&#xff1a;初始化、编译、挂载、更新、渲染和销毁。 初始化&#xff1a;Vue实例创建时&#xff0c;会执行初始化过程&#xff0c;主要包括以下几个步骤&#xff1a; 初始化数据&#xff1a;Vue…...

MySQL —— 数据库基础

文章目录1. centos7 安装Mysql2. 数据库的概念3. 数据库下创建库&#xff0c;表4. 库&#xff0c;表 的本质5. 数据库服务器 和 库 &#xff0c;表的关系6. MySQL架构7. 存储引擎前言&#xff1a; 数据库是对数据进行管理的软件。1. centos7 安装Mysql 需要把系统自带的MySQL给…...

多线程知识点

多线程 基本知识 创建线程的常用三种方式&#xff1a; 继承Thread类实现Runnable接口实现Callable接口&#xff08;JDK1.5>&#xff09; public class ThreadTest extends Thread {Overridepublic void run() {System.out.println(this.getName() "..开始.."…...

有序表之红黑树

文章目录1、五个条件2、调整策略2.1 插入调整的情况2.1.1 情况一&#xff1a;插入节点是红色&#xff0c;其父节点也是红色2.1.2 情况二2.1.2 代码实现2.2 删除调整的情况2.2.1 情况一&#xff1a;双重黑节点的兄弟节点也是黑色&#xff0c;且其兄弟的两个孩子也是黑色2.2.2 情…...

HTTP状态码都有哪些?

100&#xff1a;客户必须继续发出请求 101&#xff1a;客户要求服务器根据请求转换HTTP协议版本 二&#xff1a;2xx 200&#xff1a;交易成功 201&#xff1a;提示知道新文件的URL 202&#xff1a;接受和处理、但处理未完成 203&#xff1a;返回信息不确定或不完整 204&#…...

Sketch+摹客,100M文件上传最快47s

哈喽&#xff0c;小摹来啦~ 去年12月底&#xff0c;摹客Sketch插件上新了「规范检查工具」&#xff0c;自功能上线以来&#xff0c;小摹收到了许多的好评及赞扬。 虽好评如潮&#xff0c;但我们不会止步不前&#xff0c;将持续攻克难点&#xff0c;旨在为大家提供更加稳定高效…...

关系型数据之分区分表分库

文章目录1.为什么需要分区分表分库2.各种分区分表分库的情况3.弊端3.1分区弊端3.2分表分库弊端1.为什么需要分区分表分库 数据量达到一定规模&#xff0c;进行常规的sql语句优化已经效果不大的情况下&#xff0c;常见为mysql数据库&#xff0c;单表的记录达到1000W和空间占用至…...

微信小程序:基本开发相关文档

1、微信公众平台&#xff08;后台登录页&#xff09;&#xff1a;https://mp.weixin.qq.com/2、微信小程序官网文档&#xff08;组件api等&#xff09;&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/audio.html3、微信开放社区&#xff08;问题社区…...

Win10关闭自动更新

Win10关闭自动更新第一步&#xff1a;修改电脑系统时间第二步&#xff0c;设置自动更新时间第三步&#xff1a;再次修改系统时间为正确时间因为国内使用的操作系统&#xff0c;很多‍是非正版的系统&#xff0c;如果更新了系统&#xff0c;很容易造成电脑蓝屏&#xff0c;系统运…...

Embedding 理解

Word Embedding 单词表示最简单的是 one-hot 但是它的缺点是 矩阵表示过于稀疏&#xff0c;占用空间对相关的词语无法得知它们的含义是相近的。 Word Embedding 解决了上述两个缺点&#xff0c;一个 Word Embedding 直观的例子如下图所示。 每个维度表示一个特征&#xff0…...

工业树莓派和PLC怎么选?

一、 什么是虹科工业树莓派 1、树莓派 在了解虹科工业树莓派之前&#xff0c;首先要了解一下什么是树莓派。树莓派是一款基于ARM的小型电脑&#xff0c;在树莓派上提供丰富的接口&#xff0c;能够实现较多功能。它同样是开发人员的最爱&#xff0c;其搭载Linux系统&#xff0…...