Python从零到就业

news2024/11/24 18:32:03

Python面向对象编程五步曲

  • 基础阶段
    • 01-Python的注释
    • 02 乱码原因
    • 02-Python变量
    • 03-数据类型
    • 04-数据类型转换
    • 05-Python运算符
    • 06-Python输入
    • 07-Python输出
    • 08-占位格式符(补充)
    • 09-Python分支
    • 10-Python循环(while)
    • 11-Python循环(for)
    • 12-Python循环打断
    • 待更新

基础阶段

01-Python的注释

  1. 什么是注释?
    一段文字性的描述
  2. 注释的特性?
    (1)、当程序被处理的时候,这些注释会被自动忽略。
    (2)、不会被当做代码处理
  3. 注释应用场景:
    (1)、帮助我们自己理清楚代码逻辑
    (2)、与别人合作开发时,添加注释,可以减少沟通成本
    (3)、开发模块的时候添加注释可以减少他人使用成本
    (4)、可以临时注释一段代码, 方便调试
  4. 注释的分类:
#单行注释

'''
多行注释
'''

"""
多行注释
"""

特殊注释1:为了能够在linux下以./+文件名.py方式运行代码,需要在py文件中添加
#!/usr/bin/python
#!/usr/bin/env python

特殊注释2:以什么编码方式解析文件,python2默认不支持中文,需要加上;python3直接中文支持,不需要加
# encoding=utf-8
# coding=utf-8
正规的Python推荐写法:# _*_ coding:utf-8 _*_

02 乱码原因

字符编码规定了:
(1)按照怎样的规范把字符转换成数字?

(2)按照怎样的方式存储数字(如: 用多少个字节?)

在将字符存储到内存时就会面临两个问题:
(1)编码:按照什么规范将字符转换成0-1二进制进行存储
(2)解码:按照什么规范将存储的0-1二进制转换成字符

正是解码和编码这两个过程不统一,才会导致读取的文件发生乱码。

为什么有这么多字符码?

  • 一开始英语主要包括26个字母(大小写)、10个数字、标点符号、控制符等等的编码关系,最终就制定了ASCII字符编码, 映射了字符和字符码的关系, 并使用一个字节的后七位(0 - 127)来存储
  • 随着计算机的普及,对ASCII码进行了扩展,叫 EASCII编码; 还是一个字节, 从128 – 255;
  • 后来, 由国际标准化组织(ISO) 以及国际电工委员会(IEC)联合制定了一个标准 ISO/8859-1(Latin-1), 继承了CP437的128-159; 重新定义了160-255;
  • 到了中国,自己搞了一个GB2312来存储中文, 6763个汉字;(双字节, 兼容ASCII);GB2312之上的扩充即GBK,包含了繁体字, 藏文, 蒙文等等。
  • 为了统一各国编码,统一联盟国际组织, 提出了Unicode编码; 涵盖了世界上所有的文字, 每一个字符都有对应的唯一一个字符码

02-Python变量

1. 怎样定义变量:

  • 方式1:
    变量名 = 值
a = 2
print(a)#输出  2
  • 方式2:
    变量名1,变量名2 = 值1,值2
a,b = 1,2
print(a,b) #输出:1 2
  • 方式3:
    变量名1 = 变量名2 = 值
a = b = 2
print(a,b)输出:2 2

2. 为什么要产生变量

  • 方便维护,使用变量来维护一系列值
  • 节省空间,缩小源码文件占比,节省磁盘空间

03-数据类型

1. 为什么要区分数据类型?

  • 区分存储空间,为不同的数据类型分配不同大小的存储空间
    • 赋值语句a=2,该赋值语句会开辟一段存储空间,并将该存储空间的唯一标识返回给 a a a,以后就可以通过 a a a来找到这一段存储空间。
    • 赋值语句将 2 2 2赋值给 a a a,那么会分配 4 4 4字节的空间去存储该数字,可以有效的避免存储空间的浪费。
  • 根据不同数据类型的特性,做不同的数据处理
#例如,根据不通的数据类型进行不同的+操作
print(6+6)#输出:12
print("6"+"6")#输出:66

2.数据类型:

