python:基础知识—流程控制—函数与模块—数据结构—类与GUI和Turtle—异常处理与文件,概括全书(上万字最详细版)

这里是一张夜景,给大家放松一下。
!!无锡南长街

文章目录

  • 模块一:基础知识
    • 1、python语言
    • 2、常见数字类型
    • 3、字符串
    • 4、数字类型转换
    • 5、标识符命名
    • 6、常见关键字
    • 7、运算符与表达式
      • (1)算术运算符
      • (2)关系运算符
      • (3)逻辑运算符
    • 8、输入与输出
  • 模块二:流程控制
    • 1、顺序结构
    • 2、选择结构
    • 3、循环结构
  • 模块三:函数与模块
    • 1、函数定义
    • 2、函数调用
    • 3、匿名函数
    • 4、输入函数
    • 5、作用域
    • 6、模块
  • 模块四:数据结构
    • 1、元组
    • 2、列表
    • 3、字符串
      • (1)定义
      • (2)格式化字符串
      • (3)find、split、join、strip方法
      • (4)大小写的转换
    • 4、字典
    • 5、集合
      • (1)添加元素
      • (2)删除元素
  • 模块五:类、GUI与Turtle
    • 1、类与对象的定义
      • (1)类的定义
      • (2)类的继承:
    • 2、Tkiner——GUI
    • 3、turtle的使用
  • 模块六:异常处理与文件
    • 1、异常处理的方法
    • 2、文件操作

模块一:基础知识

1、python语言

python是一门同时支持面向过程面向对象的高级语言,由于开放源码的特性,具有移植性好,可跨平台,具有丰富的第三方库。扩展名名为.py

2、常见数字类型

python中常见的数字有三种类型·:整数(integer),浮点数(float),与复数(complex)。
这里我来演示一下复数定义:

a=10.0+20.0J   # a=10.0+20.0j 这里的j可大写也可小写,需要注意一下,
print (a.real) #虚数是由实部与虚部组成,10.0是实部,20.0是虚部,可以是整数或者其他数值
print(a.imag)

在这里插入图片描述

3、字符串

字符串:在其他编译语言里面,字符串一般由双引号组成,而python可以用单引号、双引号、三引号表示。这个是区别于其他的编程语言的。

a="sz"
b='sz'
c='''sz'''
print (a)
print (b)
print (c)

在这里插入图片描述
这里需要注意:三引号除了定义单行字符串,也可以定义多行字符串,大家可以去测试一下。在python里面除了是用来定义数值,他还是作为多行注释

4、数字类型转换

数据类型转换:格式 数据类型(数值)

a=int(10.0)
b=float(10)
c=int('123')

print (a)
print (b)
print (c)

在这里插入图片描述
这里需要注意,如果要转换字符串,那么被转换的字符串里面,一定要是数值,不能是字母

5、标识符命名

定义标识符命名规则
(1)用户标识符由数字、字母(区分大小写)、下划线,汉字组成。
(2)以字母或下划线开头。
(3)不可选用关键字,关键字不可以做为用户标识符。
(4)区分大小写。
练习:下列哪一个是合法的用户自定义标识符______。答案:C
A、while (不可以选择关键字)
B、begin?end (?不可以出现在自定义标识符中)
C、__for
D、2nd_run (数字不可以开头)

6、常见关键字

andas
assertbreak
continueclass
defdel
elifelse
expectfor
finallyfrom
Falseglobal
ifimport
inis
lambdanot
nonlocalNone
orpass
returntry
Truewhile
withyield

7、运算符与表达式

运算符与表达式:

(1)算术运算符

  `*` :  **例**: 2*8结果为16,“hello”*2结果为“hellohello”
  `+` :  **例**: 2+8结果为10,”hi“+”你好“结果为”hi你好“
  `/` :   实数(浮点)除法,最后结果一定为小数 **例**:2/8结果为0.25
  `//` :    整数除法(向下取值),  **例**:2//8结果为0, -13//3结果为-5
  `%` :    取余数,     **例**:2%8结果为2

