python:六个模块,概括全书(上万字最详细版)

news2024/11/17 23:28:16

在这里插入图片描述

拍摄于——无锡南长街

文章目录

  • 模块一:基础知识
    • 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知识点,可用于初学者,复习的等等
快快分享给你的伙伴吧!

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

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

相关文章

循序渐进,搞懂什么是动态规划

循序渐进&#xff0c;搞懂什么是动态规划 写在前面 温馨提示&#xff0c;本文的篇幅很长&#xff0c;需要花很长的时间阅读。如果要完全理解所有内容&#xff0c;还需要花更多的时间学习。如果打算认真学习动态规划&#xff0c;又不能一次看完&#xff0c;建议您收藏本文以便后…

《深入理解计算机系统》(6)存储器层次结构

1、存储技术 随机访问存储器&#xff0c;分为两类&#xff1a; RAM&#xff0c;同时也是易失性存储器&#xff0c;也分为两类&#xff1a; - SRAM&#xff1a;静态随机访问存储器&#xff0c;速度快&#xff0c;价格高。多用来作为高速缓存存储器。 - DRAM&#xff1a;动态随机…

WinDbg安装入坑1(C#)

由于作者水平有限&#xff0c;如有写得不对的地方&#xff0c;请指正。 使用WinDbg的过程中&#xff0c;坑特别的多&#xff0c;对版本要求比较严格&#xff0c;如&#xff1a; 1 32位应用程序导出的Dump文件要用32位的WinDbg打开&#xff0c;想要没有那么多的问题&#xff…

chatgpt赋能python:Python删除内容:掌握三种删除方式

Python删除内容&#xff1a;掌握三种删除方式 删除变量中的值 删除变量中的值是Python编程中常见的操作。Python提供了del语句用于删除变量中的值&#xff1a; x "Hello World" del x上述代码中&#xff0c;del x语句将删除变量x中的值。如果我们在执行print(x)时…

从C语言到C++_18(stack和queue的常用函数+相关练习)力扣

目录 1. stack 1.1 栈的概念 1.2 stack 的介绍和使用 2. queue 2.1 队列的概念 2.2 queue 的介绍和使用 3. 栈和队列的相关选择题 答案&#xff1a; 4. 栈和队列的相关OJ题 155. 最小栈 - 力扣&#xff08;LeetCode&#xff09; 解析代码&#xff1a; 剑指 Offer 3…

python学习-代码调试器

目录 为什么学习调试器Pycharm Debugger示例所用代码布局调试工具栏 Debug Bar程序控制工具栏 pdb查看源代码 l list查看当前函数源代码 ll longlist打印变量 p查看调用栈w where向上移动当前帧 u up向上移动当前帧 d down运行当前行代码,在第一个可以停止的位置停下 s step继续…

Selenium基础篇之八大元素定位方式

文章目录 前言一、如何进行元素定位&#xff1f;1.右击元素-检查2.F12-选择工具点击元素3.借助selenium IDE 二、八大元素定位方式1.ID1.1 方法1.2 举例1.3 代码1.4 截图 2.NAME2.1 方法2.2 举例2.3 代码2.4 截图 3.CLASS_NAME3.1 方法3.2 举例3.3 代码3.4 截图 4.TAG_NAME4.1 …

再也不用担心组件跨层级的数据共享和方法驱动了

文章目录 兄弟组件的传值和方法调用多个独立组件的数据共享和方法调用多个组件内的方法和数据互相驱动&#xff1a;eventBus多个组件的数据共享以及数据修改&#xff1a;vuex 项目中关于组件的使用经常会碰到这种情况&#xff1a;父子组件传和方法调用、兄弟组件的传值和方法调…

Selenium该如何实现微博自动化运营:关注、点赞、评论

目录 前言&#xff1a; Selenium 是什么&#xff1f; 一、核心代码 二、步骤分解 三、自动化运营常用工具 前言&#xff1a; 使用 Selenium 实现微博自动化运营&#xff0c;可以提高效率、减少工作量&#xff0c;下面讲解如何使用 Selenium 实现微博的关注、点赞和评论功…

webSocket 学习

引子 WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议。它是 HTML5 中的一种新特性&#xff0c;能够实现 Web 应用程序和服务器之间的实时通信&#xff0c;比如在线聊天、游戏、数据可视化等。 相较于 HTTP 协议的请求-响应模式&#xff0c;使用 WebSocket 可以建…

JVM零基础到高级实战之Java内存区域虚拟机栈

JVM零基础到高级实战之Java内存区域虚拟机栈 JVM零基础到高级实战之Java内存区域虚拟机栈 文章目录 JVM零基础到高级实战之Java内存区域虚拟机栈前言JVM内存模型之虚拟机栈总结 前言 JVM零基础到高级实战之Java内存区域虚拟机栈 JVM内存模型之虚拟机栈 虚拟机栈是什么&#x…

Ansys Lumerical | 光纤布拉格光栅温度传感器的仿真模拟

说明 该示例演示了一种基于光纤布拉格光栅&#xff08;FBG&#xff09;的温度传感器&#xff0c;因为光纤折射率会随温度而变化&#xff0c;导致其布拉格波长发生偏移&#xff0c;所以可以被用作温度的测量。&#xff08;联系我们获取文章附件&#xff09; 综述 在本示例中要考…

java八股文-并发篇

并发篇 1. 线程状态 要求 掌握 Java 线程六种状态掌握 Java 线程状态转换能理解五种状态与六种状态两种说法的区别 六种状态及转换 分别是 新建 当一个线程对象被创建&#xff0c;但还未调用 start 方法时处于新建状态此时未与操作系统底层线程关联 可运行 调用了 start …

在Linux上安装Zookeeper集群(zookeeper-3.5.9)

记录&#xff1a;455 场景&#xff1a;在CentOS 7.9操作系统上&#xff0c;使用zookeeper-3.5.9版本&#xff0c;在三台机器上&#xff0c;安装Zookeeper集群。 版本&#xff1a;zookeeper-3.5.9&#xff0c;CentOS 7.9,Linux kernel-5.4.218。 1.主机规划 目标&#xff1a…

接口自动化测试新玩法!Python构建mock服务让你的测试更加高效!

目录 引言 Flask mock接口开发示例 引言 Mock 即模拟&#xff0c;就是在测试过程中&#xff0c;对于某些不容易构造或者不容易获取的对象&#xff0c;用一个虚拟的对象来创建以便测试的测试方法&#xff0c;其最大的优势就是降级前后端耦合度&#xff0c; 使前端工程师可以不…

Alloy Tutorial(1)Alloy 基本使用

文章目录 构造一个 graph谓词undirected 无向图undirected2 无向图的第二种写法assertFact扩展 构造一个 graph In this workshop we are going to use Alloy to model graphs. Mathematically, recall that a graph is just a pair ⟨V, E⟩ where V is a set of vertices (a…

参数估计和假设检验的区别与联系

1.参数估计和假设检验的区别与联系 笔记来源&#xff1a; 参数估计与假设检验 参数估计和假设检验有什么区别&#xff1f; 1.1 联系 参数估计和假设检验是推断统计的两个组成部分&#xff0c;它们都是根据样本信息对总体的数量特征进行推断 下图来自《统计学图鉴》 参数估计…

详解WEB集群服务(LNMP+Nginx+Tomcat+Rewrite重写+七层反向代理+SNAT|DNAT策略)

实战项目演练 1.问题描述2.实验操作步骤2.1 CentOS 7-1客户端配置2.2 CentOS 7-2网关服务器配置2.3 CentOS 7-8 (Web1:Tomcat服务器)2.3.1 安装Tomcat服务器2.3.2 提供四层反向代理的动态页面 2.4 CentOS 7-9 (Nginx服务器)2.4.1 安装Nginx服务2.4.2 安装MySQL服务2.4.3 安装配…

基于Python的接口自动化-读写配置文件

目录 引言 configparser模块功能介绍 引言 在编写接口自动化测试脚本时&#xff0c;有时我们需要在代码中定义变量并给变量固定的赋值。为了统一管理和操作这些固定的变量&#xff0c;咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中&#xff0c;后续需要用到这…

如何在电脑上使用wink一键高清短视频

如何在电脑上使用wink一键高清优化短视频画质 文章目录 如何在电脑上使用wink一键高清优化短视频画质1.软件简介1.1痛点1.2解决方案 2.实际操作2.1准备工作2.1.1下载雷电模拟器2.1.2下载wink 2.2.安装软件2.2.1安装雷电模拟器2.2.2安装wink2.2.2.1在雷电模拟器中安装wink2.2.2.…