常用数据类型例子
Numbers(数值类型) i n t 、 l o n g 、 f l o a t 、 c o m p l e x int、long、float、complex intlongfloatcomplex
Bool(布尔类型) T r u e 、 F a l s e True、False TrueFalse
String(字符串) ′ s t r ′ 、 ′ ′ ′ s t r ′ ′ ′ 、 " s t r " 、 " " " s t r " " " 'str'、'''str'''、"str"、"""str""" strstr"str""""str"""
List(列表) [ 1 , 2 , 3 ] [1,2,3] [1,2,3]
Set(集合) [ s e t ( [ 1 , 2 ] ) [set([1, 2]) [set([1,2])
Tuple(元组) ( " 小 王 " , 18 ) ) ("小王", 18)) ("",18))
Dictory(字典) n a m e : " 王 顺 子 " , a g e : 18 {name: "王顺子", age: 18} name:"",age:18
NoneType(空类型) N o n e None None

P y t h o n 3 Python3 Python3 l o n g long long类型,会自动根据数值大小,调整 i n t int int字节长度

3. 查看类型:
t y p e ( ) type() type()

num = 6
print(type(num))#<class 'int'>

这个类型是属于数值的,不是属于变量的。type会根据num的引用找到数值所在地,然后输出该数值的类型。

04-数据类型转换

1. 概念:
将一个数据转换成指定的类型, 方便处理

2.应用场景举例:
银行存钱:

money = input("输入你要存储的金额")
total_money = 20+ money

此时就会报错:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

因为 i n t int int类型的20不能和 S t r i n g String String类型的 m o n e y money money进行相加。

因此,需要进行数据转换。

3.方式:
m o n e y money money改成 i n t int int类型:
i n t ( ) int() int()方法

money = input("输入你要存储的金额")
total_money = 20+ int(money)

其余类型转化函数如下:
在这里插入图片描述


4. 面 试 补 充 \color{red}{4.面试补充} 4.

  • 动态类型/静态类型:
    • 静态类型:类型是编译的时候确定的,后期无法修改
      • J A V A JAVA JAVA中的数据类型, i n t a = 2 int a=2 inta=2,在编译时就已经确定 a a a的类型是 i n t int int了;
    • 动态类型:类型是运行时进行判定的, 可以动态修改
      • P y t h o n Python Python中的数据类型, a = 2 a=2 a=2,在运行时才会确定 a a a的类型是 i n t int int;且可以在后续运行中进行修改;
  • 强类型/弱类型
    • 强类型:类型比较强势, 不轻易随着环境的变化而变化。
      • P y t h o n Python Python就是强类型语言,如 p r i n t ( " a " + 1 ) print("a"+1) print("a"+1)在运行时会报错, P y t h o n Python Python不会将 1 1 1转为 s t r i n g string string类型;
    • 弱类型:类型比较柔弱, 不同的环境下, 很容易被改变。
      • J a v a Java Java就是弱类型语言,如 S y s t e m . o u t . p r i n t ( " a " + 1 ) System.out.print("a"+1) System.out.print("a"+1)在运行时不会报错,输出 " a 1 " "a1" "a1" J a v a Java Java会将 1 1 1转为 s t r i n g string string类型再进行运算;

05-Python运算符

1.算数运算符:

算数运算符名称
+加法运算符
-减法运算符
*乘法运算符
**幂运算符
/除法运算符
//整除运算符
%求模运算符
=赋值运算符

扩展:
整除和求余的应用场景:
假设存在一个数组,序号如下所示。
以序号 9 9 9的元素为例子,
获取 9 9 9的行号:9//4=2,即第2行
获取 9 9 9的列号:9%4=1,即第1列
在这里插入图片描述

2.复合运算符:

复合运算符
+= a + = b → a = a + b a+=b→a=a+b a+=ba=a+b
-= a − = b → a = a − b a-=b→a=a-b a=ba=ab
*= a ∗ = b → a = a ∗ b a*=b→a=a*b a=ba=ab
**= a ∗ ∗ = b → a = a ∗ ∗ b a**=b→a=a**b a=ba=ab
/= a / = b → a = a / b a/=b→a=a/b a/=ba=a/b
//= a / / = b → a = a / / b a//=b→a=a//b a//=ba=a//b
%= a % = b → a = a % b a\%=b→a=a\%b a%=ba=a%b