**: 乘方(次方),:2**3结果为8
练习:可利用//(整除)和%(求余也称为模运算)对一个整数进行各位数字的分离,对于一个变量num = 12345来说,以下能取到其百位数3的表达式________
结果:12345//100%10

(2)关系运算符

< 、 > 、 >=、 <= 、 == 、!=(注意 === 的区别)

(3)逻辑运算符

not 、or、and
表达式
①正确书写编程语言中的表达式,注意与数学表达式的区别
②条件表达式: y = True if a>b else False
这里的条件表达式,运算规则,如果if后面的条件成立,则输出if前面的表达式,否则输出else后面的表达式。

8、输入与输出

input:输入;默认为字符串类型
print:输出;默认分隔符为空格,结束标识符为换行。

print('{:.4e}'.format(234.56789))
# 用科学计数法,表示数字,并且保留四位小数
#结果为2.3457e+02  ,

模块二:流程控制

程序流程的三种基本结构是顺序结构,选择结构、循环结构。

1、顺序结构

赋值语句和函数调用语句是控制该结构的主要语句。函数调用语句中最常用的是:input()和print()

2、选择结构

用if…else、elif实现。
if语句有三种形式:单分支if、双分支if…else、嵌套if…elif…,if后的条件通常是关系或逻辑表达式,但是实际语法上可以是任何表达式,仅以该表达式是0或非0来判断条件的假或真。
if (x==y) : x与y相等结果为True,不相等则结果为False

3、循环结构

(1)Python 用whilefor…in…来构造两种不同的循环结构。
注意while属于当型循环,若while后的条件为True则继续循环,若为False则结束。
(2)for…in… 是遍历序列中的每一个项目。
(3)辅助流程控制语句:breakcontinue
循环体内满足某条件执行break语句则提前结束循环。
在循环体中可以用continue表示忽略本次循环体中的后续语句,重新开始下一次循环条件的判断,以便决定是否要继续循环。

注意:在循环时候要注意循环条件
比如: for in range (0,4):
这里一共循环四次,因为循环条件里面是“包前不包后”的。

