Python从入门到精通(黑马课程)

目录

运算符

数字运算符

比较运算符

逻辑运算符

转义字符

变量使用

变量定义

变量类型

变量命名

变量函数

input函数

type函数

条件语句

If

格式

案例1,判断年龄

案例2,借钱

案例3,and、or应用

循环语句

for

格式

案例1,打印一个列表

案例2,判断数字是偶数还是奇数

案例3,查找列表中的最大值和最小值

While

格式

案例1,打印5遍字符串

案例2,计算1到10的 求和

案例3,计算1到10的偶数求和

案例4,验证用户密码

Break

Contiune

while循环嵌套

九九乘法表

函数

函数的基本使用格式

函数的作用

函数的命名规则

函数的格式

函数的参数

形参

实参 

函数的返回值return                

函数的嵌套调用

在模块中定义函数

PIP包管理器

基础命令

指定源下载

国内源

下载到本地

安装本地的包

文件操作

图片操作

打开图片

移动图片

下载图片(爬虫)

文件操作

打开文件

向文件追加内容

练习实例

九九乘法表

判断分数

判断验证次数

FAQ

调试打断点

​编辑

常见报错

名字没有被定义

语法错误

缩进错误

每天更新一点点,今天计划学习章节:函数



运算符

数字运算符

运算符

描述

示例

+

4 + 2 = 6

-

4 – 2 = 2

*

4 * 2 = 8

/

4 /2 = 2

//

取整数,返回除法的整数部分

4 // 2 = 2; 9 // 2 = 4

%

取余数

4 % 2 = 0;5 % 2 = 1

**

幂,平方、次方

1 ** 2 = 2;4 ** 0.5 = 2

比较运算符

运算符

描述

示例

==

检查两个操作的值是否相等,如果是,则条件成立,返回True

1 == 1

“haha” == “haha”

!=

检查两个操作的值是否不相等,如果是,则条件成立,返回True

2 != 1

“haha” != “heihei”

>

检查左边的数值是否大于右边的数值,如果是,则条件成立,返回True

2 > 1

<

检查左边的数值是否小于右边的数值,如果是,则条件成立,返回True

1 < 2

>=

检查左边的数值是否大于等于右边的数值,如果是,则条件成立,返回True

1 >= 1

<=

检查左边的数值是否小于等于右边的数值,如果是,则条件成立,返回True

1 <= 1

逻辑运算符

运算符

描述

示例

and

逻辑与运算,等价于数学中的“且”

a and b(成立条件:a与b都为真)

or

逻辑或运算,等价于数学中的“或”

a or b(成立条件:a或者b只有一个满足条件)

not

逻辑非运算,等价于数学中的“非”

not a(成立条件:对a取反)

运算符

描述

示例

=

最基本的赋值运算

1 = 1

+=

加赋值

x += 1等同于x = x + 1

-=

减赋值

x -= 1等同于x = x - 1

*=

乘赋值

x -= 1等同于x = x - 1

/=

除赋值

x /= 2等同于x = x / 2

%=

取余数赋值

x %= 2等同于x = x % 2

**=

幂赋值

x **= 2等同于x = x ** 2

//=

取整数赋值

x //= 2等同于x = x // 2

&=

按位与赋值

x &= y等同于 x = x & y

|=

按位或赋值

x |= y等同于 x = x | y

^=

按位异或赋值

x ^= y等同于 x = x ^ y

<<=

左移赋值

x <<= 1等同于x = x << 1

>>=

右移赋值

x >>= 1等同于x = x >> 1

转义字符

运算符

描述

\(在行尾时)

续行符

\\

反斜杠符号

\’

单引号

\”

双引号

\a

响铃

\b

退格(Backspace)

\e

转义

\000

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

变量使用

变量定义

变量名 =

phone = '010-8869'
print(phone)

变量类型

# 1.    数字类型:
a = 1
print(a, "是", type(a), "类型")# 2.   字符串类型
a = "哈哈"
print(a, "是", type(a), "类型")# 3.   列表类型
a = ["大", "王"]
print(a, "是", type(a), "类型")# 4.   元组类型
a = (1, 2)
print(a, "是", type(a), "类型")# 5.   集合类型
a = {'red', 'green'}
print(a, "是", type(a), "类型")# 6.   字典类型
a = {'name': '王', 'age': '18'}
print(a, "是", type(a), "类型")# 7.   布尔类型
a = True
b = False
print(a, "是", type(a), "类型")
print(b, "是", type(b), "类型")