3.比较运算符:

比较运算符
>是否大于
<是否小于
!=是否不等于
<> P y t h o n 2. Python 2. Python2.的不等于, 3.0 3.0 3.0版本不支持
>=是否大于等于
<=是否小于等于
==是否等于
is对比唯一标识
链状比较运算符 10 < a < = 66 10<a<=66 10<a<=66

关于 i s : is: is
这里对比的是唯一标识,
如,赋值语句 a = 10 a=10 a=10,此时会开辟一段存储空间,并将存储空间的唯一标识返回给 a a a
i s is is比较的就是上述的唯一标识,可以理解为存储地址。
如下图:
在这里插入图片描述

这里 a a a b b b相等的原因是,它们值相等,为了提高性能, P y t h o n Python Python将这两个变量分配了相同的唯一标识

在这里插入图片描述
==比较的是只,is比较的是唯一标识


4.逻辑运算符:

逻辑运算符
not非,取反
and与(二元运算符)
or是否不等于
  • 非布尔类型的值, 如果作为真假来判定, 一般都是非零即真, 非空即真

  • 整个逻辑表达式的结果不一定只是 T r u e True True F a l s e False False

print(3 and 0) #输出 0
#上式bool值为False,输出为0标识走到0这才判断为False的

if 3 or 1:
    print(3 or 1)#输出为3
#上式bool值为True,输出为3标识走到3这就能判断为True

#上面的3为非空,也不是0,所以布尔值为True

#为空,布尔值为False
print(bool(""))#输出为False

06-Python输入

1. python2中:
P y t h o n 2 Python2 Python2中有两个输入函数:

  • r a w _ i n p u t ( ) raw\_input() raw_input()
    • 使用格式:result = raw_input('提示信息')
    • 功能:
      • 会等待用户输入内容,直到用户按下 E n t e r Enter Enter
      • 会将用户输入的内容当做"字符串",传递给接收的变量
  • i n p u t ( ) input() input()
    • 使用格式:result = input('提示信息')
    • 功能:
      • 会等待用户输入内容,直到用户按下 E n t e r Enter Enter
      • 会将用户输入的内容当做“代码”进行处理!

例子:

# _*_ coding:utf-8 _*_
#Python2环境下

result = raw_input('提示信息')#输入:1+1
print type(result)#输出:<class 'str'>
print result #输出:1+1

result = input('提示信息')#输入:1+1
print type(result)#输出:<class 'int'>
print result #输出:2

#python2中会将输入的部分不做处理的赋值给左部变量
result = input('提示信息')#输入:a+b
print result #报错:name 'abc' is not defined
#报错的原因是:result = a+b了,不做处理赋值给左部

#想输入字符串:
result = raw_input('提示信息')#输入:"a+b"
print type(result)#输出:<class 'str'>
print result #输出:a+b

2. python3中
P y t h o n 3 Python3 Python3中有一个输入函数:

  • i n p u t ( ) input() input()
    • 相当于 P y t h o n 2 Python2 Python2中的 r a w _ i n p u t ( ) raw\_input() raw_input()
    • 格式:result = input('提示信息')
    • 功能:
      • 会等待用户输入内容,直到用户按下 E n t e r Enter Enter
      • 会将用户输入的内容当做"字符串",传递给接收的变量

在这里插入图片描述

07-Python输出

Python2:

  • print语句:print xxx
print 123 #输出:123

Python3:

  • printh函数:print(values,sep,end,file,flush)
    • values:需要输出的值;多个值之间使用","进行分割
    • sep:分割符;多个值, 被输出出来之后, 值与值之间, 会添加指定的分隔符
    • end:输出完毕之后, 以指定的字符, 结束;默认是换行 ‘\n’
    • file:表示输出的目标;
      • 默认是标准的输出(控制台):file=sys.stdout
      • 还可以是一个可写入的文件句柄:
        f = open("xxx", "w");
        file=f
    • flush:表示立即输出的意思;
      • 需要输出的内容, 是先存放在缓冲区, 然后再输出到目标
      • flush, 就代表是否刷新缓冲区,让缓冲区的内容,立即输出到目标
      • flush值为Bool类型,默认为False