我们一起来看两道题目:
练习题:(代码答案在照片下面
1、编写程序,以每行五个形式输出100以内的所有素数(质数)。
2、编写程序,输出100到1000之间的所有水仙花数,输出格式不限,(水仙花数是指一共三位数,每一位的立方和为该数本身)。
在这里插入图片描述
1、

count=0
for i in range(3,100):
    for j in range(2,i):
        if(i%j==0):
            break
    else:  #else放在这个位置,是为了将内部整个循环都遍历完了,再将符合条件的数输出,而不是每遍历一个,就输出一次该数
        print(i,end=" ")
        count+=1
        if count%5==0:
            print("\n")

2、

for i in range(100,1000):
    a=i%10
    b=i//10%10
    c=i//100
    if a**3+b**3+c**3==i:
        print(i)

如果上面两题都做了的话,意犹未尽,可以尝试做下面这题:
利用递归/非递归方法来对斐波那契数列问题的求解。

#递归
def fib2(n):
    def fib3(i):
        if i<2:
            return 1
        else:
            return fib3(i- 1) + fib3(i - 2)
    for i in range (0,n): #输出所有数值
        print(fib3(i))
 
#非递归
list=[]
def fac(n):
    for i in range (0,n):
        if i==0 or i==1:
            list.append(1)
        else:
            list.append(list[i-2]+list[i-1])
    print(list)  
fib2(3)

这里我想再和大家分享一些教训:

#输入的是第n个数
def fib2(n):
    if n == 1 or n == 2:
        return 1
    else:
       return fib2(n - 1) + fib2(n - 2)
  
        
print(fib2(3))

模块三:函数与模块

1、函数定义

其实我们前面的一些算法里面已经使用过函数了,可以看出,有一个固定的格式:

def 函数名(参数)#定义
     ....
    函数体
     ....
    
函数名(实参) #调用

函数若有返回值,可以用return 表达式将值返回给调用方。return可以是一个,也可以返回多个信息

2、函数调用

在函数调用时候需要注意,有一个规则,“定义是从右向左依次定义,赋值是从左到右”。

#注意,这里是形参的定义,不是调用
def gac(a=1,b=1,c=1):
def gac(a=1,b=1,c):
#这里就不行,因为它跳过了最右边的c赋值,应该从c开始,赋值顺序是cba,
#当然也可以是下面这种情况;
def gac(a,b,c=1):

#调用
def gac(x,y=2,z=2):
#我们现在调用这个函数,赋值顺序应该是从最左边开始,第一个x并未给值,
#那么此时的形参的默认值就会给到x,即为x=1(这里的1是a给的)

3、匿名函数

这里我在第一篇有讲过,大家可以点下面链接:匿名函数相关函数的定义与使用

4、输入函数

这里我想为大家在拓展一个输入函数,就是input()的使用,如果我们想要同时输入多个值得话,可以通过下面函数实现:

a,b=map(int,input().split())
#map(类型,input.split()),split(),括号里面是我们输入多个值时候得分隔符。
#比如我们输入1,2 那么split()可以写成split(",")。

5、作用域

(1)全局变量——在所有函数之外定义的变量,可以被整个程序中的其他语句访问。
(2)局部自动变量——在某函数内部定义的变量,只能被定义它的函数中的语句访问。
注意:在函数中可以使用global声明变量,表示该变量是在函数外定义的全局变量。

6、模块

模块是以.py结尾得文件,只要在其他函数或文件中引用该模块就可以调用其中函数。
有以下几种引用方法:

import 模块 
from 模块名 import 函数名
from 模块名 import*

模块四:数据结构

我在之前一篇也详细讲了各种函数的用法,可以从点击这里跳转
列表、元组、字符串详细解说
下面的讲解是对前面一篇的补充,可以先看前面的一篇,再回来看看就会简单许多。

1、元组

元组是不可改变元素值的序列

tup1 = (1,2,3,4,5)
tup1[1:4] #使用分片访问元组的一段元素
(2,3,4)
tup2 = (‘a’,’b’,’c’)
tup3 = tup1 + tup2
(1,2,3,4,5,’a’,’b’,’c’)

定义元组时候,需要注意一种特殊的列子:
(12,)(12)这两个是不同的意思,
第一个是定义元组,我们在元组里面只定义一个数值,那么一定要在数值后面加上逗号否则的话,仅仅表示数值

2、列表

列表是Python中最常用的数据结构之一,一个列表中可以存放多个数据。
可以创建列表、访问列表(可以用索引或分片访问列表中的元素)、修改列表元素的值、删除列表元素。
常用的操作方法:

append,clear,copy,extend,insert,index,count,remove,reserve,sort

内置函数:

lenmaxminsorted

3、字符串

(1)定义

定义:字符串是由字母、数字、下划线组成的一组字符,用一对引号包含。

(2)格式化字符串

’ My name is %s ’ % ( ’ Tom ’ )
My name is Tom

%的左侧放入需要格式化的字符串,右侧放入希望格式化的值。这个值可以是字符串或数字,或和元组、字典。其中的%s是格式化符,它们标记了需要插入值得位置,并且该值转为字符串类型。

print('my name is %s'%('sz'))
print('my name is %f'%(20))
print('my name is %c'%('a'))

在这里插入图片描述
可以看到第二个对于原来应该是十进制整数,进行了强制转换

(3)find、split、join、strip方法

find()方法:

val=‘I love hmz’
val.find(‘love’)
2 //若有该内容则返回其下标
val.find(‘name’)
-1 //表示没有该字符

join()方法:
使用字符串中得该方法,可以在队列中添加元素,需要注意的是,需要添加得队列元素必须都是字符串类型的数据。
作用:将队列中的字符串通过val1连接在一起

val=[ ’ 1 ’ , ’ 2 ’ , ’ 3 ’ , ’ 4 ’ , ’ 5 ‘]
val1=’ * ’
val1.join(val)
’ 1* 2 * 3 * 4 * 5 ’ //输出

split()方法:
该方法是join的逆方法,可以将连接的字符串分开

str=’ 1* 2 * 3 * 4 * 5 ’
str.split(’ * ')
[ ’ 1 ’ , ’ 2 ’ , ’ 3 ’ , ’ 4 ’ , ’ 5 '] //输出

strip()方法:
该方法时为了去除字符串两端的空格。

val='  I love hmz'
val.strip()
print(val)
# 输出:'I love hmz'

(4)大小写的转换

lower()upper()两个方法

val='I love hmz'
print(val.upper())
print(val.lower())

在这里插入图片描述
这里给大家出一道题目,编写程序,输入一段英文,输出该句子中字母为3的单词
答案在图片下面:
在这里插入图片描述

str1=input().split(' ')
for i in str1:
    if(len(i)==3):
        print(i)

4、字典

字典是Python中唯一内建的映射类型,字典中的值没有特殊的顺序,但存储在特定的键下。字典有多个键值对组成,键和值之间通过冒号分隔元组可以作为键,列表不可以作为键。
来看一段代码:

name = ['lin','wang','zhang']
dictionary = {i:0 for i in name}
print(dictionary)
while True:
    vote = int(input())
    if vote == 1:
        dictionary['lin']+=1
    elif vote == 2:
        dictionary['wang']+=1
    elif vote == 3:
        dictionary['zhang']+=1
    else: break
print(dictionary)

这里先建立name为名的列表。之后建立字典,而键(key)时name中相对应得字符串。

在这里插入图片描述

5、集合

集合有几个特点:

  • 唯一性(即为集合元素不重复)
  • 元素类型统一

看代码理解:如下

a=set('123456') #创建一个集合 固定格式set()
a=set('aabbcdee')
print(a)

在这里插入图片描述

(1)添加元素

add()`方法:

#创建一个集合 固定格式set()
a=set('i love')
a.add('hmz')
print(a)

在这里插入图片描述
这里后加入得hmz时作为一个整体加入集合中,因而最后输出不需要拆分。
update()方法:

#创建一个集合 固定格式set()
a=set('i love')
a.update('hmz')
print(a)

在这里插入图片描述
而采用update,就是将所要添加得元素以拆分,最后形成单个字符加入集合里面。

(2)删除元素

只能删除已有元素,这里需要记住

a=set('123456')
a.remove('2')
print(a)

在这里插入图片描述

模块五:类、GUI与Turtle

我在之前文章也提到过该模块:(可点击下面链接跳转)

  • 类与对象编程

1、类与对象的定义

类与对象的定义:定义类的格式,对象实例化,对象属性与类属性,初始化方法

来看一段代码:

(1)类的定义

#定义类的格式,对象实例化,对象属性与类属性,初始化方法
class Stu: #创建类(学生类)
    def __init__(self,name,age,sex):   #初始化方法,也就是其他编程语言里面的构造方法
        self.name=name  
        self.age=age
        self.sex=sex
    def get_name(self):
        print(self.name)
    def get_age(self):
        print(self.age)
    def get_sex(self):
        print(self.sex)
    def get_allinfor(self):
        print("姓名:{},年龄:{},性别:{}".format(self.name,self.age,self.sex))

stu=Stu("sz",21,"men")  #对象实例化
stu.get_age()  #用对象访问方法
stu.get_name()
stu.get_sex()

#也可以通过直接访问类属性来进行输出
print(stu.name)
print(stu.age)
print(stu.sex)

#也可以定义方法直接输出所有
stu.get_allinfor()

注意:__init__()创建对象时由系统自动调用,访问类的数据成员,类的继承。

(2)类的继承:

#定义类的格式,对象实例化,对象属性与类属性,初始化方法
class Stu: #创建类(学生类)
    def __init__(self,name,age,sex):   #初始化方法,也就是其他编程语言里面的构造方法
        self.name=name  
        self.age=age
        self.sex=sex
    def get_name(self):
        print(self.name)
    def get_age(self):
        print(self.age)
    def get_sex(self):
        print(self.sex)
    def get_allinfor(self):
        print("姓名:{},年龄:{},性别:{}".format(self.name,self.age,self.sex))
class Son(Stu): #括号里面写父类名
    def __init__(self,name,age,sex,mark):
        Stu.__init__(self,name,age,sex)
        self.mark=mark
    def get_allinfor(self):
        print("姓名:{},年龄:{},性别:{},成绩:{}".format(self.name,self.age,self.sex,self.mark))

son=Son("sz",21,"men","good")  #对象实例化
son.get_allinfor()

2、Tkiner——GUI

我在之前文章也提到过该模块:(可点击下面链接跳转)

  • 图形用户界面

我们来看一段代码加以理解,基础部分可以看上面链接:

#常用组件Button,Label,Entry,Listbox的作用。
import tkinter as tk
top=tk.Tk() #创建顶层窗口对象
top.title("hello") #创建窗口标题
lab1=tk.Label(top,text="yours name:") #创立标签,放入top的窗口
lab2=tk.Label(top,text="copy your name:")
entry1=tk.Entry(top) #创立文本框,放入top的窗口
entry2=tk.Entry(top)
lab1.pack() #与调用pack()顺序有关
entry1.pack()
lab2.pack()
entry2.pack()
def button_click( ): #动作事件:将文1内容复制给文2
    entry2.delete(0,tk.END) #清空文2内容
    text=entry1.get() #提取文1
    entry2.insert(0,text) #复制
btn=tk.Button(top,text="copy",command=button_click)
btn.pack()
top.mainloop()

在这里插入图片描述
在这里插入图片描述

3、turtle的使用

学习目标:设置画笔的颜色、调整画笔角度、向前移动、向后移动、提笔、落笔、绘画速度、RGB色彩格式、Turtle坐标系

import turtle  #导入库
turtle.color("red") #为画笔上色
for i in range(5):
    turtle.forward(100)  #前进100 
    turtle.right(144) #右转144度 这里需要注意,是在原地转
    turtle.forward(100)
    turtle.left(72) 
turtle.done() #结束当前绘图工作

为大家在下面列举常用的函数:都是通过turtle.来访问

操作符功能
forward (distance)/ fd(distance)沿着海龟当前方向前进一段距离
back(distance) / bk(distance) / backword(distance)沿着海龟当前方向后退一段距离
right(angle) / rt(angle)右转角度
left(angle) / lt(rangle)左转角度
goto(x,y=None)将海龟移动到指定位置
setheading(to_angel) / seth(to_angle)将海龟的朝向调整到某个角度 ,0°朝右,180°朝左
circle(radius,extent=None,steps=None)radius是圆弧的半径,extent是有关角度,用来画圆弧
begin_fill()从海龟当前位置开始设置填充颜色
end_fill()从海龟当前位置开始结束填充颜色,完成填色

注意:(考点)
-海龟的位置,是一个箭头标志,并不是海龟

  • speed(),要想直接得到图形,在参数里面设置速度为0即可。

模块六:异常处理与文件

我在之前文章也提到过该模块:(可点击下面链接跳转)

  • 异常处理与文件操作

1、异常处理的方法

异常处理方法:
有以下常见的异常

  • NameError尝试访问一个没有声明的变量引发的错误
  • IndexError索引超出序列范围引发的错误
  • IndentationError缩进错误
  • ZeroDivisionError除数为0引发的错误
  • SyntaxError语法错误

看个代码:

for i in range (0,4):
    try:
        a=12
        c=a/i
        print(c)
    except ZeroDivisionError: #此处可写异常,可不写
        print("{}处出错了".format(i))

2、文件操作

文件操作的步骤
打开文件: f = open(“book.txt”,’w’)
或者 with open(“book.txt”,’w’) as f
打开文件方式: r,w,a,b,+进行组合
读文件 str = f.read() str = f.readlines()

使用readlines函数可以读取文件中所有的行

   with open("student.txt","r") as file:      #或者file = open("D:/li07-1.txt", 'r'):
        for line in file.readlines():
            l = line.rstrip('\n').split("\t")
            for x in l:
               print(x,end=',')
            print()         

第一篇万字文章,大概花了一个星期为大家整理了python知识点,可用于初学者,复习的等等
快快分享给你的伙伴吧!

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

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

相关文章

ZooKeeper的集群部署和启动与关闭

ZooKeeper是一个分布式应用程序协调服务。一个ZooKeeper集群可以存在多个Follower和Observer服务器&#xff0c;但只允许存在一台Leader服务器。如果Leader服务器宕机&#xff0c;那么ZooKeeper集群的其它服务器会投票选举出一个新的Leader服务器&#xff0c;为防止投票数不过半…

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

警告&#xff1a;此功能处于技术预览阶段&#xff0c;可能会在未来的版本中更改或删除。 Elastic 将尽最大努力修复任何问题&#xff0c;但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 Elastic Learned Sparse EncodeR - 或 ELSER - 是由 Elastic 训练的检索模型&#…

浅谈中移链中插件的功能及使用

中移链是在满足我国信息化监管需求、合规可控的前提下&#xff0c;打造的中国移动区块链服务平台。它允许使用插件来扩展其功能&#xff0c;以适应各种不同的使用场景。 什么是中移链插件呢&#xff1f;如果把中移链比作一个操作系统&#xff0c;那么插件就类比于操作系统上的…

工作流引擎Flowable

这里写目录标题 1.Flowable基础1.1 入门学习 2.流程图设计器2.1 FlowableUI2.1.1 绘制流程图 1.Flowable基础 官方手册 1.1 入门学习 一、依赖 <dependencies><dependency><groupId>org.flowable</groupId><artifactId>flowable-engine</…

Android系统安全 — 6.2 Ethernet安卓架构

1. Android Ethernet架构介绍 整个Ethernet系统架构如下图所示&#xff1a; 以太网服务&#xff08;EthernetService&#xff09;的启动与注册流程&#xff1b;应用层调用使能ethernet功能的方法流程来分析&#xff0c;从应用层如何将指令一步一步传到底层kernel&#xff1b;…

阿里巴巴开源的Spring Cloud Alibaba手册在GitHub上火了

“微服务架构经验你有吗&#xff1f;” 前段时间一个朋友去面试&#xff0c;阿里面试官一句话问倒了他。实际上&#xff0c;不在BAT这样的大厂工作&#xff0c;是很难接触到支撑千亿级流量微服务架构项目的。但也正是这种难得&#xff0c;让各个大厂都抢着要这样的人才&#x…

docker-harbor私有仓库

一、Harbor概述 1、Harbor的概念 • Harbor是VMware公司开源的企业级Docker Registry项目&#xff0c;其目标是帮助用户迅速搭建一个企业级的Docker Registry服务 • Harbor以 Docker 公司开源的Registry 为基础&#xff0c;提供了图形管理UI、基于角色的访问控制(Role Base…

华为流程体系:IPD流程框架(限制版)

目录 前言 详细内容 专栏列表 CSDN学院课程地址 前言 今天主要来谈谈 IPD 体系的主体框架所涉及的一些相关内容。 其实关于 IPD 体系&#xff0c;我在之前的文章或课程中都有过不同程度的讲解。 但是&#xff0c;由于这个体系所涉及的面是非常广泛的。 这个时候就必须通…

sql总理论加实践

一、基础查询 DQL语法 SELECT 字段列表 1.设置别名 SELECT 字段1[别名],字段二[别名]......FROM 表名 WHERE 条件列表; 2.查询多个字段 SELECT 字段1,字段2,字段3......FROM 表名; SELECT * FROM 表名; 3.去除重复记录 DISTANT FROM 表明列表 WHERE 条件列表(条件…

利用etcd实现分布式锁

python etcd3模块的lock使用 观察lock的加解锁影响 在python中已经自带了分布式锁的实现方式&#xff0c;下面我们尝试一下加锁与解锁的流程 在运行该demo同时也对lock对应的key进行watch&#xff0c;观察其变化&#xff0c;注意python-etcd3在实现分布式锁的时候&#xff0…

【Python爬虫开发基础⑤】HTML概述与基本标签详解

专栏&#xff1a;python网络爬虫从基础到实战 欢迎订阅&#xff01;近期还会不断更新~ 往期推荐&#xff1a; 【Python爬虫开发基础①】Python基础&#xff08;变量及其命名规范&#xff09; 【Python爬虫开发基础②】Python基础&#xff08;正则表达式&#xff09; 【Python爬…

探秘华为交换机:端口类型全解析

在下列情况下&#xff0c;判断的一般方法是什么&#xff1f; 1.交换机某个端口下的用户丢包。 2.交换机下的所有用户都在丢失数据包。 3、用户反映网速缓慢 检查网络电缆&#xff0c;重做水晶头&#xff0c;检查用户的计算机网卡&#xff0c;并重新启动交换机。 这几种做法都能…

Flink 学习五 Flink 时间语义

Flink 学习五 Flink 时间语义 1.时间语义 在流式计算中.时间是一个影响计算结果非常重要的因素! (窗口函数,定时器等) Flink 可以根据不同的时间概念处理数据。 处理时间: process time System.currentTimeMillis()是指执行相应操作的机器系统时间&#xff08;也称为纪元时间…

Docker安全

一、Docker 容器与虚拟机的区别 1、隔离与共享 • 虚拟机通过添加 Hypervisor 层&#xff0c;虚拟出网卡、内存、CPU 等虚拟硬件&#xff0c;再在其上建立虚拟机&#xff0c;每个虚拟机都有自己的系统内核 • Docker容器则是通过隔离的方式&#xff0c;将文件系统、进程、设…

Redis入门 - Lua脚本

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis入门 - Lua脚本 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-scription.html Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 …

Spark01-Spark快速上手、运行模式、运行框架、核心概念

1 概述 Spark和Hadoop Hadoop HDFS(GFS:TheGoogleFileSystem)MapReduce总结&#xff1a;性能横向扩展变得容易&#xff0c;横向拓展:增加更多的计算节点来扩展系统的处理能力Hbase&#xff1a;分布式数据库 Spark Spark CoreSpark SQLSQL 方言&#xff08;HQL)Spark Streamin…

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型及程序资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910311 模型简介&#xff1a; 建议使用MATLAB21b及以上版本打开&#xff01; 光伏阵列表面被局部遮挡时会产生热斑效应。为了防止太阳电池因热…

【Matter】Matter学习笔记1

文章目录 前言Matter协议架构1.Matter Over IPV62.Matter协议架构3.Matter标准协议架构 Matter网络拓扑结构Mesh组网1.单一网络拓扑2.星形网络拓扑 设备数据模型&#xff08;Date Model&#xff09;1.设备和端点&#xff08;Node、Endpoint&#xff09;2.节点角色&#xff08;N…

ADAudit Plus:保护企业内部IT安全的强大解决方案

随着企业数字化的推进&#xff0c;IT系统和数据安全变得比以往任何时候都更加重要。为了保护企业的机密信息和敏感数据&#xff0c;企业需要一种可靠的IT安全解决方案。在众多选项中&#xff0c;ADAudit Plus是一款备受赞誉的软件&#xff0c;为企业内部的IT安全提供了强大的支…

工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(二)

文章目录 机器人逆运动学※ 代数解、几何解&#xff0c;解析解&#xff08;封闭解&#xff09;、数值解的含义与联系○ 代数解求 θ 1 \theta_1 θ1​、 θ 2 \theta_2 θ2​、 θ 3 \theta_3 θ3​※参考资料 求解 θ 1 \theta_1 θ1​ 求解 θ 3 \theta_3 θ3​ 求解 θ 2 \t…