变量命名

Python中,变量名由字母、数字和下划线组成,且不能以数字开头。变量名大小写敏感,因此"myVariable"和"myvariable"是不同的变量名。为了提高代码的可读性,建议使用有意义的变量名。例如,可以用"age"代表一个人的年龄,用"name"代表一个人的姓名。此外,还可以使用驼峰命名法,将多个单词连接在一起,每个单词的首字母都大写,例如"myAge"和"myName"。

  1. 变量名不应过长,通常应该尽量简短且具有描述性
  2. Python有一些保留字,这些保留字被编程语言预先定义,不能用作变量名
  3. 根据PEP 8,变量名应该用小写字母,并且可以使用下划线来分隔单词

变量函数

input函数

用户输入的任何内容默认都为字符串类型,可以参考如下将Str转换成int

num = int(input('输入数字:'))
print(num)
print(type(num))

num = input('香蕉的单价:')
num2 = input('买几斤?买;')price = float(num) * float(num2)
print(price, '元')

type函数

查看该变量的类型,使用type()

num = float(input('输入数字:'))
print(num)
print(type(num))

条件语句

If

格式

if 要判断的条件1:

        条件1成立时,要做的事情

        ......

elif 要判断的条件2:

        条件2成立时,要做的事情

        ......

else:

        条件不成立时,要做的事情

案例1,判断年龄

输入年龄,如果年龄小于18,不让入内,如果大于等于18可以入内


if age < 18:print("未成年人禁止入内")
elif age >= 18:print("正常票价")

案例2,借钱

发工资了:借钱超过100以上没钱,100以下可以借,没发工资直接退出

import sysinfo = input("你发工资了吗?")
if info == 'no':print("没发")print("好的,那算了吧,本来还想问你借点钱的")sys.exit()
if info == 'yes':number = int(input("借我点钱:"))if number >= 100:print("我没那么多钱")else:print("可以")

案例3,and、or应用
a = 1
b = 2
if a > 0 and b > 1:   #a和b都满足条件时,成立print("条件表达式1成立")
if a > 4 or b > 3:    #a或者b都满足条件时,成立,反之不成立print("条件表达式2成立")
else:print("未满足其中一项,条件表达式2不成立")
if not a < 0:        #a结果取反,满足条件时,条件成立print("条件表达式3成立")

循环语句

for

格式

for 变量 in 可迭代对象:

        执行语句1

        ......

else:

        执行语句2

        ......

案例1,打印一个列表
list_info = ['哈哈', '呵呵', '嘿嘿']
for i in list_info:print(i, end=' ')

打印一个列表,不自动换行,结尾以空格显示

案例2,判断数字是偶数还是奇数
for i in range(1, 11):if i % 2 == 0:print(f"数字{i}是偶数")else:print(f"数字{i}是奇数")

打印数字1~~10,判断数字是否除以2的余数为0

案例3,查找列表中的最大值和最小值
list_info = [1, 2, 4, 10, 55, 100, 86]
max_info = list_info[0]
min_info = list_info[0]for i in list_info:if i > max_info:max_info = iif i < min_info:min_info = i
print(f"最大值是{max_info}")
print(f"最小值是{min_info}")

使用for循环依次去取列表的第一个值,第一次是1,第二次2......,这样每次找到的最小的或者是最大的数都会将当前变量更新为最大或最小数

While

格式

while 判断语句:

        执行的代码

        ......

案例1,打印5遍字符串

用while循环打印5遍hello word

定义一个初始数值,记录循环次数。当循环次数的判断条件满足时,程序退出

count = 5
while count > 0:print("hello word")count = count - 1if count == 0:print("打印5遍完成,跳出循环")break
print("game over")

定义一个初始数值,记录循环次数。当循环次数的判断条件不满足时,程序退出

count = 0
while count < 5:print("hello word")count = count + 1
print("已打印了5遍")

案例2,计算1到10的 求和
i = 0
result = 0
while i <= 100:result += ii += 1
print(result)

案例3,计算1到10的偶数求和
i = 0
result = 0
while i <= 100:i += 1#判断i中的值除以2是否等于0,验证其是否是偶数if i % 2 == 0:result += i# print(result)print(result)

案例4,验证用户密码

count = 3
while count > 0:name = input("登陆用户名:")pwd = int(input("密码:"))if name == "admin" and pwd == 123 or name == "wyq" and pwd == 123:print("用户名密码正确,正在登陆...")print("登陆成功")breakelse:count = count - 1if count > 0:print(f"用户名或者密码错误,请重新尝试,您还有{count}次机会")else:print("次数用尽,登陆失败,程序退出!")

