Python程序设计 基础数据类型
1.1 编程规范
注释
python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。
在说规范之前我们有必要先看以下Python的注释有哪些 ?
- 单行注释
- 多行注释
单行注释
以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用
示例代码如下:
# 这是第一个单行注释
print("hello python")
为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字
多行注释(块注释)
如果注释信息很多,一行无法显示,就可以使用多行注释
要在 Python 程序中使用多行注释,可以用一对连续的 三个 引号(单引号和双引号都可以)
示例代码如下:
"""
这是一个多行注释在多行注释之间,可以写很多很多的内容……
"""
print("hello python")
注释不是越多越好,对于一目了然的代码,不需要添加注释
标识符命名规则
开发人员在程序中自定义的一些符号和名称。标识符是自己定义的, 如变量名 、函数名等
标识符由字母、下划线和数字组成,且数字不能开头
python中的标识符是区分大小写的
1、下滑线命名法
用下划线“_”来连接所有的单词,比如 hello_world
1. 见名知意
2. 起一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可读性) 比如: 名字 就定义为 name , 定义学生 用 student
2、驼峰命名法
大驼峰式命名法(upper camel case):
每一个单字的首字母都采用大写字母,
例如:FirstName、HelloWorld
小驼峰式命名法(lower camel case):
第一个单词以小写字母开始;
第二个单词的首字母大写,
例如:helloWorld、firstName
注意
所有的变量名、函数名 都是用下划线命名法
类名使用大驼峰命名法
python命名规则
python中的标识符是区分大小写的
- 变量、函数名全部用小写与下划线
- 常量(配置文件变量、不修改的变量)全部用大写
- 类名用大驼峰命名法
例子
# 类名用大驼峰 类与其他内容用两个换行隔开
class Student(object):# 变量名之间用空格隔开def __init__(self, hello):self.hello = hello# 函数与函数之间加换行def print_hello_world(self):"""函数名用下划线命名法尽量满足见名知意"""print(f"hello.jpg {self.hello} !")def PrintHelloWorld(self):"""大驼峰命名法提示有问题"""print(f"hello.jpg {self.hello} !")def printHelloWorld(self):"""小驼峰命名法提示有问题"""print(f"hello.jpg {self.hello} !")def printhelloworld(self):"""直接写很难读懂"""print(f"hello.jpg {self.hello} !")def PRINTHELLOWORLD(self):"""直接写很难读懂"""print(f"hello.jpg {self.hello} !")"""团队规范"""
# 变量名使用下划线命名法
# 尽量满足见名知意
# 对象也是变量
student = Student("world")
student.print_hello_world()
关于代码规范
- Python官方提供有一系列 PEP(Python Enhancement Proposals) 文档
- 其中第 8 篇文档专门针对Python 的代码格式 给出了建议,也就是俗称的 PEP 8
- 文档地址:https://www.python.org/dev/peps/pep-0008/
- 谷歌有对应的中文文档:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/
任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步
编程习惯的重要性
1. 可以方便排查错误
2. 方便自己看的代码
3. 便于别人看懂你的代码(团队协作)
良好的编程习惯的养成不能靠说,要靠多练,要在大量的编程中将其融入骨髓中。
一套系统应该具有统一的编程风格,任何编程风格都不可能是完美,应该从可维护性、可读性方面继续保持一种编程风格,而不要将多种编程风格混合在一套系统中,对于新手,难以理解如此多种风格的编码。
输入输出与变量
输出
print() 方法用于打印输出,最常见的一个函数。
以下是 print() 方法的语法:
print(*objects, sep=' ', end='\n', file=sys.stdout)
参数
- objects -- 复数,表示可以一次输出多个对象。输出多个对象时,用分隔符分割。
- sep -- 用来间隔多个对象,默认值是一个空格。
- end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
- file -- 要写入的文件对象。
输入
input() 函数接受一个标准输入数据,返回为 string 类型。
>>>a = input("input:")
input:123 # 输入整数
>>> type(a)
<class 'str'> # 字符串
变量
程序就是用来处理数据的,而变量就是用来存储数据的
- 在 Python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
- 等号(=)用来给变量赋值
- = 左边是一个变量名
- = 右边是存储在变量中的值
- 直接使用之前已经定义的变量
- 变量名只有在 第一次出现 才是 定义变量
- 变量名再次出现,不是定义变量,而是直接使用之前定义过的变量
- 在程序开发中,可以修改之前定义变量中保存的值吗?
- 可以
- 变量中存储的值,就是可以 变 的
变量名 = 值
变量定义之后,后续就可以直接使用了
1.2 数值类型
int(整型)
在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要)型,也被称之为整数。整数就是数学中的数字。整型在Python中不受长度限制大小范围
使用 type 函数可以查看一个变量的类型
In [1]: 1
Out[1]: 1In [2]: type(1)
Out[2]: int
浮点型(float)
小数类型
小数
In [1]: 1.0
Out[1]: 1.0In [2]: type(1.0)
Out[2]: float
运算、运算符优先级与整型是一样。
类型转化
浮点数转化为整型(显示转化)
In [3]: int(1.0)
Out[3]: 1In [4]: float(1)
Out[4]: 1.0
隐式转化,系统背后默认进行转换
In [5]: 1/2
Out[5]: 0.5
1.3 字符串
字符串是一种不可变的序列类型
字符串创建
字符串是 Python 中最常用的数据类型。我们可以使用引号( **'** 或 **"** )来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。
单引号和双引号
在 Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如
print("What's your name?")结果:
"What's your name?"print('"python"是一门优秀的语言')结果:
"python"是一门优秀的语言一个单引号并不是单引号,它是字符串创建的格式
总体来说没有任何区别,只在单引号当普通字符时容易区分:如 var = "let's go"
三引号创建块字符串 长字符串
# 三引号实现块注释
""" 文档注释
三引号实现块注释
"""
''''''
字符串格式化
把不是字符类型的 转变成字符串
在 Python 中可以使用 print 函数将信息输出到控制台
如果希望输出文字信息的同时,一起输出数据,就需要使用到 格式化操作符
format
此函数可以快速的处理各种字符串,增强了字符串格式化的功能。基本语法是使用{}和:来替代%
name = '张三'
age = 18
nickname = '法外狂徒'# format 用 {} 占位
print('姓名:{},年龄{},外号:{} '.format(name, age, nickname))
print('hello {} 你今年已经{}岁了'.format(name, age))
# 保留小数点后两位
In [1]: '{:.2f}'.format(12.333)
Out[1]: '12.33'In [2]: '{a:.2f}'.format(a=12.333)
Out[2]: '12.33'In [3]: '{a:6.2f}'.format(a=12.333)
Out[3]: ' 12.33'
%s
% 被称为 格式化操作符,专门用于处理字符串中的格式
- 包含 % 的字符串,被称为 格式化字符串
- % 和不同的 字符 连用,不同类型的数据需要使用 不同的格式化字符
格式化字符 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全 |
%f | 浮点数,%.2f 表示小数点后只显示两位 |
%% | 输出 % |
语法格式如下:
print("格式化字符串 %s" % 变量1)print("格式化字符串" % (变量1, 变量2...))
name = '张三'
age = 18
nickname = '法外狂徒'name2 = '李四'
age2 = 19
nickname2 = '帮凶'# %s 用 %s 占位
print('姓名:%s' % name)
# 多个参数
print('%s,%s 哦嗨呦' % (name, name2))
格式化字符 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全 |
%f | 浮点数,%.2f 表示小数点后只显示两位 |
%% | 输出 % |
%c | %ASCII字符 |
%o | %8进制 |
%x | %16进制 |
%e | %科学计数法 |
f
f’{}'形式,并不是真正的字符串常量,而是一个运算求值表达式,可以很方便的用于字符串拼接、路径拼接等
name = '张三'# f 在字符串中嵌入变量
print(f'hello {name} !')
1.4 字符串常用方法
字符串是不可变数据类型,所有的操作都是返回新的一个列表,不会修改原有列表
字符串 能够使用的 方法 如下:
In [1]: hello_str.
hello_str.capitalize hello_str.isidentifier hello_str.rindex
hello_str.casefold hello_str.islower hello_str.rjust
hello_str.center hello_str.isnumeric hello_str.rpartition
hello_str.count hello_str.isprintable hello_str.rsplit
hello_str.encode hello_str.isspace hello_str.rstrip
hello_str.endswith hello_str.istitle hello_str.split
hello_str.expandtabs hello_str.isupper hello_str.splitlines
hello_str.find hello_str.join hello_str.startswith
hello_str.format hello_str.ljust hello_str.strip
hello_str.format_map hello_str.lower hello_str.swapcase
hello_str.index hello_str.lstrip hello_str.title
hello_str.isalnum hello_str.maketrans hello_str.translate
hello_str.isalpha hello_str.partition hello_str.upper
hello_str.isdecimal hello_str.replace hello_str.zfill
hello_str.isdigit hello_str.rfind
提示:正是因为 python 内置提供的方法足够多,才使得在开发时,能够针对字符串进行更加灵活的操作!应对更多的开发需求!
查找和替换
方法 | 用法 |
---|---|
string.strip() | 默认去掉 string 左右两边的空白字符 |
string.replace(old_str, new_str) | 把 string 中的 old_str 替换成 new_str |
string.split() | 默认以空白字符进行分割 |
string.join(seq) | 将 seq 中所有的元素(字符串类型)合并为一个新的字符串 |
提问:如何改变字符串
将下面的字符串中 world 改成 Python
hello = "hello world !"print(hello.replace('world', 'Python'))print(hello)
字符串是一种不可变的数据类型。所有操作字符的方法都是返回一个新的字符串。可以用返回的新的字符串覆盖掉之前的字符串。
转义字符
在需要在字符中使用特殊字符时,python 用反斜杠转义字符。如下表:
转义字符 | 描述 |
---|---|
\ | (在行尾时)续行符 |
\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
原始字符串
由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要使用转义字符 \ 对字符串中包含的每个 '\' 进行转义。
比如说,我们要写一个关于 Windows 路径 `G:\publish\codes\02\2.4` 这样的字符串,如果在 Python 程序中直接这样写肯定是不行的,需要使用 \ 转义字符,对字符串中每个 '\' 进行转义,即写成 `G:\\publish\\codes\\02\\2.4 `这种形式才行。
有没有觉得这种写法很啰嗦,有没有更好的解决办法呢?答案是肯定的,借助于原始字符串可以很好地解决这个问题。
原始字符串以“r”开头,它不会把反斜线当成特殊字符。因此,上面的 Windows 路径可直接写成如下这种形式:
# 原始字符串包含的引号,同样需要转义
s2 = r'"Let\'s go", said Charlie'
print(s2)
1.5 布尔类型(bool)
python 中布尔值使用常量 True 和 False来表示;注意大小写
bool 是 int 的子类(继承 int ),故 True == 1 False == 0 是会返回 Ture
bool 类型只有两种状态真或假
In [17]: bool(-1)
Out[17]: TrueIn [18]: bool(0)
Out[18]: FalseIn [19]: bool(None)
Out[19]: FalseIn [20]: bool("")
Out[20]: FalseIn [21]: bool(" ")
Out[21]: TrueIn [22]: def a():...: pass...:...: bool(a)
Out[22]: True
总结
True 对 False 错
布尔类型只有两种状态,True or Flase 。数字除了零之外,其余均为 True,字符串除了空字符串之外都为 True,对象除了空对象之外,其余均为 True。
默认情况下,所有类型都可以转化为布尔类型
1.6 运算符
算数运算符
因为是整数,所以也可以进行数学中的基本运算。
- 算数运算符是 运算符 的一种
- 是完成基本的算术运算使用的符号,用来处理四则运算
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 10 + 20 = 30 |
- | 减 | 10 - 20 = 10 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 |
% | 取余数 | 返回除法的余数 9 % 2 = 1 |
** | 幂 | 又称次方、乘方,2 ** 3 = 8 |
# 取余
In [16]: 9 % 4
Out[16]: 1In [17]: 9 % 3
Out[17]: 0In [18]: 2 ** 3
Out[18]: 8
除此之外,“+”还可以作为字符串(包括后续要介绍的序列)的连接运算符。
s1 = 'Hello, '
s2 = 'Charlie'
# 使用+连接两个字符串
print(s1 + s2)
算数运算符的优先级
和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是:
- 先乘除后加减
- 同级运算符是 从左至右 计算
- 可以使用 () 调整计算的优先级
以下表格的算数优先级由高到最低顺序排列
运算符 | 描述 |
---|---|
** | 幂 (最高优先级) |
* / % // | 乘、除、取余数、取整除 |
+ - | 加法、减法 |
例如:
- 2 + 3 * 5 = 17
- (2 + 3) * 5 = 25
- 2 * 3 + 5 = 11
- 2 * (3 + 5) = 16
赋值运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
比较运算符
比较运算符 | 功能 |
---|---|
> | 大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False |
>= | 大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False |
< | 小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False |
<= | 小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False |
== | 等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False |
!= | 不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False |
逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" ,两个条件都满足 | (a and b) 返回 20。 |
or | x or y | 布尔"或",两个条件中满足一个 | (a or b) 返回 10。 |
not | not x | 布尔"非" ,否定之前的结果 | not(a and b) 返回 False |
逻辑运算符案例:
x = 1
y = 0print(x and y)
print(x or y)
print(not x)
print(not y)# 案例升级
x = 3 > 4
y = 5 > 4
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
* / % // | 乘,除,取模和取整除 |
& | 位 'AND' |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
例子
r = 4 > 2 ** 4 or True is 1 and '4' in "345"
if r:print('猜猜我的结果', r)
else:print('猜猜我的结果', r)
常见错误类型
SyntaxError: unexpected EOF while parsing
语法错误,多了无法解析的符号,检查一下是否多了或者少了括号SyntaxError: invalid character in identifier
语法错误有无效标识符,检查一下中文符号IndexError: list index out of range
索引错误,超出索引范围,检查一下列表是否为空TypeError: must be str, not int
数据类型错误,该数据不是正确的数据类型,比如字符串和数字直接拼接,检查一下数据类型IndentationError: expected an indented block
缩进错误,检查一下代码的缩进是否正确KeyError: 'fond'
键错误,字典中没有该的key对应的值,检查一下键名或者字典数据是否正确ValueError: substring not found
值错误,输入的数据类型跟要求的不符合NameError: name 'a' is not defined
未初始化对象,变量没有被定义AttributeError: 'tuple' object has no attribute 'remove'
属性错误,该对象没有这个属性、方法,检查一下数据类型SystemExit
解释器请求退出,出现在exit()函数后IOError
输入/输出操作失败ImportError
导入模块/对象失败,检查一下模块是否能够正常使用UnicodeDecodeError/UnicodeEncodeError/UnicodeTranslateError
Unicode 解码/编码/转换/时的错误
成员运算符
in 和 not in 被称为 成员运算符
成员运算符用于 测试 序列中是否包含指定的 成员
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | 3 in '123' 返回 True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | 3 not in '123' 返回 False |
身份运算符
is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。莱布尼茨说过:“世界上没有两片完全相同的叶子”,这个is正是这样的比较,比较是不是同一片叶子(即比较的id是否相同,这id类似于人的身份证标识)。
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
id() 函数用于获取对象内存地址。
身份运算符案例:
# %% 身份运算符
one = 1
o = 1
print(o is one) # 变量驻存在内存中a1 = [1]
a2 = [1]print(a1 is a2)print(id(o), id(one))
print(id(a1), id(a2))# is 与 ==print(a1 is a2)
print(a1 == a2)
字符串格式化
# 保留小数点后两位
In [1]: '{:.2f}'.format(12.333)
Out[1]: '12.33'In [2]: '{a:.2f}'.format(a=12.333)
Out[2]: '12.33'
相关文章:

Python程序设计 基础数据类型
1.1 编程规范 注释 python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。 在说规范…...

浅谈安科瑞智能照明系统在马来西亚国家石油公司项目的应用
摘要:随着社会经济的发展及网络技术、通信技术的提高,人们对照明设计提出了新的要求,它不仅要控制照明光源的发光时间、 亮度,而且与其它系统来配合不同的应用场合做出相应的灯光场景。本文介绍了马亚西亚石油公司智能照明项目的应…...
Java面对对象
Java面向对象 面对对象概述,类与对象,继承,重写与重载,多态,抽象,封装,包,泛型,异常 面对对象概述 什么是面向对象(OOP) 面向对象(Object Ori…...

代码随想录算法训练营|day24
第七章 回溯算法 77.组合代码随想录文章详解总结 77.组合 以n5,k3为例 (1)for循环遍历,递归选择符合要求的值加入path,len(path)k时,返回 statrtIndex保证每次递归取到的值不重复 剪枝:i<n-(k-len(path))1 后续需要k-len(pat…...

嵌入式学习日记 16
共用体 union 共用体名 { 成员列表; //各个变量 }; //表示定义一个共用体类型 注意: 1.共用体 初始化 --- 只能给一个值,默认是给到第一个成员变量的 2.共用体成员变量辅助 共用体用的数据最终存储的 --- 应该是最后一次给到的值。 但是只能…...

【Vue.js设计与实现】第一篇:框架设计概览-阅读笔记(完结)
从高层设计的角度去探讨框架需要关注的问题。 参考:速读《Vue.js 设计与实现》 - 掘金 (juejin.cn) 系列目录: 标题博客第一篇:框架设计概览【Vue.js设计与实现】第一篇:框架设计概览-阅读笔记第二篇:响应系统【Vue.…...

数据结构—动态查找表
动态查找介绍 1. 动态查找的引入:当查找表以线性表的形式组织时,若对查找表进行插入、删除或排序操作,就必须移动大量的记录,当记录数很多时,这种移动的代价很大。 2. 动态查找表的设计思想:表结构本身是…...

Hbase-2.4.11_hadoop-3.1.3集群_大数据集群_SSH修改默认端口22为其他端口---记录025_大数据工作笔记0185
其实修改起来非常简单,但是在大数据集群中,使用到了很多的脚步,也需要修改, 这里把,大数据集群,整体如何修改SSH端口,为22022,进行总结一下: 0.hbase-2.4.11的话,hbase集群修改默认SSH端口22,修改成22022,需要修改 需要修改/opt/module/hbase-2.4.11/conf/hbase-env.sh 这里…...

c++学习第十四讲---STL常用容器---vector容器
vector容器: 1.vector基本概念: vector功能与数组类似,与数组不同的是,vector可以动态扩展。 2.vector构造函数: vector<T> v; //默认构造函数,创建数据类型T的容器 ve…...

数据结构-内部排序
简介 排序(Sorting):将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列 排序算法分为内部排序和外部排序 内部排序:在排序期间数据对象全部存放在内存的排序 外部排序&am…...

Qt加载网页崩溃 ASSERT:“m_adapterClient“ in file ...
1、软件启动后加载网页无异常,点击按钮,加载新网页时崩溃 崩溃代码: QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) { Q_UNUSED(type); return this; } 2、原因 Qt只是调用谷歌的浏览器引擎ÿ…...

合约短线高胜率策略-扭转乾坤指标使用说明
扭转乾坤指标使用说明 行情判断 双绿线 多趋势双红线 空趋势大绿线 小红线 多震荡大红线 小绿线 空震荡 进场条件 趋势行情进场 多趋势 多信号 底金叉 做多空趋势 空信号 顶死叉 做空 震荡行情进场 多震荡 多信号 底金叉 做多多震荡 空信号 顶死叉 做空空…...

DAY37:贪心算法738
今天写了一道题目,顺便看了一个很好的总结,这篇博客可以跳过。 Leetcode:738 单调递增的数字 因为最大的数字是9,当出现后面位数的数字比前面位数的数字小的时候,就把后面的数字都变成9,前面那个数字--。…...

计算机中的缓存与内存
在现代计算机系统中,缓存和内存扮演着至关重要的角色,它们共同协作以实现高性能和高效率的数据处理。本文将深入探讨缓存和内存的概念、功能以及它们在计算机系统中的作用。 缓存与内存:概念与功能 1. 内存(RAM)&…...

2.1总结
还是一样水更一天,就随便做了几个题,有一个周期有点长,后面更一篇长的 随手刷的一道水题,就不往今天的行程单添了 问题:最大公约数 题解:题目太水了,就是求三个数,其中两组的最大公…...

探索Pyecharts:绘制多彩日历图的艺术与技巧
Pyecharts绘制多种炫酷日历图参数说明代码实战 导言 在数据可视化领域,日历图是一种直观展示时间和数据关系的方式。Pyecharts是一个基于Echarts的Python库,可以方便地绘制各种图表,包括炫酷的日历图。本篇博客将介绍Pyecharts中绘制多种炫…...

响应标头Allow-Headers和Expose-Headers的区别和用法
Access-Control-Allow-Headers和Access-Control-Expose-Headers,简单的说,这两者都是前端和后端之间通过header传递数据的,主要的区别就是方向。 Access-Control-Allow-Headers 举个例子,如果我们前端向后端发起请求,…...

<网络安全>《13 上网行为管理》
1 概念 上网行为管理是指帮助互联网用户控制和管理对互联网的使用。其包括对网页访问过滤、上网隐私保护、网络应用控制、带宽流量管理、信息收发审计、用户行为分析等。 随着计算机、宽带技术的迅速发展,网络办公日益流行,互联网已经成为人们工作、生活…...

安全通道堵塞识别摄像机
当建筑物的安全通道发生堵塞时,可能会给人员疏散和救援带来重大隐患。为了及时识别和解决安全通道堵塞问题,专门设计了安全通道堵塞识别摄像机,它具有监测、识别和报警功能,可在第一时间发现通道堵塞情况。这种摄像机通常安装在通…...

2022 年全国职业院校技能大赛高职组云计算赛项试卷
【赛程名称】云计算赛项第二场-容器云 说明: 完成本任务需要两台安装了 CentOS7.9 操作系统的云主机: master 和 node。Chinaskill_Cloud_PaaS.iso 镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。 某公司技术部产品开发上线…...

Android开发中,Vue 3处理回退按键事件
vue3有一些变化,按照网上有些文章的方法,发现行不通,通过一段时间的打印、尝试后,发现以下方法可行。 第一步)首先定义一个处理回退事件的js函数,一定是vue.methods中的函数,否则找不到this&am…...

three.js CSS3DRenderer、CSS3DSprite渲染HTML标签
有空的老铁关注一下我的抖音: 效果: <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"></div><…...

【BBF系列协议】TR369管理平台软件设计
一、介绍 旨在促进CPE和IoT的多供应商管理平台的发展。遵循TR-369协议的任何设备都可以进行管理。主要目标是促进并统一设备管理,为最终用户和服务提供商带来无数好处,减少当前技术所需的要求:设备互连、数据收集、速度、可用性等等。 二、 TR-069 ---> TR-369 物联网…...

微信小程序 仿微信聊天界面
1. 需求效果图 2. 方案 为实现这样的效果,首先要解决两个问题: 2.1.点击输入框弹出软键盘后,将已有的少许聊天内容弹出,导致看不到的问题 点击输入框弹出软键盘后,将已有的少许聊天内容弹出,导致看不到的问…...

中国社会科学院大学-新加坡社科大学 招生简章
Singapore University of Social Sciences--University of Chinese Academy of Social Sciences Doctor of Business Administration (DBA) Programme in Global Strategy and Leadership 一、项目简介 全球经济正在经历由科技进步和创新、政治和人口剧烈变化所带来的巨大的不…...

js中继承的详解(一文读懂)
文章目录 一、是什么二、实现方式原型链继承构造函数继承组合继承原型式继承寄生式继承寄生组合式继承 三、总结参考文献 一、是什么 继承(inheritance)是面向对象软件技术当中的一个概念。 如果一个类别B“继承自”另一个类别A,就把这个B称…...

Android studio使用svg矢量图
https://www.iconfont.cn/ https://www.jyshare.com/more/svgeditor/ https://editor.method.ac/ https://inloop.github.io/svg2android/ Pattern Monster - SVG 图案生成器 Android studio使用svg矢量图自适应不同的分辨率, svg矢量图绘制以及转换为And…...

《Access Path Selectionin a Relational Database Management System》论文笔记
以下是根据论文归纳出的一些查询优化器公式和知识点,有没有用不知道,先码起来。 SQL执行优化过程 处理SQL语句是从解析用户输入的SQL语句开始,经过一系列优化过程,最终生成机器代码并执行的过程。这个过程涉及到多个复杂的步骤&…...

【AI_Design】Midjourney学习笔记
目录 后缀解析Promot合格使用prompt关键词描述 关键词化合作用关键词网站推荐 联合Chatgpt使用总结 后缀解析 –ar:宽高比设置–c:多样性设置(数值0-100,默认值0)–s:风格化设置(数值0-1000&am…...

面试宝典之深谈JVM
面试宝典之深谈JVM 1.为什么需要JVM,不要JVM可以吗? 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译,到处运行 2.JVM可以运行Class文件 2.JDK,JRE以及JVM的关系 3.我们的编译器到底干了什么事? 仅仅是将我们的 .ja…...