使用场景:

  • 输出一个值:

    • Python2.x:print 值
    • Python3.x:print(值)
  • 输出一个变量:

    • Python2.x:print 变量名
    • Python3.x:print(变量名)
  • 输出多个变量:

    • Python2.x:print 变量名1, 变量名2
    • Python3.x:print(变量名1, 变量名2)
  • 格式化输出:

    • Python2.x:
      • %写法:
        • print "随意内容...占位符1, ... , 占位符2, ..."%(变量1, 变量2)
        • print "我的名字是%s,年龄是%d"%("小王",12)
      • format写法:
        • print “随意内容…{索引}, … , {索引}, …”.format(值1, 值2)
        • print "我的名字是{0},年龄是{1}".format("小王",12)
    • Python3.x:
      • %写法:
        • print("随意内容...占位符1, ... , 占位符2, ..."%(变量1, 变量2))
        • 在这里插入图片描述
      • format写法:
        • print “随意内容…{索引}, … , {索引}, …”.format(值1, 值2)
        • 在这里插入图片描述
  • 输出到文件中:

    • Python2.x:
      file = open("test.txt","w")
      print>>file,"who am i"
    • Python3.x:
      file = open("test.txt","w")
      print("who am i",file=file)
  • 输出不自动换行

    • Python2.x:
      print a.
    • Python3.x:
      print("hello",end="")
  • 输出的各个数据,使用分割符分割
    print("hello","world",sep="---")

08-占位格式符(补充)

格式:
%[(name)][flags][width][.precision]typecode

中括号[]包含的部分表示是可选的,即可省略的。

  • (name):用于选择指定的名称对应的值
    即根据key获取具体值;

    • print("数学分数是%(math)d,英语分数是%(Eng)d" % {"Eng":60,"math":59})
      在这里插入图片描述
    • 当使用(name)时,后面带的是一个字典。好处在于可以摆脱原来的按序赋值
  • width:表示显示宽度

    • print("%4d" % (59))
      在这里插入图片描述
      输出的宽度为4,前面带有两个空格。默认是右对齐
  • flags

    • 空:表示右对齐

    • - :表示左对齐

      • print("%-4d|" % (59))
        在这里插入图片描述
    • 空格:表示在左侧填充一个空格

      • 应用场景:在正数的左侧填充一个空格,从而与负数对齐
      • print("|% d" % (59))
        在这里插入图片描述
    • 0:表示使用0填充

      • print("%04d" % (59))
        在这里插入图片描述
  • .precision:表示小数点后精度

    • print("%.2f" % (59.99999))
      在这里插入图片描述

typeCode:

  • i/d
    将整数、浮点数转换成十进制表示,并将其格式化到指定位置
    - 将二进制转成十进制输出:
    print("%d" % (0b1001))

  • o
    将整数转换成八进制表示,并将其格式化到指定位置

  • x
    将整数转换成十六进制表示,并将其格式化到指定位置

  • e/E
    将整数、浮点数转换成科学计数法,并将其格式化到指定位置(e/E输出的是小写/大写的e/E)

    • print("%E" % (10000))
      在这里插入图片描述
  • f/F
    将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

  • g/G
    自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e/E;)

    • print("%g" % (100000)); print("%g" % 20)
      在这里插入图片描述
  • c
    将数字转换成其unicode对应的值,10进制范围为 0 < = i < = 1114111 0<=i<=1114111 0<=i<=1114111(py27则只支持0-255);

    • print("%c" % 26666)
      在这里插入图片描述
  • 特殊:%
    想输出90%之类的加载值时,需要输入两个%,第一个%充当转义符

    • print("%d%%" % 30)
      在这里插入图片描述

09-Python分支

单分支判断
格式:

if 条件:
	当条件满足,执行语句

实例:

age=int(input("请输入年龄"))
if age>=18:
    print("你已成年")

双分支判断
格式:

if 条件:
	条件满足时,执行语句