当用户名密码均正确时,直接退出程序

当用户密码错误的时候,每次验证次数递减1,当剩余次数为0时,提示退出

Break

break:跳出整个循环,不会再循环该循环内容

i = 0
while i < 5:i = i + 1if i == 3:breakprint(f"当前i的值是{i}")
print(f"当退出循环时,i的值是{i}")

当i等于3时,跳出终止整个循环,所以当前循环内i的值应该是1和2,因为当i等于3的时候,break终止整个循环了

Contiune

continue:跳出本次循环,continue后面的代码不再执行,但是循环依然继续

a = 0
while a < 3:a = a + 1if a == 2:continueprint(f"跳出本次循环后a的值是{a}")
print(f"当前a的值是{a}")

当a等于2时,跳出本次循环,后面的代码不执行,但是循环体依然进行,所以当前a的值是1和3。因为当a等于2的时候,contiune不执行后面的代码语句

while循环嵌套
九九乘法表
#定义一个行的循环,输出9行
row = 1
while row <= 9:#定义一个列的循环col = 1#当列小于行时while col <= row:result = row * colprint(f"{col} * {row} = {result}\t", end=" ")#print(row)col = col + 1print()row = row + 1

函数

函数的基本使用格式

函数的作用

所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候的调用

函数使用包含两个步骤:

定义函数--封装独立的功能

调用函数--享受封装的成果

函数的命名规则
  • 可以由字母、下划线和数字组成
  • 不能以数字开头
  • 不能与关键字重名 
函数的格式

 

def 函数():

        执行语句1

        ......

函数()

def print_hello():print("hello word")print_hello()

函数的参数

在函数名的后面的小括号内部填写参数,多个参数用分割

def get_sum(age1, age2):result = age1 + age2print(result)get_sum(18, 20)
形参

定义函数时,小括号中的参数是用来接收参数用的,在函数内部作为变量使用

实参 

调用函数时,小括号的参数,是用来把数据传递给函数内部用的

函数的返回值return

在开发程序中,有时候希望一个函数执行结束后,攻速调用者一个结果,便于针对这个结果做后续的处理

在函数中可以使用return关键字来返回结果

调用函数一方,可以使用变量接收函数的返回结果

注意:return表示返回,后续的代码都不会被执行

 定义一个函数get_sum,定义形参age1和age2,使用return返回两个形参的总和,在调用函数时先定义实参get_sum(18, 20)后,通过变量赋值来获取结果

def get_sum(age1, age2):result = age1 + age2return resulta = get_sum(18, 20)
print(a)

观察下面示例,为什么        print("hahahaha")      没有执行?

def number(age):if age < 18:print("年龄小于18")return "未成年人禁止入内"print("hahahaha")else:return "已成年"print(number(15))

因为return后的语句不执行,所以没有执行        print("hahahaha")

                       

函数的嵌套调用

一个函数里面又调用了另外一个函数,这就是函数嵌套

观察下面的示例

执行函数test2中,调用了另外一个函数test1,那么如何工作?

def test1():x = 5 * 2print(f"这是test1函数打印的x值:{x}")return xdef test2():y = 10 / 5print(f"y的值是{y}")z = test1() + yprint(f"这是test2函数打印的x + y = {z}")test2()
  • 在执行test2函数的时候先打印了y的值
  • 接着往下碰到了test1函数,会先执行test1函数的所有任务,打印了x的值,这时test1函数任务执行完毕
  • 然后接着回来从调用test1函数的位置后继续执行代码,打印x + y的值

在模块中定义函数

一个模块其实就是一个包含 Python 代码的文件,它可以包含变量、函数、类等。其他的 Python 程序可以通过导入模块来使用其中定义的函数和其他内容。

观察下面的示例

 test.py

def person(name, age, city):print(f"My name is {name}, {age} years old, I'm from {city}")

函数.py

import testtest.person('wang', '20', 'ShangHai')
  • 定义一个自我介绍信息的函数的文件“test.py”,这时没有传递形参也没有获取结果
  • 新建一个脚本“函数.py”使用import方法将定义好函数的文件“test”导入
  • 使用函数方法传递实参获取结果,运行”函数.py“文件即可获取到"test.py"的代码结果

例如爬虫常见的requests库,使用import requests导入库之后使用requests.get(url)来获取内容,对于自身来说,requests库就是一个包含爬取目标url信息的代码文件,我们使用其定义好的get方法来获取内容

PIP包管理器

Pip是Python的包管理器,它允许你安装和管理额外的库和依赖,这些库和依赖未包含在Python标准库中。pip是递归的缩写,其全名是“Pip Installs Packages”或者“Pip Installs Python”。除了Python外,Pip还可以用于其他一些Python的变体,例如PyPy。

Pip的主要功能如下:

  • 安装Python包
  • 卸载Python包
  • 升级Python包
  • 查看已安装的Python包

基础命令

pip list

pip install <package_name>

pip uninstall <package_name>

pip install --upgrade <package_name>

指定源下载

pip3 install -i https://pypi.douban.com/simple/ <package_name> 

国内源

清华:https://pypi.tuna.tsinghua.edu.cn/simple  

阿里云:http://mirrors.aliyun.com/pypi/simple/  

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/  

华中理工大学:http://pypi.hustunique.com/  

山东理工大学:http://pypi.sdutlinux.org/   

豆瓣:http://pypi.douban.com/simple/  

下载到本地

pip3 download urlopen -d "/opt/py_packge" -i https://pypi.mirrors.ustc.edu.cn/simple/

安装本地的包

pip3 install /opt/py_packge/urlopen-1.0.0.zip

文件操作

图片操作

打开图片

Pillow是一个Python图像处理库

yum -y install libjpeg*pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple/ pillow==8.4.0
from PIL import Imageimage_path = 'E:\工具\pycharm\object\jpg\p1597238857.jpg'
image = Image.open(image_path)
image.show()

移动图片
from PIL import Imageimport os#打开本地图片image_path = '/opt/pytest/file/1.jpeg'image = Image.open(image_path)#显示图片image.show()old_directory = '/opt/pytest/file'new_directory = '/opt/pytest/file/jpeg'#即使目录存在,也会正常完成创建目录操作os.makedirs(new_directory, exist_ok=True)#将目录路径和文件名拼接成一个完整的文件路径new_file_path = os.path.join(new_directory, '荒.jpeg')#移动文件到新目录os.rename(image_path,new_file_path)print(f"文件已保存到新目录:{new_file_path}")

下载图片(爬虫)