else:
	条件不满足时,执行语句

实例:

age=int(input("请输入年龄"))
if age>=18:
    print("你已成年")
else:
    print("未满18岁")

练习案例:

根据分数区间, 打印出对应的级别

  • 大于等于90 并且 小于等于100
    输出优秀
  • 大于等于80 并且 小于90
    输出良好
  • 大于等于60 并且 小于80
    输出及格
  • 大于等于0 并且 小于60
    输出不及格
score = int(input("请输入成绩"))
if 90<=score<=100:
    print("优秀")
if 80<=score<90:
    print("良好")
if 60<=score<80:
    print("及格")
if 0<=score<60:
    print("不及格")

上述案例中,输入的成绩只会满足其中一个分支条件。但是在实际运行时,每个分支都会进行判断,导致效率低下。

可以考虑使用if嵌套

格式:

if 条件1:
	条件满足时,执行语句
else:
	#执行条件2判断
	if 条件2:
		条件满足时,执行语句
	else:
		……

实例:

score = int(input("请输入成绩"))
if 90<=score<=100:
    print("优秀")
else:
    if 80<=score<90:
        print("良好")
    else:
        if 60<=score<80:
            print("及格")
        else:
            print("不及格")

多分支判断
格式:

if 条件1:
	满足条件1,执行语句
elif 条件2:
	满足条件2,执行语句
else:
	都不满足,执行语句

案例:

score = int(input("请输入成绩"))
if 90<=score<=100:
    print("优秀")
elif 80<=score<90:
    print("良好")
elif 60<=score<80:
    print("及格")
else:
    print("不及格")

注意

  • t a b 缩 进 \color{red}{tab缩进} tab
    其他语言会根据大括号{}来识别代码块,但Python中没有{}语法。
    Python会根据缩进来识别代码块

如下面的两个分支语句,其中的else处于不同的缩进状态;第一个分支语句的else属于分支2的if,第二个分支语句的else属于分支1的if。

if 分支1判断条件:
	if 分支2判断条件:
		执行语句
	else:
		执行语句

if 分支1判断条件:
	if 分支2判断条件:
		执行语句
else:
	执行语句
  • 不建议写嵌套层级太深的代码
  • Python中没有类似于其他语言中的swith…case语法

10-Python循环(while)

使用场景:

  • 想要多次重复执行某些操作的时候
  • 想要遍历一个集合的时候

while循环

格式:

while 条件:
	条件满足时执行代码
  • 条件满足时, 才会执行循环体内部代码
  • 循环体内部代码被执行完毕后, 会继续下次条件判断, 确定是否需要继续执行循环体代码
  • 直到条件不满足时, 才会结束这次循环, 继续往下执行后续代码

流程图:
在这里插入图片描述
实例:
打印某句话10遍:

num = 0
while num<10:
    num+=1
    print(num,"打印10遍")

计算1-10数值的总和

num = ans = 0
while num<10:
    num+=1
    ans+=num
print(ans)

while else
格式:

while 条件:
	满足条件时
else :
	条件不满足时,执行的代码
  • 能够顺利执行完毕, 才会执行else
  • 否则不会(使用了break)

流程图:
在这里插入图片描述

实例:

num = ans = 0
while num<10:
    num+=1
    ans+=num
else:
    print(ans)#输出55

注意

  • 一定注意循环结束条件, 防止死循环
  • 在Python中, 没有类似于其他语言的do…while循环

11-Python循环(for)

使用场景

  • 重复性的执行一些操作
  • 更多的是遍历一个集合(字符串、列表)

语法:

for x in xxx:
	循环语句
  • xxx通常是一个集合
  • x:
    • 会取出集合中的每个元素,赋值给x
    • 在循环体中, 可以直接使用x的值
  • 当集合中的元素被遍历完毕,循环 就会结束

通常搭配range(n)函数使用,range(n)会生成0~n-1的整数列表

案例:

str = "abcdefg"
for s in str:
    print(s)
 
 '''
 输出:
a
b
c
d
e
f
g
 '''
 
 for i in range(10):
    print(i)
'''
输出:
0
1
2
3
4
5
6
7
8
9

'''

for与else连用:
格式:

for x in xxx:
	条件满足时的执行代码
else:
	条件不满足时执行的语句
  • 如果for循环可以顺利的执行完毕,则会执行else
  • 反之,使用了break则不会

案例:字符串反转:

str1 = "abcdefg"
str2 = ""
for s in str:
    str2 = s+str2
else:
    print(str2)#输出:gfedcba

12-Python循环打断

循环打断,会对while和for与else的连用产生影响:

  • 如果循环正常执行完毕, 则会执行else部分
  • 如果中途是因为打断而退出循环, 则不会执行else部分

break
打断本次循环, 跳出整个循环

如下,当i==2时执行break语句;break语句中断本次循环并跳出当前循环

for i in range(10):
    if i==2:
        break;
    print(i)
'''
0
1
'''

注意:break只会跳出一层循环

for j in range(2):
    for i in range(10):
        if i==2:
            break;
        print(i)
'''
输出:
0
1
0
1
'''

continue
结束本次循环, 继续执行下次循环

for i in range(10):
    if i==2:
        continue
    print(i)
'''
输出:(没有2了)
0
1
3
4
5
6
7
8
9
'''

待更新

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++输出四舍五入的一些小问题

嗯…今天刚去练了一会简单题 就我大一刚上学做的那种题&#xff0c;嗯&#xff0c;然后我发现我还是得调试&#xff0c;想骂人了&#xff0c;就啥样的题呢, 嗯,就这样的题&#xff0c;虽然我大一可能也过不了这种题&#xff0c;hh 现在题目里面要求一些四舍五入的问题 刚才没整…

网站都变成灰色的了,代码是怎么实现的呢?

今天来聊一聊页面的滤镜&#xff0c;或者说换肤更合适些。根据技术栈不同&#xff0c;页面换肤可以分为 web 端和 app 端&#xff0c;因此本文通过以下两部分介绍 PC 端 APP 端 一、PC 端 有关 PC 端的一键换肤&#xff0c;这个操作常用&#xff0c;所以大概率是有某个全局字…

Spring框架(三):SpringAop思想底层实现和日志应用(一):Spring代理实现

Spring框架&#xff08;三&#xff09;&#xff1a;SpringAop思想底层实现和应用&#xff08;日志&#xff09;引子Aop简介通过SpringBean实现Aop引子 痛定思痛&#xff0c;主要问题出现在自己雀氏不熟悉框架基础、一些面试题&#xff0c;以及sql的使用淡忘了。 本章节的开始是…

[附源码]计算机毕业设计springboot学生综合数据分析系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

java之NIO编程

NIO介绍 前面介绍了BIO为阻塞IO,其阻塞表现在两个方面:服务端等待客户端连接时的阻塞以及连接后没有发生数据传输时的阻塞。NIO是非阻塞IO,那么NIO是如何非阻塞的呢&#xff1f;带着这个疑问&#xff0c;开始研究NIO。 NIO有三大组件:Selector 选择器、Channel 管道、buffer 缓…

【网络层】MTU、IP数据报分片、IP详解、NAT

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录最大传送单元MTU--------以太网MTU是1500BIP数据报分片-------标识字段----同一数据报分片采用同一标识标志字段-----------只有两位有意义-------------中间为DF------dont fragment 不许分片--------DF1禁…

ConcurrentHashMap 成员、方法分析

常量 // 散列表数组(即table)长度最大限制private static final int MAXIMUM_CAPACITY 1 << 30;// table默认长度private static final int DEFAULT_CAPACITY 16;// 最大可能的数组长度&#xff0c;toArray方法使用(官方直译)&#xff0c;常用方法中未涉及static final…

[附源码]JAVA毕业设计简易在线教学系统(系统+LW)

[附源码]JAVA毕业设计简易在线教学系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

JVM 垃圾回收

JVM 垃圾回收如何判断哪些对象需要进行回收垃圾收集算法Java自动内存管路主要是针对对象的内存回收和对象的内存分配&#xff0c;其中Java自动内存管理中最核心的就是堆内存中对象的分配和回收 如何判断哪些对象需要进行回收 1.引用计数法 给对象中添加以恶搞引用计数器 每当…