import reimport requests
from bs4 import BeautifulSoup
import os
from PIL import Image
url = 'https://movie.douban.com/'
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'}response = requests.get(url, headers=header, verify=False)
response.encoding = 'utf-8'
#print(response.text)main_list = BeautifulSoup(response.text, "html.parser")
#print(main_list)info_list = main_list.find("div", class_="article").find_all('a')
#print(info_list)text = info_listtext = ''.join(str(tag) for tag in text)# 使用 BeautifulSoup 解析 HTML
soup = BeautifulSoup(text, 'html.parser')# 提取所有图片链接#遍历所有的<img>标签,并将每个标签的src属性的值添加到一个新的列表中
image_links = [img['src'] for img in soup.find_all('img')]# 输出提取到的图片链接
os.makedirs("jpg", exist_ok=True)
for link in image_links:jpg_name = link.split("/")[-1]img_data = requests.get(link).contentwith open(os.path.join("jpg", jpg_name), 'wb') as f:f.write(img_data)print(f"已下载: {jpg_name}")print("下载完成")
  1. 发送一个GET请求到豆瓣电影网站(https://movie.douban.com/),并获取响应内容。
  2. 使用BeautifulSoup对获取到的HTML进行解析,找到网页中class为"article"的div标签下所有的超链接(a标签)。
  3. 通过 img.find('img')['src'] 的方式直接从 img 标签中提取图片链接。遍历这些超链接,提取出每个超链接中的图片链接(img标签的src属性),并存储在一个列表中。
  4. 创建一个名为"jpg"的文件夹(如果该文件夹不存在的话)来存储下载的图片。
  5. 遍历图片链接列表,使用 requests.get(link).content 获取图片的二进制数据,然后将二进制数据使用 open 方法写入以图片链接中最后一部分命名的文件中,保存在"jpg"文件夹中。

文件操作

打开文件
file_path = '/opt/pytest/file/信息笔记.txt'#打开文件,只读模式with open(file_path,'r') as file:#读取文件内容file_content = file.read()print(file_content)
向文件追加内容
file_path = '/opt/pytest/file/信息笔记.txt'with open(file_path, 'a') as file:file.write('加入语句1:你好!\n')file.write('加入语句2:再见!\n')with open(file_path, 'r') as file:file_content = file.read()print(file_content)

练习实例

九九乘法表

# @Time     : 2023/11/17  99乘法表
for i in range(1,10):for j in range(1, i+1):result = j * iprint(f"{j}*{i}={result}", end="\t")print()

判断分数

# @Time     :2023/11/17   判断分数70
num = float(input('输入学生的分数:'))
if num >= 90:print("优秀")
elif 90 > num >= 80:print("良")
else:print("有待观察")

判断验证次数

# @Time     :2023/11/17   判断验证次数
count = 3
while count > 0:number = 10num = int(input("输入数字:"))if num == number:print(f"输入数字{num}正确")breakelse:count = count - 1if count > 0:if num < 10:print(f"输入数字{num}小了,还剩{count}次机会")else:print(f"输入数字{num}大了,还剩{count}次机会")else:print("没机会了,游戏结束")

FAQ

调试打断点

F8单步走

常见报错

名字没有被定义
a = 1
print(b)

Traceback (most recent call last):

  File "E:\工具\pycharm\object\基础学习.py", line 10, in <module>

    print(b)

          ^

NameError: name 'b' is not defined

语法错误
a = 1
print(a'')

File "E:\工具\pycharm\object\基础学习.py", line 9

    print(a'')

           ^^

SyntaxError: invalid syntax

缩进错误
a = 1print(a)

  File "E:\工具\pycharm\object\基础学习.py", line 9

    print(a)

IndentationError: unexpected indent

每天更新一点点,今天计划学习章节:函数

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

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

相关文章

如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 云存储概念兴起后&#xff0c;现在市面上也已经有了很多公有云盘。但一段时间后…

redis基本数据结构

Redis入门&#xff1a;五大数据类型 文章目录 Redis入门&#xff1a;五大数据类型一.概述二.Redis的基本了解三.Redis五大数据类型1.String (字符串)2.List(列表)3.Set集合(元素唯一不重复)4.Hash集合5.zSet(有序集合) 一.概述 什么是Redis Redis&#xff08;Remote Dictiona…

Java 之 lambda 表达式(一)

目录 一. 前言 二. lambda 表达式语法 2.1. 语法1&#xff1a;无参&#xff0c;无返回值 2.2. 语法2&#xff1a;一个参数&#xff0c;无返回值 2.3. 语法3&#xff1a;两个参数&#xff0c;lambda 体中有多条语句 2.4. 语法4&#xff1a;两个以上参数&#xff0c;有返回…

C++ STL-----容器

STL容器就是将运用最广泛的一些数据结构实现出来 常用的数据结构&#xff1a;数组, 链表,树, 栈, 队列, 集合, 映射表 等 这些容器分为序列式容器和关联式容器两种: 序列式容器:强调值的排序&#xff0c;序列式容器中的每个元素均有固定的位置。 关联式容器:二叉树结构&…

深入了解Java8新特性-日期时间API:LocalDateTime类

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概22000多字&#xff0c;预计阅读时间长需要20分钟以上。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&…

c++没有返回值的返回值

上面的函数search没有返回值,因为a不等于1,但是输出的时候会输出6.这恰巧是x的值,如果我们希望a不等于1时返回x,那么这种结果反而是正确的.有时候这种错误的代码可能产生正确的结果反而会加大debug难度 int search(int n) { 00007FF66DB723E0 mov dword ptr [rsp8],e…

简易版扫雷+代码分析

前言&#xff1a; 实验一个简易版的扫雷&#xff0c;也要两百来行的代码&#xff0c;因此为了代码整洁&#xff0c;维护起来方便&#xff0c;这里我们和前期实现的三子棋一样&#xff0c;也弄一个游戏的头文件game.h用来装各种头文件以及函数的声明以及宏定义、预处理信息&…

视频文件+EasyDarwin做摄像机模拟器模拟RTSP流很方便,还能做成系统服务,方法与流程

之前我看到过一家人工智能做算法的企业&#xff0c;用EasyDarwinFFMPEG做了一个摄像机的模拟器&#xff0c;方法大概是&#xff1a; 用ffmpeg读取mp4等类型的视频文件&#xff08;当然ffmpeg啥都能读取&#xff09;&#xff0c;再以RTSP协议的形式推送给EasyDarwin&#xff1b…

为IP地址申请SSL证书

SSL&#xff08;Secure Sockets Layer&#xff09;是一种网络协议&#xff0c;用于在浏览器与服务器之间建立安全、加密的连接。SSL证书是用于证明您的网站身份并启用HTTPS&#xff08;超文本传输安全协议&#xff09;的安全文件。这种协议可以确保用户与您的网站之间的所有通信…

统计学中两组数据如何进行差异性(相关性)分析?

变量说明&#xff1a; 在确定分析方法前&#xff0c;我们需要了解手中的数据类型&#xff0c;这是最基础也是有必要的&#xff0c;在所有的数据类型中&#xff0c;我们将数据类型分为分类变量也为定类变量和连续变量也称为定量变量&#xff0c;那么什么是定类变量&#xff1f;…

C语言--每日选择题--Day25

第一题 1. 对于C/C语言的函数&#xff0c;下列叙述中正确的是&#xff08; &#xff09; A&#xff1a;函数的定义不能嵌套&#xff0c;但函数调用可以嵌套 B&#xff1a;函数的定义可以嵌套&#xff0c;但函数调用不能嵌套 C&#xff1a;函数的定义和调用都不能嵌套 D&#xf…

凝聚数字经济发展新力量,四象科技受邀出席2023全球数商大会

11月25日&#xff0c;2023全球数商大会在上海开幕。本届大会以“数联全球、商通未来”为主题&#xff0c;上海市委副书记、市长龚正出席大会并宣布大会开幕&#xff0c;国家发展改革委党组成员&#xff0c;国家数据局党组书记、局长刘烈宏&#xff0c;上海市副市长陈杰致辞。四…

奇异值分解SVD(Singular Value Decomposition)

一种理解方式&#xff0c;值得学习&#xff08;分解时空矩阵&#xff09; 先在这里阐述一下SVD的用途吧&#xff0c;具体细节稍后再做补充 1.通过SVD对数据的处理&#xff0c;我们可以使用小得多的数据集来表示原始数据集&#xff0c;这样做实际上是去除了噪声和冗余信息&…

SA与NSA网络架构的区别

SA与NSA网络架构的区别 1. 三大运营商网络制式&#xff1a;2. 5G组网方式及业务特性3. NSA-3系列4. NSA—4系列5. NSA-7系列6. 5G SA网络架构7. 运营商策略 1. 三大运营商网络制式&#xff1a; 联通&#xff1a;3G(WCDMA)\4G(FDD-LTE/TD-LTE)\5G(SA/NSA)移动&#xff1a;2G(GS…

【备忘录】快速回忆ElasticSearch的CRUD

导引——第一条ElasticSearch语句 测试分词器 POST /_analyze {"text":"黑马程序员学习java太棒了","analyzer": "ik_smart" }概念 语法规则 HTTP_METHOD /index/_action/IDHTTP_METHOD 是 HTTP 请求的方法&#xff0c;常见的包括…

Rocket mq namesrv源码分析

NameServer 作为注册中心&#xff0c;提供路由注册、路由踢出、路由发现功能&#xff0c;舍弃强一致&#xff0c;保证高可用&#xff0c;集群中各个节点不会实时通讯&#xff0c;其中一个节点下线之后&#xff0c;会提供另外一个节点保证路由功能。 启动入口 org.apache.rock…

【带头学C++】----- 八、C++面向对象编程 ---- 8.5 struct结构体类型增强使用说明

目录 8.5 struct结构体类型增强使用说明 8.5.1 C结构体可以定义成员函数 8.5.2 c中定义结构体变量可以不加struct关键字 8.6 bool布尔类型关键字 8.5 struct结构体类型增强使用说明 第六章对结构体的使用、内存对齐以及数组、深拷贝和浅拷贝进行了一个详细的说明&#xff0c…

【数据结构实验】排序(二)希尔排序算法的详细介绍与性能分析

文章目录 1. 引言2. 希尔排序算法原理2.1 示例说明2.2 时间复杂性分析 3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现3.3 代码解析3.4 实验结果 4. 实验结论 1. 引言 排序算法在计算机科学中扮演着至关重要的角色…

Leetcode211. 添加与搜索单词 - 数据结构设计

Every day a Leetcode 题目来源&#xff1a;211. 添加与搜索单词 - 数据结构设计 解法1&#xff1a;字典树 字典树&#xff08;前缀树&#xff09;是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。前缀树可以用 O(∣S∣) 的时间复杂度完成如下操作…

基于单片机温湿度光照自动窗帘系统设计

**单片机设计介绍&#xff0c; 基于单片机温湿度光照自动窗帘系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温湿度光照自动窗帘系统是一种智能家居系统&#xff0c;通过使用单片机作为控制核心&#xff0c…