PyTorch合集2

先说一个小内存的部署 然后在说一下刚出的pytorch2.0 100%向后兼容&#xff0c;一行代码将训练提速76% 前段时间&#xff0c;PyTorch 团队在官方博客宣布 Pytorch 1.13 发布&#xff0c;包含 BetterTransformer 稳定版等多项更新。在体验新特性的同时&#xff0c;不少人也在期…

58-66-hive-数据类型-分区-分桶

58-hive-数据类型-分区&#xff1a; 分区表&#xff08;将数据分开放&#xff0c;理解市区&#xff0c;指定分区更快&#xff0c;避免全数据扫描&#xff0c;提高查询效率&#xff0c;对hive的一种优化&#xff09; 分区表实际是对应一个 HDFS 文件系统上的独立的文件夹&…

回归预测 | MATLAB实现基于RF随机森林的工业增加值预测(多因素、多指标)

回归预测 | MATLAB实现基于RF随机森林的工业增加值预测(多因素、多指标) 目录 回归预测 | MATLAB实现基于RF随机森林的工业增加值预测(多因素、多指标)预测效果基本介绍程序设计拓展学习参考资料预测效果 基本介绍<

Raspberry Pi 4B树莓派学习笔记

这两天在学习Raspberry Pi 4B树莓派&#xff0c;这篇笔记就梳理一下目前学习到的一些知识&#xff0c;加强自己的记忆&#xff0c;整理一下思路&#xff0c;也希望能给大家带来帮助&#xff01;感兴趣的小伙伴欢迎评论区留言或者私信博主&#xff01; 目录 一、什么是树莓派 …

C/C++_IO缓存问题

平常在练习的时候&#xff0c;总是忽略IO的缓存&#xff0c;这篇笔记记录下C和C的缓存问题。 1 什么是缓存 缓存就是程序在内存中开辟的用来存放数据的空间&#xff0c;之所以叫缓存是因为这个变量时用来暂存数据用的。比如下面的语句&#xff0c; int a ; int *p malloc(…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高考信息发布平台cnj61

最近大四学弟学妹们开始准备设计了&#xff0c;有一些问题问我&#xff0c;比如设计怎么做&#xff0c;有没有模板等等吧&#xff0c;大家都没有去学校&#xff0c;老师都是通过远程指导的&#xff0c;答辩也是远程答辩&#xff0c;这种情况下同学们不在一起&#xff0c;可能碰…

PPT素材、PPT模板免费下载

想要PPT模板、PPT素材、PPT图表、PPT教程等相关素材&#xff0c;一定要知道这几个网站&#xff0c;不仅能免费下载&#xff0c;质量还非常高&#xff0c;话不多说&#xff0c;直接上内容。1、菜鸟图库 https://www.sucai999.com/search/ppt/0_0_%E6%9E%81%E7%AE%80_0.html?vNT…

译码器的电路

译码器与编码器正好是相反的操作&#xff0c;编码器是把高低电平转换成二进制信号 译码是把二进制编码转换成高低电平输出 译码器的逻辑功能是将每一个对应的二进制编码转化成高低电平或者另一种信号&#xff0c;是编码的另一种逆向的操作&#xff0c;编码器有二进制&#xf…

【专栏】核心篇07| Redis “jio”美的集群模式

关注公众号 【离心计划】呀&#xff0c;一起逃离地球表面 Redis专栏合集 【专栏】01| Redis夜的第一章 【专栏】基础篇02| Redis 旁路缓存的价值 【专栏】基础篇03| Redis 花样的数据结构 【专栏】基础篇04| Redis 该怎么保证数据不丢失&#xff08;上&#xff09; 【专…

Tableau:详细表达式(LOD表达式)的计算过程

写在最前 很早以前写过一篇关于Tableau详细级别表达式的博客&#xff0c;具体可以参考https://blog.csdn.net/yeshang_lady/article/details/104945361。前序博客重点在于介绍三种详细级表达式&#xff0c;这篇博客主要介绍使用详细级别表达式时的注意事项。 1 LOD表达式与非聚…

毕业设计-深度学习的施工安全帽图像检测算法

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…